In-app store, torrential backend, locales (#332)

* feat: add store nav and fixes

* fix: reduce password requirement & new task error ui

* fix: client webtoken fix

* fix: delta versions and dockerfile

* fix: use setup platforms for filter & display

* fix: setup not accounted when returning valid options

* feat: tighter delta version support

* feat: dl/disk size

* feat: offload manifest generation to torrential

* fix: bump torrential

* feat: remove droplet

* feat: bump torrential

* feat: convert locales
This commit is contained in:
DecDuck
2026-02-06 00:12:24 +11:00
committed by GitHub
parent 6b614acfd8
commit 13c97cfcfc
82 changed files with 1737 additions and 967 deletions
+7 -4
View File
@@ -5,11 +5,10 @@
<h1
class="mt-4 text-3xl font-semibold tracking-tight text-balance text-white sm:text-4xl"
>
Two-factor authentication
{{ $t("auth.2fa.title") }}
</h1>
<p class="mt-6 text-sm font-medium text-pretty text-zinc-400 sm:text-md">
Two-factor authentication is enabled on your account. Choose one of the
options below to continue.
{{ $t("auth.2fa.description") }}
</p>
</div>
<div class="mx-auto mt-16 flow-root max-w-lg sm:mt-20">
@@ -18,7 +17,11 @@
<NuxtLink
:href="{ path: '/auth/mfa', query: route.query }"
class="text-sm/6 font-semibold text-blue-400"
><span aria-hidden="true">&larr;</span> Back to options</NuxtLink
><i18n-t keypath="auth.2fa.backToOptions" tag="span" scope="global">
<template #arrow>
<span aria-hidden="true">{{ $t("chars.arrowBack") }}</span>
</template>
</i18n-t></NuxtLink
>
</div>
</div>
+4 -5
View File
@@ -13,11 +13,11 @@
<h3 class="text-sm/6 font-semibold text-white">
<NuxtLink :to="{ path: '/auth/mfa/totp', query: route.query }">
<span class="absolute inset-0" aria-hidden="true"></span>
TOTP
{{ $t("auth.2fa.totp.title") }}
</NuxtLink>
</h3>
<p class="mt-2 text-sm/6 text-zinc-400">
Use a one-time code to sign in to your Drop account.
{{ $t("auth.2fa.totp.description") }}
</p>
</div>
<div class="flex-none self-center">
@@ -34,12 +34,11 @@
<h3 class="text-sm/6 font-semibold text-white">
<NuxtLink :to="{ path: '/auth/mfa/webauthn', query: route.query }">
<span class="absolute inset-0" aria-hidden="true"></span>
WebAuthn
{{ $t("auth.2fa.passkey.title") }}
</NuxtLink>
</h3>
<p class="mt-2 text-sm/6 text-zinc-400">
Use a passkey, like biometrics, a hardware security device, or other
compatible device to sign in to your Drop account.
{{ $t("auth.2fa.passkey.description") }}
</p>
</div>
<div class="flex-none self-center">
+2 -2
View File
@@ -24,8 +24,8 @@
<div v-else class="inline-flex gap-x-2">
<LoadingButton :loading="false" @click="() => tryAuthWrapper()">
Sign in with WebAuthn</LoadingButton
>
{{ $t("auth.2fa.passkey.signinButton") }}
</LoadingButton>
</div>
<div v-if="error" class="mt-8 rounded-md bg-red-600/10 p-4">
+1 -1
View File
@@ -227,7 +227,7 @@ const validUsername = computed(
!((usernameValidator(username.value) as unknown) instanceof type.errors),
);
const passwordValidator = type("string >= 14");
const passwordValidator = type("string >= 8");
const validPassword = computed(
() =>
!((passwordValidator(password.value) as unknown) instanceof type.errors),
+2 -2
View File
@@ -11,14 +11,14 @@
>
{{
superlevel
? "Sign in to access protected action"
? $t("auth.signin.titleProtected")
: $t("auth.signin.title")
}}
</h2>
<p class="mt-2 text-sm leading-6 text-zinc-400">
{{
superlevel
? "We need you to sign in again for security reasons while attempting to access more sensitive actions."
? $t("auth.signin.noAccountProtected")
: $t("auth.signin.noAccount")
}}
</p>