Revamp navigation with org switcher and user menu, fix passkey login

Navigation changes:
- Add org-switcher dropdown to sidebar showing user's orgs
- Add user-menu dropdown with account settings and sign out
- Make nav items dynamic based on org context
- Move performance page to /dashboard/[slug]/performance
- Add reports placeholder page at /dashboard/[slug]/reports
- Remove admin link from sidebar (separate layout)
- Update mobile nav to match sidebar changes
- Install shadcn dropdown-menu and popover components

Auth fix:
- Mark login request as completed after passkey verification
- Previously passkey auth didn't complete the login flow, requiring
  unnecessary email verification

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
RevIQ
2026-01-10 15:45:03 +08:00
parent ddd7c0c03b
commit dd7b2ea8e4
34 changed files with 882 additions and 200 deletions

View File

@@ -153,6 +153,13 @@ const verifyAuthentication = os.auth.webauthn.verifyAuthentication
message: "Authentication failed",
});
}
// Mark the login request as completed - passkey verification is equivalent to email verification
await context.db
.updateTable("login_requests")
.set({ completed_at: new Date() })
.where("id", "=", String(context.loginRequestId))
.execute();
});
// Me procedures