'use client' import { Button } from '@/components/ui/button' import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '@/components/ui/dialog' import { Drawer, DrawerContent, DrawerFooter, DrawerHeader, DrawerTitle, } from '@/components/ui/drawer' import { Label } from '@/components/ui/label' import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group' import { useMediaQuery } from '@/lib/hooks' import { cn } from '@/lib/utils' import { trpc } from '@/trpc/client' import { AppRouterOutput } from '@/trpc/routers/_app' import { useTranslations } from 'next-intl' import { ComponentProps, useEffect, useState } from 'react' export function ActiveUserModal({ groupId }: { groupId: string }) { const t = useTranslations('Expenses.ActiveUserModal') const [open, setOpen] = useState(false) const isDesktop = useMediaQuery('(min-width: 768px)') const { data: groupData } = trpc.groups.get.useQuery({ groupId }) const group = groupData?.group useEffect(() => { if (!group) return const tempUser = localStorage.getItem(`newGroup-activeUser`) const activeUser = localStorage.getItem(`${group.id}-activeUser`) if (!tempUser && !activeUser) { setOpen(true) } }, [group]) function updateOpen(open: boolean) { if (!group) return if (!open && !localStorage.getItem(`${group.id}-activeUser`)) { localStorage.setItem(`${group.id}-activeUser`, 'None') } setOpen(open) } if (isDesktop) { return ( {t('title')} {t('description')} setOpen(false)} />

{t('footer')}

) } return ( {t('title')} {t('description')} setOpen(false)} />

{t('footer')}

) } function ActiveUserForm({ group, close, className, }: ComponentProps<'form'> & { group?: AppRouterOutput['groups']['get']['group'] close: () => void }) { const t = useTranslations('Expenses.ActiveUserModal') const [selected, setSelected] = useState('None') return (
{ if (!group) return event.preventDefault() localStorage.setItem(`${group.id}-activeUser`, selected) close() }} >
{group?.participants.map((participant) => (
))}
) }