import { Button, FormControlLabel, Checkbox, Paper, TextField, Box, } from "@mui/material"; import { observer } from "mobx-react-lite"; import { ArrowLeft, Save } from "lucide-react"; import { Loader2 } from "lucide-react"; import { useNavigate, useParams } from "react-router-dom"; import { toast } from "react-toastify"; import { userStore, languageStore, LoadingSpinner } from "@shared"; import { useEffect, useState } from "react"; export const UserEditPage = observer(() => { const navigate = useNavigate(); const [isLoading, setIsLoading] = useState(false); const [isLoadingData, setIsLoadingData] = useState(true); const { id } = useParams(); const { editUserData, editUser, getUser, setEditUserData } = userStore; useEffect(() => { // Устанавливаем русский язык при загрузке страницы languageStore.setLanguage("ru"); }, []); const handleEdit = async () => { try { setIsLoading(true); await editUser(Number(id)); toast.success("Пользователь успешно обновлен"); navigate("/user"); } catch (error) { toast.error("Ошибка при обновлении пользователя"); } finally { setIsLoading(false); } }; useEffect(() => { (async () => { if (id) { setIsLoadingData(true); try { const data = await getUser(Number(id)); setEditUserData( data?.name || "", data?.email || "", data?.password || "", data?.is_admin || false ); } finally { setIsLoadingData(false); } } else { setIsLoadingData(false); } })(); }, [id]); if (isLoadingData) { return ( ); } return (
setEditUserData( e.target.value, editUserData.email || "", editUserData.password || "", editUserData.is_admin || false ) } /> setEditUserData( editUserData.name || "", e.target.value, editUserData.password || "", editUserData.is_admin || false ) } /> setEditUserData( editUserData.name || "", editUserData.email || "", e.target.value, editUserData.is_admin || false ) } /> setEditUserData( editUserData.name || "", editUserData.email || "", editUserData.password || "", e.target.checked ) } /> } label="Администратор" />
); });