summaryrefslogtreecommitdiff
path: root/app/lib/venue-filter.ts
diff options
context:
space:
mode:
Diffstat (limited to 'app/lib/venue-filter.ts')
-rw-r--r--app/lib/venue-filter.ts28
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 };
+}