feat(register): redesign register page to match spec

Replaces the minimal login-style form with the full spec design:
hero section (eyebrow, headline, subtext), three labelled form sections,
2-column name grid, confirm-password field with client-side match hints,
password strength indicator, notification checkbox card, loading state on
submit, and "already have an account?" footer link.

Backend: adds notifyOnMention to RegisterRequest and wires both
notifyOnMention and notifyOnReply via updateNotificationPreferences on
invite redemption.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-04-19 12:27:03 +02:00
parent 1926e8e6e5
commit d07f7debf8
9 changed files with 321 additions and 117 deletions

View File

@@ -658,6 +658,22 @@
"register_invalid_code": "Ungültiger Einladungslink",
"register_invalid_code_desc": "Dieser Einladungslink ist nicht gültig, wurde bereits verwendet oder ist abgelaufen. Bitte wende dich an den Administrator.",
"register_success": "Dein Konto wurde erfolgreich erstellt. Du kannst dich jetzt anmelden.",
"register_eyebrow": "Ein Familienprojekt",
"register_hero_headline": "Schön, dass du da bist.",
"register_hero_subtext": "Gemeinsam bewahren wir Briefe und Dokumente für die Familie, jetzt und in Zukunft.",
"register_section_about": "Über dich",
"register_section_account": "Konto",
"register_section_notifications": "Benachrichtigungen",
"register_label_password_confirm": "Passwort bestätigen",
"register_pw_hint": "Mindestens 8 Zeichen.",
"register_pw_ok": "Mindestens 8 Zeichen. ✓",
"register_pw_match_ok": "Passwörter stimmen überein.",
"register_pw_match_no": "Die beiden Passwörter stimmen noch nicht überein.",
"register_notify_title": "Benachrichtige mich,",
"register_notify_desc": "wenn jemand mich in einem Kommentar erwähnt oder mir auf einen Kommentar antwortet.",
"register_btn_loading": "Wird erstellt …",
"register_already_have_account": "Du hast bereits ein Konto?",
"register_sign_in": "Anmelden",
"login_registered_success": "Dein Konto wurde erfolgreich erstellt. Melde dich jetzt an.",
"admin_tab_invites": "Einladungen",
"admin_invites_list_title": "Einladungen",

View File

@@ -658,6 +658,22 @@
"register_invalid_code": "Invalid invite link",
"register_invalid_code_desc": "This invite link is not valid, has already been used, or has expired. Please contact the administrator.",
"register_success": "Your account has been created. You can now sign in.",
"register_eyebrow": "A family project",
"register_hero_headline": "Glad you're here.",
"register_hero_subtext": "Together we preserve letters and documents for the family, now and in the future.",
"register_section_about": "About you",
"register_section_account": "Account",
"register_section_notifications": "Notifications",
"register_label_password_confirm": "Confirm password",
"register_pw_hint": "At least 8 characters.",
"register_pw_ok": "At least 8 characters. ✓",
"register_pw_match_ok": "Passwords match.",
"register_pw_match_no": "The two passwords don't match yet.",
"register_notify_title": "Notify me",
"register_notify_desc": "when someone mentions me in a comment or replies to one of my comments.",
"register_btn_loading": "Creating …",
"register_already_have_account": "Already have an account?",
"register_sign_in": "Sign in",
"login_registered_success": "Your account was created successfully. Sign in now.",
"admin_tab_invites": "Invites",
"admin_invites_list_title": "Invites",

View File

@@ -658,6 +658,22 @@
"register_invalid_code": "Enlace de invitación inválido",
"register_invalid_code_desc": "Este enlace de invitación no es válido, ya ha sido utilizado o ha expirado. Contacta al administrador.",
"register_success": "Tu cuenta ha sido creada. Ahora puedes iniciar sesión.",
"register_eyebrow": "Un proyecto familiar",
"register_hero_headline": "Qué bueno que estés aquí.",
"register_hero_subtext": "Juntos conservamos cartas y documentos para la familia, ahora y en el futuro.",
"register_section_about": "Sobre ti",
"register_section_account": "Cuenta",
"register_section_notifications": "Notificaciones",
"register_label_password_confirm": "Confirmar contraseña",
"register_pw_hint": "Al menos 8 caracteres.",
"register_pw_ok": "Al menos 8 caracteres. ✓",
"register_pw_match_ok": "Las contraseñas coinciden.",
"register_pw_match_no": "Las dos contraseñas aún no coinciden.",
"register_notify_title": "Notifícame",
"register_notify_desc": "cuando alguien me mencione en un comentario o responda a uno de mis comentarios.",
"register_btn_loading": "Creando …",
"register_already_have_account": "¿Ya tienes una cuenta?",
"register_sign_in": "Iniciar sesión",
"login_registered_success": "Tu cuenta fue creada con éxito. Inicia sesión ahora.",
"admin_tab_invites": "Invitaciones",
"admin_invites_list_title": "Invitaciones",