import type { ReactNode } from "react"; import { LayoutGrid, Plus, Search, Table2 } from "lucide-react"; import { Box, Button, Group, SegmentedControl, TextInput } from "@mantine/core"; import type { FleetViewMode } from "./useFleetViewMode"; export interface FleetToolbarProps { search?: string; onSearchChange?: (value: string) => void; searchPlaceholder?: string; showSearch?: boolean; onAdd?: () => void; addLabel?: string; viewMode: FleetViewMode; onViewModeChange: (mode: FleetViewMode) => void; /** Optional filters rendered beside search (status, freight type, etc.) */ filters?: ReactNode; } const FleetToolbar = ({ search = "", onSearchChange, searchPlaceholder = "Search…", showSearch = true, onAdd, addLabel = "Add", viewMode, onViewModeChange, filters, }: FleetToolbarProps) => ( {showSearch && onSearchChange ? ( onSearchChange(e.currentTarget.value)} leftSection={} size="sm" radius="lg" style={{ flex: "1 1 200px", minWidth: 180, maxWidth: 360 }} styles={{ input: { borderColor: "var(--mantine-color-gray-3)" } }} /> ) : null} {filters ? ( {filters} ) : null} onViewModeChange(value as FleetViewMode)} size="sm" radius="lg" color="green" data={[ { value: "table", label: ( Table ), }, { value: "cards", label: ( Cards ), }, ]} styles={{ root: { background: "var(--mantine-color-gray-1)" }, }} /> {onAdd ? ( ) : null} ); export default FleetToolbar;