'use client'; import { Empty } from '@/components/empty'; import { ProList, ProListActions } from '@/components/pro-list'; import { createUserTicket, createUserTicketFollow, getUserTicketDetails, getUserTicketList, updateUserTicketStatus, } from '@/services/user/ticket'; import { useQuery } from '@tanstack/react-query'; import { Button } from '@workspace/ui/components/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@workspace/ui/components/card'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '@workspace/ui/components/dialog'; import { Drawer, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, } from '@workspace/ui/components/drawer'; import { Input } from '@workspace/ui/components/input'; import { Label } from '@workspace/ui/components/label'; import { ScrollArea } from '@workspace/ui/components/scroll-area'; import { Textarea } from '@workspace/ui/components/textarea'; import { ConfirmButton } from '@workspace/ui/custom-components/confirm-button'; import { Icon } from '@workspace/ui/custom-components/icon'; import { cn } from '@workspace/ui/lib/utils'; import { formatDate } from '@workspace/ui/utils'; import { useTranslations } from 'next-intl'; import NextImage from 'next/legacy/image'; import { useEffect, useRef, useState } from 'react'; import { toast } from 'sonner'; export default function Page() { const t = useTranslations('ticket'); const [ticketId, setTicketId] = useState(null); const [message, setMessage] = useState(''); const { data: ticket, refetch: refetchTicket } = useQuery({ queryKey: ['getUserTicketDetails', ticketId], queryFn: async () => { const { data } = await getUserTicketDetails({ id: ticketId }); return data.data as API.Ticket; }, enabled: !!ticketId, refetchInterval: 5000, }); const scrollRef = useRef(null); useEffect(() => { setTimeout(() => { if (scrollRef.current) { scrollRef.current.children[1]?.scrollTo({ top: scrollRef.current.children[1].scrollHeight, behavior: 'smooth', }); } }, 66); }, [ticket?.follow?.length]); const ref = useRef(null); const [create, setCreate] = useState>(); return ( <> action={ref} header={{ title: t('ticketList'), toolbar: ( setCreate({ open })}> {t('createTicket')} {t('createTicketDescription')}
setCreate({ ...create, title: e.target.value! })} />