// /opt/erp-system/app/page.tsx 'use client'; import { useState, useEffect } from 'react'; import { useSession } from "next-auth/react"; import { Ticket as TicketIcon, Clock, Activity, ArrowRight, Plus, X, CheckCircle2 } from 'lucide-react'; import Link from 'next/link'; import { getStatusBadge } from './components/AppShell'; export default function DashboardPage() { const { data: session } = useSession(); const [data, setData] = useState(null); const [error, setError] = useState(false); const [showForm, setShowForm] = useState(false); const [formData, setFormData] = useState({ title: '', description: '' }); useEffect(() => { fetchData(); }, []); const fetchData = () => { fetch('/api/dashboard') .then(res => { if (!res.ok) throw new Error('Netzwerkfehler'); return res.json(); }) .then(setData) .catch(() => setError(true)); }; const handleCustomerTicketSubmit = async (e: React.FormEvent) => { e.preventDefault(); const res = await fetch('/api/tickets', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ title: formData.title, description: formData.description, customerId: (session?.user as any)?.id }) }); if (res.ok) { setShowForm(false); setFormData({ title: '', description: '' }); fetchData(); } else { alert('Fehler beim Erstellen des Tickets'); } }; if (error) return
Fehler beim Laden des Dashboards.
; if (!data) return
Lade Metriken...
; const userType = (session?.user as any)?.userType; // ---------------------------------------------------- // INTERFACE FÜR KUNDEN // ---------------------------------------------------- if (userType === 'CUSTOMER') { return (

Hallo, {(session?.user as any)?.firstName}!

Willkommen in deinem Service-Portal. Hier kannst du deine Support-Anfragen verwalten.

{showForm && (

Unterstützung anfordern

setFormData({...formData, title: e.target.value})} placeholder="Wobei benötigst du Hilfe?" />