"use client" import * as React from "react" import { ListFilterIcon } from "lucide-react" import { Button } from "@/components/ui/button" import Link from "next/link" import { ContentHeader, SidebarToggleButton } from "@/components/custom/content-header" import { useMedia } from "react-use" import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover" import { Label } from "@/components/ui/label" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { useAtom } from "jotai" import { linkSortAtom } from "@/store/link" interface TabItemProps { url: string label: string } const TABS = ["All", "Learning", "To Learn", "Learned"] export const LinkHeader = () => { const isTablet = useMedia("(max-width: 1024px)") return ( <>
Links
{!isTablet && }
{isTablet && (
)} ) } const Tabs = () => { const [activeTab, setActiveTab] = React.useState(TABS[0]) return (
{TABS.map(tab => ( setActiveTab(tab)} /> ))}
) } interface TabItemProps { url: string label: string isActive: boolean onClick: () => void } const TabItem = ({ url, label, isActive, onClick }: TabItemProps) => { return (
) } const FilterAndSort = () => { const [sort, setSort] = useAtom(linkSortAtom) const [sortOpen, setSortOpen] = React.useState(false) const getFilterText = () => { return sort.charAt(0).toUpperCase() + sort.slice(1) } const handleSortChange = (value: string) => { setSort(value) setSortOpen(false) } return (
) }