diff --git a/shop/app/admin/companies/page.tsx b/shop/app/admin/companies/page.tsx index 4457e99..38d273f 100644 --- a/shop/app/admin/companies/page.tsx +++ b/shop/app/admin/companies/page.tsx @@ -1,7 +1,7 @@ 'use client' import { useState, useEffect } from 'react' -import { Building2, Plus, Trash2, Loader2, Pencil, Mail, MapPin } from 'lucide-react' +import { Building2, Plus, Trash2, Loader2, Pencil, Mail, MapPin, Search } from 'lucide-react' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' @@ -30,6 +30,7 @@ export default function CompaniesPage() { const [creating, setCreating] = useState(false) const [createError, setCreateError] = useState(null) const [deletingId, setDeletingId] = useState(null) + const [searchQuery, setSearchQuery] = useState('') const loadCompanies = async () => { setLoading(true) @@ -97,6 +98,13 @@ export default function CompaniesPage() { } } + const filteredCompanies = companies.filter((c) => { + const nameMatch = c.name?.toLowerCase().includes(searchQuery.toLowerCase()) + const addressMatch = `${c.street || ''} ${c.zip || ''} ${c.city || ''}`.toLowerCase().includes(searchQuery.toLowerCase()) + const emailMatch = c.email?.toLowerCase().includes(searchQuery.toLowerCase()) + return nameMatch || addressMatch || emailMatch + }) + return (
{/* Header */} @@ -120,15 +128,25 @@ export default function CompaniesPage() { {/* Firmen-Tabelle */}
+
+ + setSearchQuery(e.target.value)} + className="w-full pl-9 pr-4 py-2 text-sm bg-slate-50 dark:bg-white/5 border border-slate-200 dark:border-white/10 rounded-md text-slate-900 dark:text-slate-200 placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-blue-500 transition-all" + /> +
{loading ? (
Lade Firmen...
- ) : companies.length === 0 ? ( + ) : filteredCompanies.length === 0 ? (
- Noch keine Firmen angelegt. + Keine Firmen gefunden.
) : ( @@ -142,7 +160,7 @@ export default function CompaniesPage() { - {companies.map((company) => ( + {filteredCompanies.map((company) => (