import { useEffect, useState } from 'react'; import { ConfirmDialog } from '../shared/ui/ConfirmDialog.jsx'; import { createEducationForm, deleteEducationForm, fetchEducationForms } from './settings-service.js'; export function EduFormsTab() { const [forms, setForms] = useState(null); const [loadError, setLoadError] = useState(false); const [name, setName] = useState(''); const [alert, setAlert] = useState({ text: '', isError: false }); const [deleting, setDeleting] = useState(null); useEffect(() => { let active = true; (async () => { try { const loaded = await fetchEducationForms(); if (!active) return; setForms(loaded); setLoadError(false); } catch { if (active) setLoadError(true); } })(); return () => { active = false; }; }, []); async function reload() { try { setForms(await fetchEducationForms()); setLoadError(false); } catch { setLoadError(true); } } async function submit(event) { event.preventDefault(); const trimmed = name.trim(); if (!trimmed) { setAlert({ text: 'Введите название', isError: true }); return; } try { const created = await createEducationForm(trimmed); setAlert({ text: `Форма «${created.name}» создана`, isError: false }); setName(''); await reload(); } catch (error) { setAlert({ text: error.message || 'Ошибка создания', isError: true }); } } async function confirmDelete() { const form = deleting; setDeleting(null); try { await deleteEducationForm(form.id); await reload(); } catch (error) { setAlert({ text: error.message || 'Не удалось удалить форму обучения', isError: true }); } } return ( <>
| ID | Название | Действия |
|---|---|---|
| Ошибка загрузки | ||
| Загрузка... | ||
| Нет форм обучения | ||
| {form.id} | {form.name} | |