import React, { useState } from "react"; import { useQuery } from "@tanstack/react-query"; import { templateService, TemplateType } from "@/services/templateService"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Plus, RefreshCcw } from "lucide-react"; import { TemplateList } from "./TemplateList"; import { TemplateDialog } from "./TemplateDialog"; import { useToast } from "@/hooks/use-toast"; export const AlertsTemplates = () => { const { toast } = useToast(); const [activeTab, setActiveTab] = useState('service'); const [isDialogOpen, setIsDialogOpen] = useState(false); const [editingTemplate, setEditingTemplate] = useState(null); const [editingTemplateType, setEditingTemplateType] = useState(null); const { data: templates = [], isLoading, error, refetch } = useQuery({ queryKey: ['notification_templates', activeTab], queryFn: () => templateService.getTemplates(activeTab), }); const handleAddTemplate = (templateType: TemplateType) => { setEditingTemplate(null); setEditingTemplateType(templateType); setIsDialogOpen(true); }; const handleEditTemplate = (id: string, templateType: TemplateType) => { setEditingTemplate(id); setEditingTemplateType(templateType); setIsDialogOpen(true); }; const handleRefresh = () => { refetch(); toast({ title: "Refreshing", description: "Updating template list...", }); }; return ( Alert Templates
setActiveTab(value as TemplateType)}> Service Uptime Server Monitoring SSL Certificate Server Threshold {error ? (

Error loading service templates

) : ( handleEditTemplate(id, 'service')} refetchTemplates={refetch} templateType="service" /> )}
{error ? (

Error loading server templates

) : ( handleEditTemplate(id, 'server')} refetchTemplates={refetch} templateType="server" /> )}
{error ? (

Error loading SSL templates

) : ( handleEditTemplate(id, 'ssl')} refetchTemplates={refetch} templateType="ssl" /> )}
{error ? (

Error loading server threshold templates

) : ( handleEditTemplate(id, 'server_threshold')} refetchTemplates={refetch} templateType="server_threshold" /> )}
{ refetch(); setIsDialogOpen(false); }} />
); };