import { RecentGroup, archiveGroup, deleteRecentGroup, starGroup, unarchiveGroup, unstarGroup, } from '@/app/groups/recent-groups-helpers' import { Button } from '@/components/ui/button' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { Skeleton } from '@/components/ui/skeleton' import { useToast } from '@/components/ui/use-toast' import { AppRouterOutput } from '@/trpc/routers/_app' import { StarFilledIcon } from '@radix-ui/react-icons' import { Calendar, MoreHorizontal, Star, Users } from 'lucide-react' import { useLocale, useTranslations } from 'next-intl' import Link from 'next/link' import { useRouter } from 'next/navigation' export function RecentGroupListCard({ group, groupDetail, isStarred, isArchived, refreshGroupsFromStorage, }: { group: RecentGroup groupDetail?: AppRouterOutput['groups']['list']['groups'][number] isStarred: boolean isArchived: boolean refreshGroupsFromStorage: () => void }) { const router = useRouter() const locale = useLocale() const toast = useToast() const t = useTranslations('Groups') return (
  • { event.stopPropagation() deleteRecentGroup(group) refreshGroupsFromStorage() toast.toast({ title: t('RecentRemovedToast.title'), description: t('RecentRemovedToast.description'), }) }} > {t('removeRecent')} { event.stopPropagation() if (isArchived) { unarchiveGroup(group.id) } else { archiveGroup(group.id) unstarGroup(group.id) } refreshGroupsFromStorage() }} > {t(isArchived ? 'unarchive' : 'archive')}
    {groupDetail ? (
    {groupDetail._count.participants}
    {new Date(groupDetail.createdAt).toLocaleDateString( locale, { dateStyle: 'medium', }, )}
    ) : (
    )}
  • ) }