feat(register): show invite-only error when no code param is present
Visiting /register without a code now shows a friendly error card explaining the archive is invite-only, instead of the empty form. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -657,6 +657,8 @@
|
||||
"register_btn_submit": "Konto erstellen",
|
||||
"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_invite_only": "Das Archiv ist nur auf Einladung zugänglich.",
|
||||
"register_invite_only_desc": "Für ein Konto benötigst du einen persönlichen Einladungslink. Bitte wende dich an ein Mitglied der Familie.",
|
||||
"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.",
|
||||
|
||||
@@ -657,6 +657,8 @@
|
||||
"register_btn_submit": "Create account",
|
||||
"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_invite_only": "The archive is invite-only.",
|
||||
"register_invite_only_desc": "You need a personal invite link to create an account. Please get in touch with a family member.",
|
||||
"register_success": "Your account has been created. You can now sign in.",
|
||||
"register_eyebrow": "A family project",
|
||||
"register_hero_headline": "Glad you're here.",
|
||||
|
||||
@@ -657,6 +657,8 @@
|
||||
"register_btn_submit": "Crear cuenta",
|
||||
"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_invite_only": "El archivo es solo por invitación.",
|
||||
"register_invite_only_desc": "Necesitas un enlace de invitación personal para crear una cuenta. Ponte en contacto con un miembro de la familia.",
|
||||
"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í.",
|
||||
|
||||
@@ -12,7 +12,7 @@ interface InvitePrefill {
|
||||
export const load: PageServerLoad = async ({ url, fetch }) => {
|
||||
const code = url.searchParams.get('code');
|
||||
if (!code) {
|
||||
return { code: null, prefill: null, codeError: null };
|
||||
return { code: null, prefill: null, codeError: 'NO_INVITE_CODE' };
|
||||
}
|
||||
|
||||
const apiUrl = env.API_INTERNAL_URL || 'http://localhost:8080';
|
||||
|
||||
@@ -60,9 +60,13 @@ $effect(() => {
|
||||
/>
|
||||
</svg>
|
||||
<h1 class="mb-2 font-sans text-sm font-bold tracking-widest text-ink uppercase">
|
||||
{m.register_invalid_code()}
|
||||
{data.codeError === 'NO_INVITE_CODE' ? m.register_invite_only() : m.register_invalid_code()}
|
||||
</h1>
|
||||
<p class="mb-6 font-serif text-sm text-ink-2">{m.register_invalid_code_desc()}</p>
|
||||
<p class="mb-6 font-serif text-sm text-ink-2">
|
||||
{data.codeError === 'NO_INVITE_CODE'
|
||||
? m.register_invite_only_desc()
|
||||
: m.register_invalid_code_desc()}
|
||||
</p>
|
||||
<a
|
||||
href="/login"
|
||||
class="font-sans text-xs font-bold tracking-widest text-brand-navy/60 uppercase transition-colors hover:text-brand-navy"
|
||||
|
||||
Reference in New Issue
Block a user