Add a deferred PostHog wiring under examples/cookie-banner-react that
boots posthog.init() inside the probo-ready handler and derives
cookieless_mode and opt_out_capturing_by_default from the consent
snapshot for the category flagged with posthog_consent.
Driving the init args off the snapshot rather than consent_mode plugs
two cases the simpler "consent_mode alone" rule got wrong:
* OPT_OUT regulation, returning rejector: init would have booted in
on_reject + capture-on, fired a $pageview synchronously, and only
then called opt_out_capturing(). That single captured pageview
(and the posthog cookie) leaked on every page load.
* OPT_IN regulation, returning acceptor: init would have forced
"always" + opt-out, costing the visitor cookies and a one-tick
capture delay even though they had already consented.
The snapshot already encodes the regulation default
(buildDefaultConsentData on the cookie-banner client returns true for
non-necessary categories under OPT_OUT and false under OPT_IN) and any
persisted answer from a prior visit, so a single boolean drives both
init args.
Re-export the public domain types (BannerConfig, Category, Regulation,
ConsentAction, ConsentRecord, CookieItem, VisitorConsent) from
@probo/cookie-banner so the example can type the probo-ready event
detail without duck-typing it.
Adopt the PUBLIC_ env prefix in Vite so the example reads the same env
var names (PUBLIC_COOKIE_BANNER_ID, PUBLIC_COOKIE_BANNER_API_BASE_URL,
PUBLIC_POSTHOG_API_KEY) already used on getprobo.com, and add a
matching .env.example.
Ignore *.tsbuildinfo at the repo root; TypeScript's incremental cache
is machine-local and does not belong in the tree.
Signed-off-by: Émile Ré <emile@probo.com>
29 lines
389 B
Plaintext
29 lines
389 B
Plaintext
bin/
|
|
node_modules/
|
|
.turbo
|
|
.vscode
|
|
.cursor/*
|
|
!.cursor/rules/
|
|
dist/
|
|
.react-email/
|
|
sbom.json
|
|
sbom-docker.json
|
|
*_sbom.json
|
|
*.out
|
|
*.DS_Store
|
|
*.pem
|
|
*.crt
|
|
*.key
|
|
*.tsbuildinfo
|
|
compose/keycloak/probo-realm.json
|
|
.sandbox.env
|
|
|
|
# Generated files (codegen)
|
|
__generated__/
|
|
pkg/server/api/*/v1/types/types.go
|
|
pkg/server/api/*/v1/schema.graphql
|
|
cfg/dev_local.yaml
|
|
cfg/dev.yaml
|
|
.env
|
|
.oauth-credentials.txt
|