'use client'; import ChecklistCardModal from '@/components/ChecklistCardModal'; import ChecklistEditModal from '@/components/ChecklistEditModal'; import { useState } from 'react'; import ChecklistCreateModal from '@/components/ChecklistCreateModal'; import { PageLayout, FilterBar, EmptyState } from '@/components/ui'; import { useChecklistsData } from '@/hooks/useSWRData'; import { checklistsApi } from '@/lib/api/api-client'; import { RequireRole } from '@/lib/auth-context'; export default function ChecklistsPage() { const [domain, setDomain] = useState(); const { data, isLoading, mutate } = useChecklistsData({ domain: domain === 'part_m_ru' ? undefined : domain }); const templates = data?.items || []; const [exp, setExp] = useState(null); const [editTemplate, setEditTemplate] = useState(null); const gen = async (src: string) => { const n = prompt('Название:'); if (!n) return; await checklistsApi.generate(src, n); mutate(); }; return ( }> {!isLoading && templates.length > 0 ? (
{templates.map((t: any) => (
setExp(exp === t.id ? null : t.id)}>
{t.name}
{t.domain || '—'} · v{t.version || 1} · {t.items?.length || 0} пунктов
e.stopPropagation()}> {exp === t.id ? '▼' : '▶'}
{exp === t.id && t.items?.length > 0 && (
{t.items.map((it: any, i: number) => (
{it.code} {it.text}
))}
)}
))}
) : !isLoading ? : null} {editTemplate && ( setEditTemplate(null)} onSaved={() => mutate()} /> )}
); }