'use client'; import { useTransition, useState } from 'react'; import type { User } from '@/lib/types/user'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Textarea } from '@/components/ui/textarea'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@/components/ui/select'; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '@/components/ui/dialog'; import { MessageSquare, Mail, Plus, UserCircle2, Headphones, Loader2 } from 'lucide-react'; import { createSupportTicket } from '@/lib/actions/user-tabs'; import { toast } from 'sonner'; interface SupportTabProps { user: User; } export function SupportTab({ user }: SupportTabProps) { const [isPending, startTransition] = useTransition(); const [createDialogOpen, setCreateDialogOpen] = useState(false); // Form State const [subject, setSubject] = useState(''); const [priority, setPriority] = useState('Normal'); const [type, setType] = useState('Inquiry'); const handleCreateTicket = () => { startTransition(async () => { const result = await createSupportTicket(user.id, { subject, priority, type }); if (result.success) { toast.success(result.message); setCreateDialogOpen(false); setSubject(''); } else { toast.error(result.message); } }); }; return (

Communication Timeline

New Support Ticket
setSubject(e.target.value)} placeholder="Brief summary of the issue" />
{/* Timeline Stream */}
{[ { id: 1, type: 'ticket', title: 'Refund requested for "Tech Summit"', status: 'Open', date: '2 hours ago', icon: Headphones, color: 'text-blue-600 bg-blue-50' }, { id: 2, type: 'email', title: 'Sent: "Your tickets are ready!"', status: 'Delivered', date: 'Yesterday', icon: Mail, color: 'text-slate-600 bg-slate-50' }, { id: 3, type: 'ticket', title: 'Login issue reported', status: 'Resolved', date: '3 days ago', icon: MessageSquare, color: 'text-emerald-600 bg-emerald-50' }, ].map((item) => (

{item.title}

{item.date}
{item.type === 'ticket' ? 'Ticket #1234' : 'Email System'} • {item.status}
))}
); }