import type { ComponentProps, Ref } from "react"; import { ChevronDown, CirclePlus, Columns3, List, ListTree } from "lucide-react"; import { IssueFiltersPopover } from "./IssueFiltersPopover"; import { Button } from "./ui/button"; import { ToolbarSearch } from "./ToolbarSearch"; import { FlyoutHeader, FlyoutOptions } from "./ui/flyout"; import { DropdownMenu, DropdownMenuContent, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuTrigger } from "./ui/dropdown-menu"; import { Tooltip, TooltipContent, TooltipTrigger } from "./ui/tooltip"; import { taskListViews as views, type TaskListView } from "@/lib/task-list-views"; /** Canonical proposed task toolbar; review under Components / Toolbars / Tasks. */ export function TaskListToolbar({ view, onViewChange, query, onQueryChange, searchRef, layout, onLayoutChange, allExpanded, onToggleExpanded, onNewTask, filters }: { view: TaskListView; onViewChange: (view: TaskListView) => void; query: string; onQueryChange: (query: string) => void; searchRef?: Ref; layout: "list" | "board"; onLayoutChange: (layout: "list" | "board") => void; allExpanded: boolean; onToggleExpanded: () => void; onNewTask: () => void; filters: ComponentProps; }) { return (
Views onViewChange(value as TaskListView)}> {views.map(option => {option.label})}
{[{ value: "list", label: "List view", icon: List }, { value: "board", label: "Board view", icon: Columns3 }].map(({ value, label, icon: Icon }) => ( {label} ))}
{allExpanded ? "Collapse all tasks" : "Expand all tasks"}
); }