'use client' import { Button } from '@/components/ui/button' import { DateTimeStyle, cn, formatDate } from '@/lib/utils' import { AppRouterOutput } from '@/trpc/routers/_app' import { ActivityType, Participant } from '@prisma/client' import { ChevronRight } from 'lucide-react' import { useLocale, useTranslations } from 'next-intl' import Link from 'next/link' import { useRouter } from 'next/navigation' export type Activity = AppRouterOutput['groups']['activities']['list']['activities'][number] type Props = { groupId: string activity: Activity participant?: Participant dateStyle: DateTimeStyle } function useSummary(activity: Activity, participantName?: string) { const t = useTranslations('Activity') const participant = participantName ?? t('someone') const expense = activity.data ?? '' const tr = (key: string) => t.rich(key, { expense, participant, em: (chunks) => “{chunks}”, strong: (chunks) => {chunks}, }) if (activity.activityType == ActivityType.UPDATE_GROUP) { return <>{tr('settingsModified')}> } else if (activity.activityType == ActivityType.CREATE_EXPENSE) { return <>{tr('expenseCreated')}> } else if (activity.activityType == ActivityType.UPDATE_EXPENSE) { return <>{tr('expenseUpdated')}> } else if (activity.activityType == ActivityType.DELETE_EXPENSE) { return <>{tr('expenseDeleted')}> } } export function ActivityItem({ groupId, activity, participant, dateStyle, }: Props) { const router = useRouter() const locale = useLocale() const expenseExists = activity.expense !== undefined const summary = useSummary(activity, participant?.name) return (