import { useEffect, useState } from 'react'; export function useStickyStateSet( defaultValue: Set, key: string, ): [Set, (value: Set) => void] { const [value, setValue] = useState(() => { const stickyValue = window.localStorage.getItem(key); return stickyValue !== null ? new Set(JSON.parse(stickyValue)) : defaultValue; }); useEffect(() => { if (value) { window.localStorage.setItem(key, JSON.stringify(Array.from(value))); } }, [key, value]); return [value, setValue]; }