diff options
| author | Adam Soltys <[email protected]> | 2026-02-16 08:45:37 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-02-16 08:45:37 -0800 |
| commit | fe104c2364de35bcdb2a10ca469cd25c12b04289 (patch) | |
| tree | ac781e1ba58afd43ba93b91c6965797ff8de3eee /src | |
| parent | 8905ad48f91e24cbb2427256a88128462a51a7a0 (diff) | |
| download | coinos-ui-fe104c2364de35bcdb2a10ca469cd25c12b04289.tar.gz coinos-ui-fe104c2364de35bcdb2a10ca469cd25c12b04289.zip | |
Prevent duplicate Ark vault accounts
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Diffstat (limited to 'src')
| -rw-r--r-- | src/routes/(app)/account/ark/+page.server.ts | 10 | ||||
| -rw-r--r-- | src/routes/(app)/account/new/+page.server.ts | 7 | ||||
| -rw-r--r-- | src/routes/(app)/account/new/+page.svelte | 22 |
3 files changed, 30 insertions, 9 deletions
diff --git a/src/routes/(app)/account/ark/+page.server.ts b/src/routes/(app)/account/ark/+page.server.ts new file mode 100644 index 00000000..90e617ff --- /dev/null +++ b/src/routes/(app)/account/ark/+page.server.ts @@ -0,0 +1,10 @@ +import { auth, get } from "$lib/utils"; +import { redirect } from "@sveltejs/kit"; + +export async function load({ cookies, parent }) { + const { user } = await parent(); + const accounts = await get("/accounts", auth(cookies)); + if (accounts.some((a) => a.type === "ark")) { + redirect(307, `/${user.username}`); + } +} diff --git a/src/routes/(app)/account/new/+page.server.ts b/src/routes/(app)/account/new/+page.server.ts new file mode 100644 index 00000000..8ecbb61c --- /dev/null +++ b/src/routes/(app)/account/new/+page.server.ts @@ -0,0 +1,7 @@ +import { auth, get } from "$lib/utils"; + +export async function load({ cookies }) { + const accounts = await get("/accounts", auth(cookies)); + const hasArk = accounts.some((a) => a.type === "ark"); + return { hasArk }; +} diff --git a/src/routes/(app)/account/new/+page.svelte b/src/routes/(app)/account/new/+page.svelte index c4045db8..3adb9d28 100644 --- a/src/routes/(app)/account/new/+page.svelte +++ b/src/routes/(app)/account/new/+page.svelte @@ -1,5 +1,7 @@ <script lang="ts"> import { t } from "$lib/translations"; + + let { data } = $props(); </script> <div class="space-y-5"> @@ -17,16 +19,18 @@ </div> </div> </a> - <a href="/account/ark" class="block"> - <div class="card card-side shadow shadow-base-300 p-8 hover:bg-base-200 gap-4 items-center"> - <img src="/images/ark.png" class="w-12 h-12 rounded-full object-cover" alt="Ark" /> - <div> - <div class="text-xl">Ark (Off-chain)</div> - <div class="text-secondary"> - Experimental layer 2 wallet offering low fees and fast settlement + {#if !data.hasArk} + <a href="/account/ark" class="block"> + <div class="card card-side shadow shadow-base-300 p-8 hover:bg-base-200 gap-4 items-center"> + <img src="/images/ark.png" class="w-12 h-12 rounded-full object-cover" alt="Ark" /> + <div> + <div class="text-xl">Ark (Off-chain)</div> + <div class="text-secondary"> + Experimental layer 2 wallet offering low fees and fast settlement + </div> </div> </div> - </div> - </a> + </a> + {/if} </div> </div> |
