"use client" import { useEffect, useState } from "react" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" import { LifeBuoy, Send } from "lucide-react" interface Ticket { id: string title: string description: string severity: string status: string created_at: string resolution_notes: string } export default function ClientSupport() { const [tickets, setTickets] = useState([]) const [loading, setLoading] = useState(true) const [title, setTitle] = useState("") const [description, setDescription] = useState("") const [severity, setSeverity] = useState("medium") const [submitting, setSubmitting] = useState(false) const [submitError, setSubmitError] = useState("") const [showForm, setShowForm] = useState(false) const loadTickets = () => { setLoading(true) fetch("/client-portal/api/support", { credentials: "include" }) .then((r) => r.json()) .then((d) => setTickets(d.tickets || [])) .catch((err) => console.error("Failed to fetch tickets:", err)) .finally(() => setLoading(false)) } useEffect(() => { loadTickets() }, []) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setSubmitting(true) setSubmitError("") try { const res = await fetch("/client-portal/api/support", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ title, description, severity }), }) if (!res.ok) { const data = await res.json() setSubmitError(data.error || "Failed to submit") return } setTitle("") setDescription("") setSeverity("medium") setShowForm(false) loadTickets() } catch { setSubmitError("Connection error") } finally { setSubmitting(false) } } return (

Support

Submit and track support requests

{/* Submit form */} {showForm && (
setTitle(e.target.value)} className="w-full bg-muted border border-border rounded-lg px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground outline-none focus:border-primary/50" placeholder="Brief summary of the issue" required />