feat: add passkey sign-in settings control

This commit is contained in:
Zhixuan Jiang
2026-07-26 11:07:12 -04:00
parent 4158e73b3f
commit 357c5b917b
19 changed files with 343 additions and 12 deletions
@@ -21,15 +21,15 @@
</div>
<div class="px-6 py-6">
<div v-if="!enabled" class="text-sm text-gray-500 dark:text-gray-400">
<div v-if="!enabled" class="mb-5 text-sm text-gray-500 dark:text-gray-400">
{{ t('profile.passkey.featureDisabled') }}
</div>
<div v-else-if="!supported" class="text-sm text-amber-600 dark:text-amber-400">
<div v-if="enabled && !supported" class="mb-5 text-sm text-amber-600 dark:text-amber-400">
{{ t('profile.passkey.unsupported') }}
</div>
<div v-else>
<div>
<form
v-if="showAddForm"
v-if="enabled && supported && showAddForm"
class="mb-5 flex flex-col gap-3 rounded-lg border border-gray-200 p-4 dark:border-dark-700 sm:flex-row sm:items-end"
@submit.prevent="addPasskey"
>
@@ -135,7 +135,6 @@ const newName = ref('')
const credentials = ref<PasskeyCredentialSummary[]>([])
async function loadCredentials(): Promise<void> {
if (!supported) return
loading.value = true
try {
credentials.value = await passkeyAPI.list()
@@ -209,8 +208,8 @@ function formatDate(value: string): string {
watch(
() => props.enabled,
(enabled) => {
if (enabled) void loadCredentials()
() => {
void loadCredentials()
},
{ immediate: true }
)