You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

88 lines
2.5 KiB

import {
AlertDialog,
AlertDialogAction,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogTitle
} from '@/components/ui/alert-dialog'
import { Button } from '@/components/ui/button'
import {
Drawer,
DrawerContent,
DrawerDescription,
DrawerFooter,
DrawerHeader,
DrawerTitle
} from '@/components/ui/drawer'
import { usePrimaryPage } from '@/contexts/primary-page-context'
import { useNostr } from '@/providers/NostrProvider'
import { useScreenSizeOptional } from '@/providers/ScreenSizeProvider'
import { useTranslation } from 'react-i18next'
export default function LogoutDialog({
open = false,
setOpen
}: {
open: boolean
setOpen: (open: boolean) => void
}) {
const { t } = useTranslation()
const { isSmallScreen = false } = useScreenSizeOptional() ?? {}
const { account, switchAccount } = useNostr()
const { navigate } = usePrimaryPage()
const handleLogout = () => {
setOpen(false)
void switchAccount(null)
navigate('feed')
}
if (isSmallScreen) {
return (
<Drawer defaultOpen={false} open={open} onOpenChange={setOpen}>
<DrawerContent>
<DrawerHeader>
<DrawerTitle>{t('Logout')}</DrawerTitle>
<DrawerDescription>{t('Are you sure you want to logout?')}</DrawerDescription>
</DrawerHeader>
<DrawerFooter>
<Button variant="outline" onClick={() => setOpen(false)} className="w-full">
{t('Cancel')}
</Button>
<Button
variant="destructive"
onClick={handleLogout}
disabled={!account}
className="w-full"
>
{t('Logout')}
</Button>
</DrawerFooter>
</DrawerContent>
</Drawer>
)
}
return (
<AlertDialog defaultOpen={false} open={open} onOpenChange={setOpen}>
<AlertDialogContent>
<AlertDialogHeader>
<AlertDialogTitle>{t('Logout')}</AlertDialogTitle>
<AlertDialogDescription>{t('Are you sure you want to logout?')}</AlertDialogDescription>
</AlertDialogHeader>
<AlertDialogFooter>
<AlertDialogCancel>{t('Cancel')}</AlertDialogCancel>
<AlertDialogAction
variant="destructive"
onClick={handleLogout}
>
{t('Logout')}
</AlertDialogAction>
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>
)
}