"use client"; import { usePathname, useRouter, useSearchParams } from "next/navigation"; import { useEffect, useState } from "react"; import { FILTER_SELECT_CLASS } from "@/components/ui/Field"; import { SearchInput } from "@/components/ui/SearchInput"; const ACTIONS = [ "Neueinstellung", "Wiedereinstellung", "Rückkehr", "Austritt", "Versetzung", "Ausschreibung", "Interne Besetzung", "Beförderung", "Reorganisation", "Reorganisation rückgängig", "Karenz", "Vertragsänderung", "Stammdatenänderung", "Gehaltsanpassung", ]; export function AuditFilters() { const router = useRouter(); const pathname = usePathname(); const searchParams = useSearchParams(); const [q, setQ] = useState(searchParams.get("q") ?? ""); useEffect(() => { const handle = setTimeout(() => { const current = new URLSearchParams(searchParams.toString()); if (q) current.set("q", q); else current.delete("q"); current.delete("page"); const next = current.toString(); if (next !== searchParams.toString()) router.push(`${pathname}?${next}`); }, 300); return () => clearTimeout(handle); // eslint-disable-next-line react-hooks/exhaustive-deps }, [q]); function updateParam(key: string, value: string) { const params = new URLSearchParams(searchParams.toString()); if (value) params.set(key, value); else params.delete(key); params.delete("page"); router.push(`${pathname}?${params.toString()}`); } return (
); }