diff --git a/src/components/customers/Customers.tsx b/src/components/customers/Customers.tsx index 64c4d61..5edc136 100644 --- a/src/components/customers/Customers.tsx +++ b/src/components/customers/Customers.tsx @@ -17,7 +17,7 @@ export const Customers: React.FC = () => { const { navigate } = useRouter(); const { addToast } = useToast(); const [search, setSearch] = useState(''); - const [status, setStatus] = useState<'active' | 'all'>('active'); + const [status, setStatus] = useState<'active' | 'inactive' | 'all'>('active'); const [form, setForm] = useState<{ customer: Customer | null } | null>(null); const [remove, setRemove] = useState(null); const [expanded, setExpanded] = useState(null); @@ -26,7 +26,7 @@ export const Customers: React.FC = () => { const customers = useMemo(() => { const q = search.trim().toLowerCase(); return (data?.customers ?? []) - .filter((c) => (status === 'all' || c.is_active) && (!q || `${c.name} ${c.short_name} ${c.city ?? ''}`.toLowerCase().includes(q))) + .filter((c) => (status === 'all' || (status === 'inactive' ? !c.is_active : c.is_active)) && (!q || `${c.name} ${c.short_name} ${c.city ?? ''}`.toLowerCase().includes(q))) .sort((a, b) => b.earned + b.open - (a.earned + a.open) || a.name.localeCompare(b.name, 'de')); }, [data, search, status]); @@ -74,7 +74,16 @@ export const Customers: React.FC = () => { setSearch(e.target.value)} /> - + = ({ id }) => { const { navigate } = useRouter(); const customers = useLoader(() => customersApi.list(), []); const report = useLoader(() => (id ? reportsApi.customer(id) : Promise.resolve(null)), [id]); + const [status, setStatus] = useState<'active' | 'inactive' | 'all'>('active'); + + // Der gewaehlte Kunde bleibt in der Liste, auch wenn der Filter ihn sonst + // ausblenden wuerde - sonst springt die Auswahl beim Umschalten weg. + const auswahl = (customers.data ?? []).filter( + (c) => c.id === id || status === 'all' || (status === 'inactive' ? !c.is_active : c.is_active) + ); return (
- +
+ + +
{!id ? ( ) : report.error ? ( diff --git a/src/components/reports/Reports.tsx b/src/components/reports/Reports.tsx index 29c825f..d8733f9 100644 --- a/src/components/reports/Reports.tsx +++ b/src/components/reports/Reports.tsx @@ -147,11 +147,23 @@ const TimeReport: React.FC = () => { )}