Files
protekauto-frontend/src/lib/cookie-utils.ts

61 lines
2.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

interface CookiePreferences {
necessary: boolean;
analytics: boolean;
marketing: boolean;
functional: boolean;
}
export const getCookieConsent = (): string | null => {
if (typeof window === 'undefined') return null;
return localStorage.getItem('cookieConsent');
};
export const getCookiePreferences = (): CookiePreferences | null => {
if (typeof window === 'undefined') return null;
const preferences = localStorage.getItem('cookiePreferences');
return preferences ? JSON.parse(preferences) : null;
};
export const hasConsentForAnalytics = (): boolean => {
const preferences = getCookiePreferences();
return preferences?.analytics || false;
};
export const hasConsentForMarketing = (): boolean => {
const preferences = getCookiePreferences();
return preferences?.marketing || false;
};
export const hasConsentForFunctional = (): boolean => {
const preferences = getCookiePreferences();
return preferences?.functional || false;
};
export const isConsentGiven = (): boolean => {
const consent = getCookieConsent();
return consent !== null && consent !== 'declined';
};
export const resetCookieConsent = (): void => {
if (typeof window === 'undefined') return;
localStorage.removeItem('cookieConsent');
localStorage.removeItem('cookiePreferences');
};
// Функция для интеграции с аналитикой (например, Google Analytics)
export const initializeAnalytics = (): void => {
if (!hasConsentForAnalytics()) return;
// Здесь можно добавить инициализацию Google Analytics или других сервисов
console.log('Analytics initialized with user consent');
};
// Функция для интеграции с маркетинговыми инструментами
export const initializeMarketing = (): void => {
if (!hasConsentForMarketing()) return;
// Здесь можно добавить инициализацию маркетинговых пикселей
console.log('Marketing tools initialized with user consent');
};
export type { CookiePreferences };