|
| 1 | +import { ConsentManagerDialog, ConsentManagerProvider, CookieBanner } from "@c15t/nextjs"; |
| 2 | +import type { ReactNode } from "react"; |
| 3 | +import { ConsentManagerClient } from "./consent-manager.client"; |
| 4 | + |
| 5 | +export function ConsentManagementProvider({ children }: { children: ReactNode }) { |
| 6 | + return ( |
| 7 | + <ConsentManagerProvider |
| 8 | + options={{ |
| 9 | + mode: "offline", |
| 10 | + consentCategories: ["necessary", "measurement"], |
| 11 | + ignoreGeoLocation: true, // Useful for development to always view the banner. |
| 12 | + legalLinks: { |
| 13 | + privacyPolicy: { |
| 14 | + href: "/privacy", |
| 15 | + label: "Privacy Policy", |
| 16 | + }, |
| 17 | + termsOfService: { |
| 18 | + href: "/terms", |
| 19 | + label: "Terms of Service", |
| 20 | + }, |
| 21 | + }, |
| 22 | + }} |
| 23 | + > |
| 24 | + <CookieBanner |
| 25 | + theme={{ |
| 26 | + "banner.overlay": "!bg-black/30", |
| 27 | + "banner.root": "!font-geist", |
| 28 | + "banner.card": "!rounded-none !border", |
| 29 | + "banner.footer.accept-button": "!rounded-none", |
| 30 | + "banner.footer.reject-button": "!rounded-none", |
| 31 | + "banner.footer.customize-button": "!rounded-none ", |
| 32 | + }} |
| 33 | + legalLinks={["privacyPolicy", "termsOfService"]} |
| 34 | + scrollLock={true} |
| 35 | + trapFocus={true} |
| 36 | + /> |
| 37 | + <ConsentManagerDialog |
| 38 | + legalLinks={["privacyPolicy", "termsOfService"]} |
| 39 | + theme={{ |
| 40 | + "dialog.root": "!rounded-none !font-geist", |
| 41 | + "dialog.footer": "!hidden", |
| 42 | + "widget.accordion.item": "!rounded-none", |
| 43 | + "widget.footer.reject-button": "!rounded-none", |
| 44 | + "widget.footer.accept-button": "!rounded-none", |
| 45 | + "widget.footer.save-button": "!rounded-none ", |
| 46 | + }} |
| 47 | + /> |
| 48 | + <ConsentManagerClient>{children}</ConsentManagerClient> |
| 49 | + </ConsentManagerProvider> |
| 50 | + ); |
| 51 | +} |
0 commit comments