import { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useQuery, useMutation } from '@tanstack/react-query'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from '@/components/ui/dialog'; import { Globe, Tag, Plus, Edit, Trash2, Layers, User as UserIcon, ShieldCheck, Share2, Server, Copy, Settings as SettingsIcon, Bell } from 'lucide-react'; import { Switch } from '@/components/ui/switch'; import { ShareAccessModal } from '@/components/ShareAccessModal'; import { ChangePasswordModal } from '@/components/ChangePasswordModal'; import { UpdateProfileModal } from '@/components/UpdateProfileModal'; import { ShareLabelModal } from '@/components/ShareLabelModal'; import { Label } from '@shared/schema'; import { User } from '@shared/schema'; import { queryClient, apiRequest } from '@/lib/queryClient'; import { useToast } from '@/hooks/use-toast'; import { useLocation } from "wouter"; import { useNotifications } from '@/hooks/use-notifications'; const NotificationSettings = () => { const { t } = useTranslation(); const { enabled, toggleEnabled, permission, requestPermission } = useNotifications({ poll: false }); const handleToggle = (checked: boolean) => { if (checked && permission !== 'granted') { requestPermission(); } else { toggleEnabled(checked); } }; return (

{t('notifications.enableBrowser')}

{permission === 'denied' ? Permission denied by browser. Please reset site permissions. : t('notifications.description') }

); }; interface SettingsProps { onNavigateToTemplates: () => void; } export default function Settings({ onNavigateToTemplates }: SettingsProps) { const { t, i18n } = useTranslation(); const { toast } = useToast(); const [, setLocation] = useLocation(); // Fetch user const { data: user } = useQuery({ queryKey: ['/api/user'] }); const [isLabelDialogOpen, setIsLabelDialogOpen] = useState(false); const [editingLabel, setEditingLabel] = useState