import { create } from 'zustand'; interface ConsentState { isInitialized: boolean; isOpen: boolean; analytics: boolean; marketing: boolean; initialize: () => void; openBanner: () => void; closeBanner: () => void; setConsent: (analytics: boolean, marketing: boolean) => void; acceptAll: () => void; rejectOptional: () => void; } const CONSENT_KEY = 'airproject_cookie_consent_v2'; export const useConsentStore = create((set) => ({ isInitialized: false, isOpen: false, analytics: false, marketing: false, initialize: () => { if (typeof window !== 'undefined') { const stored = localStorage.getItem(CONSENT_KEY); if (stored) { try { const parsed = JSON.parse(stored); set({ isInitialized: true, isOpen: false, analytics: !!parsed.analytics, marketing: !!parsed.marketing, }); } catch (e) { // If parsing fails, show banner set({ isInitialized: true, isOpen: true }); } } else { // No consent found, show banner set({ isInitialized: true, isOpen: true }); } } }, openBanner: () => set({ isOpen: true }), closeBanner: () => set({ isOpen: false }), setConsent: (analytics, marketing) => { localStorage.setItem(CONSENT_KEY, JSON.stringify({ essential: true, analytics, marketing })); set({ analytics, marketing, isOpen: false }); }, acceptAll: () => { localStorage.setItem(CONSENT_KEY, JSON.stringify({ essential: true, analytics: true, marketing: true })); set({ analytics: true, marketing: true, isOpen: false }); }, rejectOptional: () => { localStorage.setItem(CONSENT_KEY, JSON.stringify({ essential: true, analytics: false, marketing: false })); set({ analytics: false, marketing: false, isOpen: false }); } }));