import { DeleteIcon } from "lucide-react"; import { type ReactNode, type SubmitEvent, useState } from "react"; import BtnOptionnalLinkWithTooltip from "@/back/Components/BtnOptionnalLinkWithTooltip"; import InputError from "@/back/Components/InputError"; import SimpleString from "@/back/Components/Inputs/SimpleString"; import AddFilterToUrl from "@/back/lib/filters"; import trans from "@/hooks/use-translations"; interface DataTableSearchProps { modelRoute: string; prefixRoute: string; searchFields: string; isArchiveRoute?: boolean; children?: ReactNode; } export default function DataTableSearch({ modelRoute, prefixRoute, searchFields, isArchiveRoute = false, children, }: DataTableSearchProps) { const routeSearch = route().params.search; const [search, setSearch] = useState(routeSearch); const submit = (e: SubmitEvent) => { if (!search) return; e.preventDefault(); const params = { ...route().params, search, }; AddFilterToUrl({ modelRoute: modelRoute, prefixRoute: prefixRoute, params, isArchiveRoute, }); }; const onDeleteSearch = () => { setSearch(null); const params = { ...route().params, search: undefined, }; AddFilterToUrl({ modelRoute: modelRoute, prefixRoute: prefixRoute, params, isArchiveRoute, }); }; return ( <>
{ setSearch(value); }} className="w-[calc(100%-40px-0.5rem)]" /> {children} } tooltipContent={

{trans("uwil-backend::back.table_search_reset")}

} type="button" variant="destructive" onClick={onDeleteSearch} /> ); }