// static/js/auth.RegisterOrganizationForm.jsx function RegisterOrganizationForm() { const { login, setView } = useContext(AuthContext); const [orgName, setOrgName] = useState(""); const [orgDescription, setOrgDescription] = useState(""); const [orgEmail, setOrgEmail] = useState(""); const [orgPhone, setOrgPhone] = useState(""); const [orgWebsite, setOrgWebsite] = useState(""); const [adminFirstName, setAdminFirstName] = useState(""); const [adminLastName, setAdminLastName] = useState(""); const [adminEmail, setAdminEmail] = useState(""); const [adminPassword, setAdminPassword] = useState(""); const [adminPassword2, setAdminPassword2] = useState(""); const [agreed, setAgreed] = useState(false); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); const [success, setSuccess] = useState(""); const handleSubmit = async (e) => { e.preventDefault(); setError(""); setSuccess(""); if (!agreed) { setError("Для регистрации необходимо согласие на обработку персональных данных."); return; } if (adminPassword.length < 6) { setError("Пароль администратора должен быть не короче 6 символов."); return; } if (adminPassword !== adminPassword2) { setError("Пароли администратора не совпадают."); return; } if (!orgName.trim()) { setError("Введите название организации."); return; } if (!orgEmail.trim()) { setError("Укажите контактный email организации."); return; } if (!adminEmail.trim()) { setError("Укажите email администратора."); return; } setLoading(true); try { const payload = { org_name: orgName.trim(), org_description: orgDescription.trim() || null, org_contact_email: orgEmail.trim(), org_contact_phone: orgPhone.trim() || null, org_website: orgWebsite.trim() || null, org_logo_url: null, admin_email: adminEmail.trim(), admin_first_name: adminFirstName.trim() || "Администратор", admin_last_name: adminLastName.trim() || "Организации", admin_password: adminPassword, personal_data_agreement: true, }; const data = await API.registerOrganization(payload); // Автоматически логинимся и переходим в админ-панель if (data && data.access_token) { login(data.access_token); setSuccess("Организация успешно зарегистрирована. Перенаправляем в админ-панель..."); setView("admin"); } else { setSuccess("Организация успешно зарегистрирована. Теперь войдите под админ-аккаунтом."); setView("login"); } } catch (e) { console.error(e); setError(e.message || "Ошибка регистрации организации"); } finally { setLoading(false); } }; return (
После регистрации вы получите доступ к админ-панели, где сможете создавать тесты, добавлять сотрудников и смотреть результаты.
{error && (