fix(frontend): Strip confirmPassword before API calls; add pointer cursor

- Destructure confirmPassword out of form values in SetupPage and
  InviteCompletePage so it is never sent to the backend
- Add global cursor:pointer rule for buttons, selects, labels and links

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 11:17:20 +02:00
co-authored by Claude Haiku 4.5
parent f221d7cee5
commit 2f381d8407
3 changed files with 8 additions and 5 deletions
+4
View File
@@ -110,6 +110,10 @@
-moz-osx-font-smoothing: grayscale;
}
button, [role="button"], select, label[for], a[href], [tabindex]:not([tabindex="-1"]) {
cursor: pointer;
}
/* Visible focus ring for keyboard navigation (NFR-U1-02 / Q2-A). */
:focus-visible {
outline: 2px solid var(--color-ring);
+2 -4
View File
@@ -68,10 +68,8 @@ export function InviteCompletePage() {
setLoadingState('error');
return;
}
await completeMutation.mutateAsync({
token,
...values
});
const { confirmPassword: _, ...fields } = values;
await completeMutation.mutateAsync({ token, ...fields });
setLoadingState('success');
setTimeout(() => {
navigate({ to: '/login' });
+2 -1
View File
@@ -45,7 +45,8 @@ export function SetupPage() {
const onSubmit = handleSubmit(async (values) => {
setServerError(null);
try {
await setupMutation.mutateAsync(values);
const { confirmPassword: _, ...payload } = values;
await setupMutation.mutateAsync(payload);
setSuccessMessage(true);
setTimeout(() => {
navigate({ to: '/login' });