'use client' import * as React from 'react' import { useTransition } from 'react' import Link from 'next/link' import { usePathname, useRouter } from 'next/navigation' import { cn } from '@/lib/utils' import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from '@/components/ui/alert-dialog' import { Button, buttonVariants } from '@/components/ui/button' import { removeChat } from '@/app/actions' import { IconMessage, IconSpinner, IconTrash } from '@/components/ui/icons' export function SidebarItem({ title, href, id, userId }: { title: string href: string id: string userId: string }) { const [open, setIsOpen] = React.useState(false) const pathname = usePathname() const router = useRouter() const isActive = pathname === href const [isPending, startTransition] = useTransition() if (!id) return null return ( <>
{title}
{isActive && ( )} Are you absolutely sure? This will permanently delete your chat message and remove your data from our servers. Cancel { event.preventDefault() startTransition(async () => { await removeChat({ id, userId, path: href }) setIsOpen(false) router.push('/') }) }} > {isPending && } Delete ) }