Skip to content

Commit bb2e83e

Browse files
authored
Merge pull request #310 from ocruze/feat/personalise-analytics-localstorage-key
feat: customize localStorage key for analytics consents #302
2 parents 0459355 + e89a22e commit bb2e83e

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/consentManagement/createConsentManagement.ts

+8-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { useRerenderOnChange } from "../tools/StatefulObservable/hooks";
99
import { createConsentBannerAndConsentManagement } from "./ConsentBannerAndConsentManagement";
1010
import { isBrowser } from "../tools/isBrowser";
1111

12-
export const localStorageKeyPrefix = "@codegouvfr/react-dsfr finalityConsent";
12+
export const defaultLocalStorageKeyPrefix = "@codegouvfr/react-dsfr finalityConsent";
1313

1414
export function createConsentManagement<
1515
FinalityDescription extends Record<
@@ -21,10 +21,16 @@ export function createConsentManagement<
2121
consentCallback?: ConsentCallback<ExtractFinalityFromFinalityDescription<FinalityDescription>>;
2222
/** Optional: If you have a dedicated page that provides comprehensive information about your website's GDPR policies. */
2323
personalDataPolicyLinkProps?: RegisteredLinkProps;
24+
localStorageKeyPrefix?: string;
2425
}) {
2526
type Finality = ExtractFinalityFromFinalityDescription<FinalityDescription>;
2627

27-
const { finalityDescription, personalDataPolicyLinkProps, consentCallback } = params;
28+
const {
29+
finalityDescription,
30+
personalDataPolicyLinkProps,
31+
consentCallback,
32+
localStorageKeyPrefix = defaultLocalStorageKeyPrefix
33+
} = params;
2834

2935
const finalities = getFinalitiesFromFinalityDescription({
3036
"finalityDescription":

stories/ConsentManagement.stories.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React from "react";
22
import { sectionName } from "./sectionName";
33
import { getStoryFactory } from "./getStory";
44
import { createConsentManagement } from "../dist/consentManagement";
5-
import { localStorageKeyPrefix } from "../dist/consentManagement/createConsentManagement";
5+
import { defaultLocalStorageKeyPrefix } from "../dist/consentManagement/createConsentManagement";
66
import { Placeholder } from "../dist/consentManagement/Placeholder";
77
import { Footer } from "../dist/Footer";
88
import { Button } from "../dist/Button";
@@ -284,7 +284,7 @@ function Story() {
284284
<Button
285285
onClick={() => {
286286
Object.keys(localStorage)
287-
.filter(key => key.startsWith(localStorageKeyPrefix))
287+
.filter(key => key.startsWith(defaultLocalStorageKeyPrefix))
288288
.forEach(key => localStorage.removeItem(key));
289289

290290
location.reload();

0 commit comments

Comments
 (0)