Skip to content

Commit b8244ab

Browse files
TiZoriiViktorSvertoka
authored andcommitted
fix reset password error granularity, password byte copy, and dashboard toast messages
1 parent 6fc18dd commit b8244ab

5 files changed

Lines changed: 37 additions & 15 deletions

File tree

frontend/components/auth/ResetPasswordForm.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,9 @@ export function ResetPasswordForm({ token }: ResetPasswordFormProps) {
7676
});
7777

7878
if (!res.ok) {
79-
setError(t('errors.resetFailed'));
79+
setError(
80+
res.status === 400 ? t('errors.resetFailed') : t('errors.serverError')
81+
);
8082
return;
8183
}
8284

frontend/components/dashboard/ProfileCard.tsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ export function ProfileCard({
6464
try {
6565
const result = await updateName(formData);
6666
if (!result.success) {
67-
toast.error(result.error || 'Failed to update name');
67+
toast.error(result.error || t('updateNameFailed'));
6868
}
6969
} catch {
70-
toast.error('Something went wrong');
70+
toast.error(t('somethingWentWrong'));
7171
} finally {
7272
setIsSaving(false);
7373
}
@@ -83,10 +83,10 @@ export function ProfileCard({
8383
if (result.success) {
8484
(e.target as HTMLFormElement).reset();
8585
} else {
86-
toast.error(result.error || 'Failed to update password');
86+
toast.error(result.error || t('updatePasswordFailed'));
8787
}
8888
} catch {
89-
toast.error('Something went wrong');
89+
toast.error(t('somethingWentWrong'));
9090
} finally {
9191
setIsSaving(false);
9292
}
@@ -331,6 +331,12 @@ export function ProfileCard({
331331
e.currentTarget.setCustomValidity(
332332
tFields('validation.required')
333333
);
334+
} else if (e.currentTarget.validity.tooShort) {
335+
e.currentTarget.setCustomValidity(
336+
tFields('validation.passwordTooShort', {
337+
minLength: 8,
338+
})
339+
);
334340
}
335341
}}
336342
onInput={e => e.currentTarget.setCustomValidity('')}

frontend/messages/en.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,7 +1145,8 @@
11451145
"submitting": "Updating...",
11461146
"errors": {
11471147
"resetFailed": "Failed to reset password. The link may be invalid or expired.",
1148-
"networkError": "Network error. Please try again."
1148+
"networkError": "Network error. Please try again.",
1149+
"serverError": "Something went wrong. Please try again later."
11491150
},
11501151
"success": "Your password has been updated successfully."
11511152
},
@@ -1168,7 +1169,7 @@
11681169
"passwordRequirements": "{PASSWORD_MIN_LEN}-{PASSWORD_MAX_BYTES} characters, at least one capital letter, and at least one special character",
11691170
"invalidPassword": "Password must meet requirements: {passwordRequirementsText}",
11701171
"passwordTooShort": "Password must be at least {minLength} characters",
1171-
"passwordTooLongBytes": "Password must not exceed {PASSWORD_MAX_BYTES} characters",
1172+
"passwordTooLongBytes": "Password must not exceed {PASSWORD_MAX_BYTES} bytes",
11721173
"passwordsDontMatch": "Passwords don't match"
11731174
}
11741175
},
@@ -1206,7 +1207,10 @@
12061207
"newPassword": "New password",
12071208
"nameUpdateSuccess": "Name updated successfully",
12081209
"passwordUpdateSuccess": "Password updated successfully",
1209-
"saving": "Saving..."
1210+
"saving": "Saving...",
1211+
"updateNameFailed": "Failed to update name. Please try again.",
1212+
"updatePasswordFailed": "Failed to update password. Please try again.",
1213+
"somethingWentWrong": "Something went wrong. Please try again."
12101214
},
12111215
"stats": {
12121216
"title": "Quiz Statistics",

frontend/messages/pl.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,7 +1145,8 @@
11451145
"submitting": "Aktualizowanie...",
11461146
"errors": {
11471147
"resetFailed": "Nie udało się zresetować hasła. Link może być nieprawidłowy lub wygasły.",
1148-
"networkError": "Błąd sieci. Spróbuj ponownie."
1148+
"networkError": "Błąd sieci. Spróbuj ponownie.",
1149+
"serverError": "Coś poszło nie tak. Spróbuj ponownie później."
11491150
},
11501151
"success": "Twoje hasło zostało pomyślnie zaktualizowane."
11511152
},
@@ -1168,7 +1169,7 @@
11681169
"passwordRequirements": "{PASSWORD_MIN_LEN}–{PASSWORD_MAX_BYTES} znaków, co najmniej jedną wielką literę i co najmniej jeden znak specjalny",
11691170
"invalidPassword": "Hasło musi spełniać wymagania: {passwordRequirementsText}",
11701171
"passwordTooShort": "Hasło musi mieć co najmniej {minLength} znaków",
1171-
"passwordTooLongBytes": "Hasło nie może przekraczać {PASSWORD_MAX_BYTES} znaków",
1172+
"passwordTooLongBytes": "Hasło nie może przekraczać {PASSWORD_MAX_BYTES} bajtów",
11721173
"passwordsDontMatch": "Hasła nie zgadzają się"
11731174
}
11741175
},
@@ -1208,7 +1209,10 @@
12081209
"changePassword": "Zmień hasło",
12091210
"currentPassword": "Aktualne hasło",
12101211
"newPassword": "Nowe hasło",
1211-
"saving": "Zapisywanie..."
1212+
"saving": "Zapisywanie...",
1213+
"updateNameFailed": "Nie udało się zaktualizować nazwy. Spróbuj ponownie.",
1214+
"updatePasswordFailed": "Nie udało się zaktualizować hasła. Spróbuj ponownie.",
1215+
"somethingWentWrong": "Coś poszło nie tak. Spróbuj ponownie."
12121216
},
12131217
"stats": {
12141218
"title": "Statystyki quizów",

frontend/messages/uk.json

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,7 +1145,8 @@
11451145
"submitting": "Оновлення...",
11461146
"errors": {
11471147
"resetFailed": "Не вдалося скинути пароль. Посилання може бути недійсним або застарілим.",
1148-
"networkError": "Помилка мережі. Спробуйте ще раз."
1148+
"networkError": "Помилка мережі. Спробуйте ще раз.",
1149+
"serverError": "Щось пішло не так. Спробуйте пізніше."
11491150
},
11501151
"success": "Ваш пароль успішно оновлено."
11511152
},
@@ -1168,7 +1169,7 @@
11681169
"passwordRequirements": "{PASSWORD_MIN_LEN}-{PASSWORD_MAX_BYTES} символів, принаймні одна велика літера та принаймні один спеціальний символ",
11691170
"invalidPassword": "Пароль має відповідати вимогам: {passwordRequirementsText}",
11701171
"passwordTooShort": "Пароль має містити щонайменше {minLength} символів",
1171-
"passwordTooLongBytes": "Пароль не повинен перевищувати {PASSWORD_MAX_BYTES} символів",
1172+
"passwordTooLongBytes": "Пароль не повинен перевищувати {PASSWORD_MAX_BYTES} байт",
11721173
"passwordsDontMatch": "Паролі не співпадають"
11731174
}
11741175
},
@@ -1210,7 +1211,10 @@
12101211
"newPassword": "Новий пароль",
12111212
"nameUpdateSuccess": "Ім'я успішно оновлено",
12121213
"passwordUpdateSuccess": "Пароль успішно оновлено",
1213-
"saving": "Збереження..."
1214+
"saving": "Збереження...",
1215+
"updateNameFailed": "Не вдалося оновити ім'я. Спробуйте ще раз.",
1216+
"updatePasswordFailed": "Не вдалося оновити пароль. Спробуйте ще раз.",
1217+
"somethingWentWrong": "Щось пішло не так. Спробуйте ще раз."
12141218
},
12151219
"stats": {
12161220
"title": "Статистика квізів",
@@ -1322,7 +1326,9 @@
13221326
"expand": "Переглянути всі",
13231327
"collapse": "Згорнути",
13241328
"clickInfo": "Натисніть для інфо",
1325-
"clickBack": "Натисніть, щоб повернутись"
1329+
"clickBack": "Натисніть, щоб повернутись",
1330+
"more": "ще",
1331+
"moreCount": "ще {count}"
13261332
},
13271333
"badges": {
13281334
"first_blood": {

0 commit comments

Comments
 (0)