summaryrefslogtreecommitdiff
path: root/app/lib/venue-filter.ts
blob: db41f0e183aae920e2335e32e0cb331a8c8d4ed3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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 };
}