import { createSignal, For, Show } from "solid-js"; import { useNavigate, useLocation, useSearchParams } from "@solidjs/router"; import Check from "~/components/icons/Check"; import UpDownArrows from "~/components/icons/UpDownArrows"; const sorting = [ { val: "newest", label: "Newest" }, { val: "oldest", label: "Oldest" }, { val: "most_liked", label: "Most Liked" }, { val: "most_read", label: "Most Read" }, { val: "most_comments", label: "Most Comments" } ]; export interface PostSortingSelectProps {} export default function PostSortingSelect(props: PostSortingSelectProps) { const [isOpen, setIsOpen] = createSignal(false); const navigate = useNavigate(); const location = useLocation(); const [searchParams] = useSearchParams(); const selected = () => { const sortParam = searchParams.sort || "newest"; return sorting.find((s) => s.val === sortParam) || sorting[0]; }; const handleSelect = (sort: { val: string; label: string }) => { setIsOpen(false); const params = new URLSearchParams(searchParams as Record); params.set("sort", sort.val); navigate(`${location.pathname}?${params.toString()}`); }; return (
{(sort) => ( )}
); }