summaryrefslogtreecommitdiff
path: root/src/components/header/authdialog
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/header/authdialog')
-rw-r--r--src/components/header/authdialog/LoginForm.tsx1
-rw-r--r--src/components/header/authdialog/register.ts29
2 files changed, 20 insertions, 10 deletions
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',
+ },
};
}
};