'use client' import { useCallback, useEffect, useState } from 'react' import { CONSENT_CHANGE_EVENT, getConsent, hasConsentChoice, type ConsentRecord, } from '@/lib/consent/cookie-consent' export function useCookieConsent() { const [consent, setConsentState] = useState(null) const [ready, setReady] = useState(false) const refresh = useCallback(() => { setConsentState(getConsent()) setReady(true) }, []) useEffect(() => { refresh() const onChange = () => refresh() const onStorage = (e: StorageEvent) => { if (e.key === 'memento-consent-v1') refresh() } window.addEventListener(CONSENT_CHANGE_EVENT, onChange) window.addEventListener('storage', onStorage) return () => { window.removeEventListener(CONSENT_CHANGE_EVENT, onChange) window.removeEventListener('storage', onStorage) } }, [refresh]) return { consent, ready, hasChoice: ready && hasConsentChoice(), needsBanner: ready && !hasConsentChoice(), } }