diff options
Diffstat (limited to 'app/lib')
| -rw-r--r-- | app/lib/venue-filter.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/lib/venue-filter.ts b/app/lib/venue-filter.ts new file mode 100644 index 0000000..db41f0e --- /dev/null +++ b/app/lib/venue-filter.ts @@ -0,0 +1,28 @@ +import { useState, useEffect } from "react"; + +const STORAGE_KEY = "hidden_venue_ids"; + +export function useVenueFilter() { + const [hiddenIds, setHiddenIds] = useState<Set<string>>(() => new Set()); + + useEffect(() => { + try { + const stored = localStorage.getItem(STORAGE_KEY); + if (stored) setHiddenIds(new Set(JSON.parse(stored) as string[])); + } catch {} + }, []); + + function toggle(venueId: string) { + setHiddenIds((prev) => { + const next = new Set(prev); + if (next.has(venueId)) next.delete(venueId); + else next.add(venueId); + try { + localStorage.setItem(STORAGE_KEY, JSON.stringify([...next])); + } catch {} + return next; + }); + } + + return { hiddenIds, toggle }; +} |
