import {
AlertDialog,
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 { toRelaySettings } from '@/lib/link'
import { useSecondaryPage } from '@/PageManager'
import { useNostr } from '@/providers/NostrProvider'
import { useScreenSize } from '@/providers/ScreenSizeProvider'
import storage from '@/services/local-storage.service'
import { useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'
export default function TooManyRelaysAlertDialog() {
const { t } = useTranslation()
const { isSmallScreen } = useScreenSize()
const { push } = useSecondaryPage()
const { relayList } = useNostr()
const [open, setOpen] = useState(false)
useEffect(() => {
const dismissed = storage.getDismissedTooManyRelaysAlert()
if (dismissed) return
if (relayList && (relayList.read.length > 5 || relayList.write.length > 5)) {
setOpen(true)
} else {
setOpen(false)
}
}, [relayList])
if (!relayList) return null
const handleFixNow = () => {
setOpen(false)
push(toRelaySettings('mailbox'))
}
const handleDismiss = () => {
storage.setDismissedTooManyRelaysAlert(true)
setOpen(false)
}
const handleMaybeLater = () => {
setOpen(false)
}
const title = t('Optimize Relay Settings')
const description = t(
'Your current relay configuration may not be optimal. This could make it difficult for others to find your posts and may result in incomplete notifications.'
)
if (isSmallScreen) {
return (
{title}
{description}
)
}
return (
{title}
{description}
)
}