Skip to content

Commit e20619f

Browse files
authored
feat(cookie-manager): add onPolicyClickto the skcm configuration (#157)
* feat(cookie-manager): add new prop to cookie disclaimer * chore(cookie-manager): remove class
1 parent 72b1398 commit e20619f

5 files changed

Lines changed: 62 additions & 14 deletions

File tree

cookie-manager/core/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export type DisclaimerConfiguration = {
3232
policyUrl?: string
3333
acceptButtonText?: string
3434
rejectButtonText?: string
35+
onPolicyClick?: () => void
3536
}
3637

3738
export type ServicesConfiguration = {

cookie-manager/react/src/lib/components/Disclaimer/Disclaimer.tsx

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ export function Disclaimer({
1717
allowCookies,
1818
declineCookies
1919
}: DisclaimerProps): React.JSX.Element {
20-
const { title, body, policyUrl, policyText, acceptButtonText, rejectButtonText } = {
21-
...DEFAULT_DISCLAIMER_CONFIG,
22-
...configuration
23-
}
20+
const { title, body, policyUrl, policyText, acceptButtonText, rejectButtonText, onPolicyClick } =
21+
{
22+
...DEFAULT_DISCLAIMER_CONFIG,
23+
...configuration
24+
}
2425
const styles = parseThemeColors(theme)
2526

2627
return (
@@ -29,9 +30,19 @@ export function Disclaimer({
2930
{title && <h6 id="skcm-title">{title}</h6>}
3031
<p id="skcm-body">
3132
{body}
32-
<a href={policyUrl} target="_blank" rel="noopener noreferrer">
33+
{onPolicyClick ? (
34+
<span id="skcm-policy-link__wrapper">
35+
<Button onClick={onPolicyClick} id="skcm-policy-link__button">
36+
{policyText}
37+
</Button>
38+
</span>
39+
) : policyUrl ? (
40+
<a href={policyUrl} target="_blank" rel="noopener noreferrer">
41+
<span id="skcm-link__span">{policyText}</span>
42+
</a>
43+
) : (
3344
<span id="skcm-link__span">{policyText}</span>
34-
</a>
45+
)}
3546
</p>
3647
</div>
3748
<div id="skcm-cookie-disclaimer__buttons">

cookie-manager/react/src/lib/style/style.scss

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@
1818
text-decoration: none;
1919
}
2020

21+
#skcm-policy-link__button {
22+
background-color: transparent;
23+
color: inherit;
24+
text-transform: none;
25+
padding: 0;
26+
display: inline;
27+
color: var(--primary);
28+
}
29+
2130
button {
2231
text-transform: uppercase;
2332
display: block;
@@ -51,6 +60,7 @@
5160
border-bottom: none;
5261
border-collapse: collapse;
5362
text-align: left;
63+
5464
thead {
5565
tr {
5666
th {
@@ -62,6 +72,7 @@
6272
}
6373
}
6474
}
75+
6576
tbody {
6677
tr {
6778
td {
@@ -73,6 +84,7 @@
7384
&:first-child {
7485
font-weight: bold;
7586
}
87+
7688
a {
7789
color: var(--primary);
7890
text-decoration: none;

cookie-manager/sveltekit/src/lib/components/Disclaimer.svelte

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,26 @@
2424
{/if}
2525
<p id="skcm-body">
2626
{body ?? DEFAULT_DISCLAIMER_CONFIG.body}
27-
<a
28-
href={configuration?.policyUrl ?? DEFAULT_DISCLAIMER_CONFIG.policyUrl}
29-
target="_blank"
30-
rel="noopener noreferrer"
31-
><span id="skcm-link__span"
32-
>{configuration?.policyText ?? DEFAULT_DISCLAIMER_CONFIG.policyText}</span
33-
></a
34-
>
27+
28+
{#if configuration?.onPolicyClick}
29+
<Button id="skcm-policy-link__button" on:click={configuration.onPolicyClick}>
30+
{configuration.policyText ?? DEFAULT_DISCLAIMER_CONFIG.policyText}
31+
</Button>
32+
{:else if configuration?.policyUrl}
33+
<a
34+
href={configuration.policyUrl ?? DEFAULT_DISCLAIMER_CONFIG.policyUrl}
35+
target="_blank"
36+
rel="noopener noreferrer"
37+
>
38+
<span id="skcm-link__span">
39+
{configuration.policyText ?? DEFAULT_DISCLAIMER_CONFIG.policyText}
40+
</span>
41+
</a>
42+
{:else}
43+
<span id="skcm-link__span">
44+
{configuration.policyText ?? DEFAULT_DISCLAIMER_CONFIG.policyText}
45+
</span>
46+
{/if}
3547
</p>
3648
</div>
3749
<div id="skcm-cookie-disclaimer__buttons">

cookie-manager/sveltekit/src/lib/style/style.scss

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@
1818
text-decoration: none;
1919
}
2020

21+
#skcm-policy-link__button {
22+
background-color: transparent;
23+
color: inherit;
24+
text-transform: none;
25+
padding: 0;
26+
display: inline;
27+
color: var(--primary);
28+
}
29+
2130
button {
2231
text-transform: uppercase;
2332
display: block;
@@ -51,6 +60,7 @@
5160
border-bottom: none;
5261
border-collapse: collapse;
5362
text-align: left;
63+
5464
thead {
5565
tr {
5666
th {
@@ -62,6 +72,7 @@
6272
}
6373
}
6474
}
75+
6576
tbody {
6677
tr {
6778
td {
@@ -73,6 +84,7 @@
7384
&:first-child {
7485
font-weight: bold;
7586
}
87+
7688
a {
7789
color: var(--primary);
7890
text-decoration: none;

0 commit comments

Comments
 (0)