/** * Cookie-/Speicher-Einwilligung (§ 25 Abs. 1 TDDDG). Die Auswahl aus dem * Banner liegt im localStorage; nur "all" erlaubt einwilligungspflichtige * Speicherungen. Nur im Browser aufrufen. */ export const COOKIE_CONSENT_KEY = "wabenhain-cookie-consent"; /** * localStorage-Schluessel des "Zuletzt angesehen"-Verlaufs * (store/recently-viewed-store.ts) — einwilligungspflichtig, weil die * Funktion fuer den Einkauf nicht unbedingt erforderlich ist. */ export const RECENTLY_VIEWED_KEY = "wabenhain-recently-viewed"; export type Consent = "all" | "essential"; export function readConsent(): Consent | null { try { const value = window.localStorage.getItem(COOKIE_CONSENT_KEY); return value === "all" || value === "essential" ? value : null; } catch { // Gesperrter Speicher (privater Modus, Richtlinie): wie "keine Einwilligung". return null; } } export function hasOptionalConsent(): boolean { return readConsent() === "all"; } /** Entfernt alle einwilligungspflichtigen Eintraege — bei "Nur notwendige" und beim Widerruf. */ export function clearOptionalStorage(): void { try { window.localStorage.removeItem(RECENTLY_VIEWED_KEY); } catch { // Nichts zu entfernen, wenn der Speicher nicht zugaenglich ist. } }