"use client"; import { useRouter, useSearchParams } from "next/navigation"; import { useTransition } from "react"; import { useSelect } from "downshift"; import { Icon } from "@iconify/react"; type Sort = "newest" | "likes" | "oldest"; const items = ["newest", "likes", "oldest"]; export default function SortSelect() { const router = useRouter(); const searchParams = useSearchParams(); const [, startTransition] = useTransition(); const currentSort = (searchParams.get("sort") as Sort) || "newest"; const { isOpen, getToggleButtonProps, getMenuProps, getItemProps, highlightedIndex, selectedItem } = useSelect({ items, selectedItem: currentSort, onSelectedItemChange: ({ selectedItem }) => { if (!selectedItem) return; const params = new URLSearchParams(searchParams); params.set("sort", selectedItem); startTransition(() => { router.push(`?${params.toString()}`); }); }, }); return (
{/* Toggle button to open the dropdown */} {/* Dropdown menu */}
); }