// /opt/erp-system/app/search/page.tsx 'use client'; import { useSearchParams } from 'next/navigation'; import { useEffect, useState, Suspense } from 'react'; import Link from 'next/link'; import { Search, Ticket, Users } from 'lucide-react'; import { getStatusBadge } from '../components/AppShell'; function SearchResults() { const searchParams = useSearchParams(); const q = searchParams.get('q'); const [results, setResults] = useState({ tickets: [], customers: [] }); const [loading, setLoading] = useState(false); useEffect(() => { if (q) { setLoading(true); fetch(`/api/search?q=${encodeURIComponent(q)}`) .then(res => res.json()) .then(data => { setResults(data); setLoading(false); }); } }, [q]); if (!q) return
Bitte gib einen Suchbegriff ein.
; return (

Suchergebnisse für "{q}"

{loading ? (
Suche läuft...
) : (
Kunden ({results.customers?.length || 0})
{results.customers?.length > 0 ? results.customers.map((c: any) => (

{c.companyName || `${c.firstName} ${c.lastName}`}

{c.email}

)) : (
Keine Kunden gefunden.
)}
Tickets ({results.tickets?.length || 0})
{results.tickets?.length > 0 ? results.tickets.map((t: any) => (

#{t.id} - {t.title}

{t.description}

Kunde: {t.customer.companyName || `${t.customer.firstName} ${t.customer.lastName}`}

{getStatusBadge(t.status)}
)) : (
Keine Tickets gefunden.
)}
)}
); } export default function SearchPage() { return ( Lade Suche...}> ); }