Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
Ullrich Schäfer
f44dba2b65
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>
2026-03-29 10:49:00 +02:00

View file

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