import { createSignal, For, onCleanup, onMount, Show } from "solid-js"; import type { TouchResultsPageDom } from "../../eh"; export function FavoritesCategorySelect(props: { source: TouchResultsPageDom }) { let container!: HTMLDivElement; const [open, setOpen] = createSignal(false); const selected = () => props.source.data.favoritesCategory?.categories.find((category) => category.selected) ?? props.source.data.favoritesCategory?.categories[0] ?? null; onMount(() => { const closeOnOutsidePointer = (event: PointerEvent) => { if (event.target instanceof Node && !container.contains(event.target)) { setOpen(false); } }; document.addEventListener("pointerdown", closeOnOutsidePointer, true); onCleanup(() => document.removeEventListener("pointerdown", closeOnOutsidePointer, true)); }); return (
{(category, index) => ( )}
); } function categoryIndicator( appearance: NonNullable["categories"][number]["appearance"] | undefined, ) { return (