'use client'; import { useState } from 'react'; import AuditEditModal from '@/components/AuditEditModal'; import { PageLayout, FilterBar, StatusBadge, EmptyState } from '@/components/ui'; import { useAuditsData } from '@/hooks/useSWRData'; import { auditsApi } from '@/lib/api/api-client'; import { useAuth } from '@/lib/auth-context'; const ST: Record = { draft: 'Запланирован', in_progress: 'В процессе', completed: 'Завершён' }; const SC: Record = { draft: 'bg-gray-400', in_progress: 'bg-orange-500', completed: 'bg-green-500' }; const BC: Record = { draft: 'border-l-gray-300', in_progress: 'border-l-orange-500', completed: 'border-l-green-500' }; export default function AuditsPage() { const { isAuthority } = useAuth(); const [sf, setSf] = useState(); const [editingAudit, setEditingAudit] = useState(null); const { data, isLoading, mutate } = useAuditsData({ status: sf }); const audits = data?.items || []; const handleSaveAudit = async (id: string, payload: any) => { try { await auditsApi.update(id, payload); mutate(); setEditingAudit(null); } catch (e: any) { alert(e?.message || 'Ошибка сохранения'); } }; return ( ({ value: v, label: l }))]} /> {isLoading ?
Загрузка...
: audits.length > 0 ? (
{audits.map((a: any) => (
Аудит #{a.id.slice(0, 8)}
ВС: {a.aircraft_id?.slice(0, 8) || '—'} {a.planned_at && `· ${new Date(a.planned_at).toLocaleDateString('ru-RU')}`}
{a.status === 'in_progress' && isAuthority && ( )}
))}
) : } setEditingAudit(null)} audit={editingAudit} onSave={handleSaveAudit} />
); }