From ab330c64eeed9edfc2a6ef6a6f5cd38587ba0996 Mon Sep 17 00:00:00 2001 From: l3wdfut4pwr Date: Mon, 27 Apr 2026 13:45:25 +0300 Subject: add username change and logout --- src/components/header/authdialog/LoginForm.tsx | 1 + src/components/header/authdialog/register.ts | 29 +++++++++++++++++--------- 2 files changed, 20 insertions(+), 10 deletions(-) (limited to 'src/components/header') diff --git a/src/components/header/authdialog/LoginForm.tsx b/src/components/header/authdialog/LoginForm.tsx index 1dc2df4..b4d90f1 100644 --- a/src/components/header/authdialog/LoginForm.tsx +++ b/src/components/header/authdialog/LoginForm.tsx @@ -48,6 +48,7 @@ export default function LoginForm({ redirectTo }: { redirectTo?: string }) { if (!res.ok) { setErrors({ general: 'Неверный логин или пароль' }); + return; } else { const meRes = await fetch(`${API_URL}/api/me`, { credentials: 'include', diff --git a/src/components/header/authdialog/register.ts b/src/components/header/authdialog/register.ts index 3098df7..031fa69 100644 --- a/src/components/header/authdialog/register.ts +++ b/src/components/header/authdialog/register.ts @@ -52,29 +52,38 @@ export const registerUser = async ( credentials: 'include', }); - if (!res.ok) { - const errorData = await res.json(); + let data: any = null; + + try { + data = await res.json(); + } catch { + data = null; + } - const { field, message } = errorData.detail || {}; + if (!res.ok) { + const detail = data?.detail; return { data: null, - error: field - ? { [field]: message } - : { general: 'Ошибка регистрации' }, + error: detail?.field + ? { [detail.field]: detail.message } + : { general: detail?.message || 'Ошибка регистрации' }, }; } - const user = await res.json(); - return { - data: user, + data, error: null, }; } catch (err: any) { return { data: null, - error: { general: err.message }, + error: { + general: + err?.message === 'Failed to fetch' + ? 'Нет соединения с сервером' + : err?.message || 'Network error', + }, }; } }; -- cgit v1.3-3-g829e