import "./RemoteItemList.css"; import { type Component, createSignal, Match, Show, Switch } from "solid-js"; import { type Direction, type ItemHandler, ItemList, type ListItem, useDirection, useSort, } from "#/dev/ItemList.tsx"; import { ArrowNarrowDownIcon, ArrowNarrowUpIcon, ArrowsSortIcon, ChevronDownIcon, ReloadIcon, } from "#/dev/icons/index.ts"; export const RemoteItemList: Component<{ name: string; fetch: () => Promise>; handler: ItemHandler; }> = (props) => { const [showList, setShowList] = createSignal(true); const [items, setItems] = createSignal>([]); const [direction, setDirection] = createSignal("default"); const [sorted, setSorted] = useSort([]); const toggleDirection = useDirection(); const fetchItems = () => { props.fetch().then((items) => { setSorted(items); setItems(sorted(direction())); }); }; fetchItems(); return (
setShowList(!showList())} > {props.name}
); };