import { AlertCircle, LifeBuoy, Loader2 } from "lucide-react"; import { Card, CardContent } from "../../../components/ui/card.tsx"; import { Alert, AlertDescription } from "../../../components/ui/alert.tsx"; import { Badge } from "../../../components/ui/badge.tsx"; import { EmptyState } from "../../../components/ui/empty-state.tsx"; import { usePatientSupportTickets, TICKET_STATUS_LABELS, TICKET_STATUS_VARIANT, } from "../../../hooks/usePatientSupportTickets"; import { formatDateTime } from "../../../utils/dateUtils"; /** * Where a patient follows a problem they reported from the help widget. * * A separate screen from the practice's on separate routes, keeping the client side of the fence the * server already holds: nothing here touches the practice hook, and nothing on the practice side * touches this. * * No holder badge, unlike the practice's list: a patient's report goes to Akashic when it is raised * and never moves, so the column would say the same word on every row. * * A plain anchor per row rather than ``: this app is a HashRouter, and an anchor lands on the * right in-app route without needing a Router ancestor to render at all. */ export const MySupportPage = () => { const { tickets, loading, error } = usePatientSupportTickets(); return (

Problems you have reported about this portal, and what we said back.

{error && ( {error} )} {loading ? (

Loading…

) : ( {tickets.length === 0 ? ( ) : ( tickets.map((ticket) => (

{ticket.subject}

{ticket.reference && `${ticket.reference} — `} Updated {formatDateTime(ticket.updatedAt)}

{TICKET_STATUS_LABELS[ticket.status]}
)) )}
)}
); }; export default MySupportPage;