import React, { useState, useEffect } from "react"; import { useNavigate } from "react-router-dom"; import { getAuthToken } from "../api.jsx"; import { getFederalDistricts, createFederalDistrict, updateFederalDistrict, deleteFederalDistrict, } from "../api.jsx"; const FederalDistricts = () => { const [districts, setDistricts] = useState([]); const [newDistrict, setNewDistrict] = useState({ name: "", }); const [editingDistrictId, setEditingDistrictId] = useState(null); const [error, setError] = useState(null); const navigate = useNavigate(); useEffect(() => { fetchFederalDistricts(); }, []); const fetchFederalDistricts = async () => { try { const data = await getFederalDistricts(); setDistricts(data); } catch (error) { console.error("Ошибка при загрузке федеральных округов:", error); } }; const handleInputChange = (e) => { const { name, value } = e.target; setNewDistrict({ ...newDistrict, [name]: value }); }; const handleSubmit = async (e) => { e.preventDefault(); if (!newDistrict.name) { setError("Пожалуйста, заполните все поля."); return; } try { if (editingDistrictId) { await updateFederalDistrict(editingDistrictId, newDistrict); } else { await createFederalDistrict(newDistrict); } fetchFederalDistricts(); resetForm(); } catch (error) { console.error( "Ошибка при добавлении или обновлении федерального округа:", error ); } }; const handleEdit = (district) => { setNewDistrict({ name: district.name, }); setEditingDistrictId(district.id); }; const handleDelete = async (districtId) => { try { await deleteFederalDistrict(districtId); fetchFederalDistricts(); } catch (error) { console.error("Ошибка при удалении федерального округа:", error); } }; const resetForm = () => { setNewDistrict({ name: "", }); setEditingDistrictId(null); }; if (getAuthToken() === null) { navigate("/login"); } return (

Федеральные округа

{error && (
{error}
)}

Список федеральных округов

{districts.map((district) => ( ))}
ID Название Действия
{district.id} {district.name}
); }; export default FederalDistricts;