You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of the epic: need4deed-org/be#922. Backend (need4deed-org/be#920) emails invited
volunteers a link with a token; this is the page that link lands on, where
they set a password and activate their account.
On success: call setAuthHint() and redirect to /dashboard, matching
the existing ProfileCompletion flow for agent registration.
Add the new route segment to the no-redirect-on-401 allowlist in src/config/axios.ts (currently login, forms, register) so a stale
or anonymous session doesn't hijack the flow mid-invite.
Add copy under a new translations.json namespace (mirror the agentRegistration namespace's shape) in both public/locales/en/translations.json and public/locales/de/translations.json.
Acceptance criteria
Page renders for a valid, unexpired token and lets the user set a
password
Expired / invalid / already-used tokens show a clear error state (no
silent failure)
On success, the user lands authenticated on /dashboard
Why
Part of the epic: need4deed-org/be#922. Backend (need4deed-org/be#920) emails invited
volunteers a link with a token; this is the page that link lands on, where
they set a password and activate their account.
Scope
need4deed-sdkto that version before starting.src/app/[lang]/invite/volunteer/[token]/page.tsx(orreuse
verify-email/[token]with a role marker — decide during TODOreview, once the backend endpoint shape from feat: invite flow — mint invite tokens for volunteers, accept-invite endpoint be#920 is
final).
ResetPasswordForm's password + confirm-password fields andvalidation (
resetPasswordSchema.ts) as a base rather than rebuilding it.review, once feat: invite flow — mint invite tokens for volunteers, accept-invite endpoint be#920 lands) with the
token + password via
useMutationQuery(repo convention — not a rawaxios.post).setAuthHint()and redirect to/dashboard, matchingthe existing
ProfileCompletionflow for agent registration.src/config/axios.ts(currentlylogin,forms,register) so a staleor anonymous session doesn't hijack the flow mid-invite.
translations.jsonnamespace (mirror theagentRegistrationnamespace's shape) in bothpublic/locales/en/translations.jsonandpublic/locales/de/translations.json.Acceptance criteria
password
silent failure)
/dashboardenanddelocale files