Merge pull request #1071 from plastic-labs/eri/dev-2465
feat(docs): cookie consent on honcho.dev/docs
This commit is contained in:
commit
526461a642
|
|
@ -610,8 +610,8 @@
|
|||
}
|
||||
},
|
||||
"integrations": {
|
||||
"posthog": {
|
||||
"apiKey": "phc_1yrzzcgywqXGcerkkI4g7C0YfyPMcAKNOOvGcjTCiUk"
|
||||
"gtm": {
|
||||
"tagId": "GTM-NSPT9PJF"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
// Loads PostHog only when the CookieConsent cookie grants Statistics; the
|
||||
// cookie is host-scoped, so a landing-page answer covers the docs.
|
||||
;(function () {
|
||||
var KEY = 'phc_1yrzzcgywqXGcerkkI4g7C0YfyPMcAKNOOvGcjTCiUk'
|
||||
var loaded = false
|
||||
|
||||
function granted() {
|
||||
var m = document.cookie.match(/(?:^|;\s*)CookieConsent=([^;]*)/)
|
||||
if (!m) return false
|
||||
var v = decodeURIComponent(m[1])
|
||||
// "-1" is Cookiebot's consent-not-required marker.
|
||||
return v === '-1' || /statistics\s*:\s*true/.test(v)
|
||||
}
|
||||
|
||||
function loadPosthog() {
|
||||
if (loaded) return
|
||||
loaded = true
|
||||
var s = document.createElement('script')
|
||||
s.src = 'https://us-assets.i.posthog.com/static/array.js'
|
||||
s.async = true
|
||||
s.onerror = function () {
|
||||
loaded = false
|
||||
}
|
||||
s.onload = function () {
|
||||
// Consent withdrawn while array.js was downloading: skip init, allow a retry on re-grant.
|
||||
if (!granted()) {
|
||||
loaded = false
|
||||
return
|
||||
}
|
||||
window.posthog.init(KEY, {
|
||||
api_host: 'https://us.i.posthog.com',
|
||||
ui_host: 'https://us.posthog.com',
|
||||
cross_subdomain_cookie: true,
|
||||
person_profiles: 'identified_only',
|
||||
capture_pageview: 'history_change',
|
||||
})
|
||||
}
|
||||
document.head.appendChild(s)
|
||||
}
|
||||
|
||||
function sync() {
|
||||
if (granted()) {
|
||||
if (!loaded) {
|
||||
loadPosthog()
|
||||
} else if (
|
||||
window.posthog &&
|
||||
window.posthog.has_opted_out_capturing &&
|
||||
window.posthog.has_opted_out_capturing()
|
||||
) {
|
||||
window.posthog.opt_in_capturing()
|
||||
}
|
||||
return
|
||||
}
|
||||
// Withdrawal mid-session: an already running instance must stop.
|
||||
if (loaded && window.posthog && window.posthog.opt_out_capturing) {
|
||||
window.posthog.opt_out_capturing()
|
||||
}
|
||||
}
|
||||
|
||||
sync()
|
||||
var events = [
|
||||
'CookiebotOnConsentReady',
|
||||
'CookiebotOnAccept',
|
||||
'CookiebotOnDecline',
|
||||
]
|
||||
for (var i = 0; i < events.length; i++) {
|
||||
window.addEventListener(events[i], sync)
|
||||
}
|
||||
})()
|
||||
Loading…
Reference in New Issue