import { Button } from '@renderer/components/ui/button'; import { Popover, PopoverContent, PopoverTrigger } from '@renderer/components/ui/popover'; import { Tooltip, TooltipContent, TooltipTrigger } from '@renderer/components/ui/tooltip'; import { cn } from '@renderer/lib/utils'; import { ArrowDownUp, ArrowUpDown, Calendar, Clock, GripVertical, User } from 'lucide-react'; export type KanbanSortField = 'updatedAt' | 'createdAt' | 'owner' | 'manual'; export interface KanbanSortState { field: KanbanSortField; } const SORT_OPTIONS: { field: KanbanSortField; label: string; description: string; icon: React.ReactNode; }[] = [ { field: 'updatedAt', label: 'Last updated', description: 'Recently updated first', icon: , }, { field: 'createdAt', label: 'Created', description: 'Newest first', icon: , }, { field: 'owner', label: 'Owner', description: 'Alphabetically by assignee', icon: , }, { field: 'manual', label: 'Manual', description: 'Drag-and-drop order', icon: , }, ]; interface KanbanSortPopoverProps { sort: KanbanSortState; onSortChange: (sort: KanbanSortState) => void; } export const KanbanSortPopover = ({ sort, onSortChange, }: KanbanSortPopoverProps): React.JSX.Element => { const isNonDefault = sort.field !== 'updatedAt'; return ( Sort tasks

Sort by

{SORT_OPTIONS.map((option) => { const isSelected = sort.field === option.field; return ( ); })}
{isNonDefault && (
)}
); };