// static/js/auth.LoginForm.jsx function LoginForm() { const { login } = useContext(AuthContext); const [mode, setMode] = useState("login"); // 'login' | 'register' const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [firstName, setFirstName] = useState(""); const [lastName, setLastName] = useState(""); const [inviteCode, setInviteCode] = useState(""); // НОВОЕ: инвайт-код компании const [error, setError] = useState(""); const [loading, setLoading] = useState(false); const handleSubmit = async (e) => { e.preventDefault(); setError(""); try { setLoading(true); if (mode === "login") { // --- ЛОГИН ЧЕРЕЗ API-СЛОЙ --- const token = await API.login(email, password); login(token); } else { // --- РЕГИСТРАЦИЯ ЧЕРЕЗ API-СЛОЙ --- if (!email || !password || !firstName || !lastName || !inviteCode) { throw new Error( "Заполните все поля регистрации, включая инвайт-код компании" ); } if (password.length < 6) { throw new Error("Пароль должен быть не короче 6 символов"); } await API.register({ email, password, first_name: firstName, last_name: lastName, invite_code: inviteCode, }); alert( "Аккаунт успешно создан. Теперь войдите, используя свой email и пароль." ); // Переключаемся обратно на режим входа setMode("login"); // email/пароль оставляем заполненными — можно сразу нажать "Войти" } } catch (err) { setError(err.message); } finally { setLoading(false); } }; const isLogin = mode === "login"; return (