import { useState } from "react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/shared/common/ui/card"; import { Tabs, TabsContent, TabsList, TabsTrigger, } from "@/shared/common/ui/tabs"; import { Input } from "@/shared/common/ui/input"; import { Button } from "@/shared/common/ui/button"; import { Shield, Save, Trash2, Plus, Edit2 } from "lucide-react"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger, } from "@/shared/common/ui/dialog"; import PasswordSettingsForm from "@/super-admin/components/settings/PasswordSettingsForm"; import { usePasswordSettingsQuery, usePasswordSettingsMutations } from "@/super-admin/hooks/usePasswordSettings"; import { AlertDialog, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogHeader, AlertDialogTitle, } from "@/shared/common/ui/alert-dialog"; import { toast } from "sonner"; export default function SettingsPage() { const [createDialogOpen, setCreateDialogOpen] = useState(false); const [editDialogOpen, setEditDialogOpen] = useState(false); const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const { data: passwordSettings, refetch: refetchPasswordSettings } = usePasswordSettingsQuery(); const { delete: deleteMutation } = usePasswordSettingsMutations(); const handleDeletePasswordSettings = async () => { if (!passwordSettings?.id) { toast.error("No password settings to delete"); return; } try { console.log("Attempting to delete password settings with ID:", passwordSettings.id); await deleteMutation.mutateAsync(passwordSettings.id); console.log("Delete successful, closing dialog"); setDeleteDialogOpen(false); } catch (error) { console.error("Delete error:", error); toast.error("Failed to delete password settings"); } }; const handleEditPasswordSettings = () => { if (passwordSettings?.id) { setEditDialogOpen(true); } }; const handleCreateSuccess = () => { setCreateDialogOpen(false); refetchPasswordSettings(); }; const handleEditSuccess = () => { setEditDialogOpen(false); refetchPasswordSettings(); }; return (
No password settings configured yet
| Setting | Value | Actions |
|---|---|---|
| Minimum Password Length | {passwordSettings.minimumPasswordLength} |
|
| Maximum Password Length | {passwordSettings.maximumPasswordLength} | |
| Password Expiry (Days) | {passwordSettings.passwordExpiry} | |
| Session Timeout (Minutes) | {passwordSettings.sessionTimeout} | |
| Default Password Enabled | {passwordSettings.isDefaultPasswordEnabled ? "Yes" : "No"} |