Skip to content

Commit 376e954

Browse files
committed
improved types
1 parent 523579e commit 376e954

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

resources/js/components/banner.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { CookieConfig, CookiePurpose, CookieSolutionConfig } from '../types';
1212
import clsx from 'clsx';
1313
import { getContrastColor } from '../utils/colorContrast';
1414

15-
interface AcceptStatus {
15+
export interface AcceptStatus {
1616
timestamp: string;
1717
digest?: string;
1818
purposes: Record<CookiePurpose, boolean>;
@@ -168,13 +168,15 @@ export class CookieSolutionBanner extends LitElement {
168168
return;
169169
}
170170

171+
//@ts-expect-error
171172
if (typeof gtag !== 'function') {
172173
this._gtagRetries++;
173174
setTimeout(emitGtagEvent, 100 * this._gtagRetries);
174175
return;
175176
}
176177

177178
try {
179+
//@ts-expect-error
178180
gtag('consent', 'update', {
179181
analytics_storage: this._status?.purposes.statistics ? 'granted' : 'denied',
180182
ad_storage: this._status?.purposes.marketing ? 'granted' : 'denied',
@@ -203,13 +205,15 @@ export class CookieSolutionBanner extends LitElement {
203205
return;
204206
}
205207

208+
//@ts-expect-error
206209
if (typeof fbq !== 'function') {
207210
this._fbqRetries++;
208211
setTimeout(emitFbqEvent, 100 * this._fbqRetries);
209212
return;
210213
}
211214

212215
try {
216+
//@ts-expect-error
213217
fbq('consent', this._status?.purposes.marketing ? 'grant' : 'revoke');
214218
} catch (e) {
215219
this._fbqRetries++;

resources/js/laravel-cookie-solution.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,14 @@ import './components/banner';
33
import './components/toggle';
44
import './components/policyFormatter';
55
import { CookieSolutionConfig } from './types';
6-
import { CookieSolutionBanner } from './components/banner';
6+
import { type AcceptStatus, CookieSolutionBanner } from './components/banner';
77
import { CookieSolutionDuration } from './components/duration';
88
import { CookieSolutionToggle } from './components/toggle';
99
import { CookieSolutionPolicyFormatter } from './components/policyFormatter';
1010

1111
export type { CookieSolutionConfig, ServiceConfig, CookieConfig, CookiePurpose } from './types';
1212

1313
declare global {
14-
const gtag: Function | undefined;
15-
const fbq: Function | undefined;
16-
1714
interface Window {
1815
_cookieSolution?: CookieSolutionConfig;
1916
dataLayer?: Record<string, any>[];
@@ -25,6 +22,10 @@ declare global {
2522
'cookie-solution-duration': CookieSolutionDuration;
2623
'cookie-solution-policy-formatter': CookieSolutionPolicyFormatter;
2724
}
25+
26+
interface GlobalEventHandlersEventMap {
27+
'cookie-solution-status-change': CustomEvent<AcceptStatus>;
28+
}
2829
}
2930

3031
(function () {

0 commit comments

Comments
 (0)