Only show add-passkey prompt when user has no passkeys

The prompt now only appears when coming from signup/login with
?add-passkey=1 AND the user has zero passkeys. Passkey count display
removed from home — that info lives in /settings now.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ullrich Schäfer 2026-03-29 10:49:00 +02:00
parent a766bffad5
commit f44dba2b65
No known key found for this signature in database
GPG key ID: A32FF691A0F752D9

View file

@ -17,27 +17,27 @@ export function meta(_args: Route.MetaArgs) {
export async function loader({ request }: Route.LoaderArgs) {
const user = await getSessionUser(request);
const url = new URL(request.url);
const showAddPasskey = url.searchParams.get("add-passkey") === "1" && user !== null;
const addPasskeyParam = url.searchParams.get("add-passkey") === "1" && user !== null;
let passkeyCount = 0;
if (user) {
// Only show the add-passkey prompt if the user has no passkeys yet
let showAddPasskey = false;
if (addPasskeyParam && user) {
const db = getDb();
const [row] = await db
.select({ count: count() })
.from(credentials)
.where(eq(credentials.userId, user.id));
passkeyCount = row?.count ?? 0;
showAddPasskey = (row?.count ?? 0) === 0;
}
return data({
user: user ? { id: user.id, username: user.username, displayName: user.displayName } : null,
showAddPasskey,
passkeyCount,
});
}
export default function Home({ loaderData }: Route.ComponentProps) {
const { user, showAddPasskey, passkeyCount } = loaderData;
const { user, showAddPasskey } = loaderData;
const { t } = useTranslation("journal");
const [addingPasskey, setAddingPasskey] = useState(false);
const [passkeyDone, setPasskeyDone] = useState(false);
@ -144,11 +144,6 @@ export default function Home({ loaderData }: Route.ComponentProps) {
</div>
)}
{user && passkeyCount > 0 && !showAddPasskey && (
<p className="mt-4 text-sm text-gray-500">
{t("passkeyStatus", { count: passkeyCount })}
</p>
)}
</div>
) : (
<div className="mt-8 flex gap-4">