diff --git a/apps/web/src/routes/account/+page.svelte b/apps/web/src/routes/account/+page.svelte index f463496..e38bacc 100644 --- a/apps/web/src/routes/account/+page.svelte +++ b/apps/web/src/routes/account/+page.svelte @@ -13,6 +13,18 @@ if (!devUser.id) goto('/'); }); + const initials = $derived.by(() => { + const name = devUser.user?.name ?? devUser.user?.email ?? '?'; + return name + .split(/[\s@.]+/) + .filter(Boolean) + .slice(0, 2) + .map((w) => w[0].toUpperCase()) + .join(''); + }); + + const shortId = $derived(devUser.id ? devUser.id.slice(0, 8) + '…' : '—'); + async function onExport() { exporting = true; try { @@ -31,7 +43,7 @@ decks: data.data.decks.length, cards: data.data.cards.length, reviews: data.data.reviews.length, - }) + }), ); } catch (e) { toasts.error(t('account.export_failed', { msg: (e as Error).message })); @@ -46,7 +58,9 @@ deleting = true; try { const r = await deleteMe(); - toasts.success(t('account.delete_done', { decks: r.counts.decks, imports: r.counts.import_jobs })); + toasts.success( + t('account.delete_done', { decks: r.counts.decks, imports: r.counts.import_jobs }), + ); devUser.clear(); goto('/'); } catch (e) { @@ -65,75 +79,309 @@ {t('account.title')} · {t('app.title_suffix')} -
-

{t('account.title')}

+
-
- {#if devUser.user} -
-
-
E-Mail
-
{devUser.user.email}
-
- {#if devUser.user.name} -
-
Name
-
{devUser.user.name}
-
- {/if} -
-
Tier
-
- {devUser.user.tier} -
-
-
-
{t('account.user_id_label')}
- {devUser.user.id} -
-
- {:else} -
-
{t('account.user_id_label')} (Stub)
- {devUser.id ?? '—'} -
- {/if} -
- + +
+ +
+ {#if devUser.user?.name} +

{devUser.user.name}

+ {/if} +

{devUser.user?.email ?? '—'}

+ {#if devUser.user?.tier} + {devUser.user.tier} + {/if}
-
+ +
-
-

{t('account.export_title')}

-

{t('account.export_intro')}

+ +
+
+

{t('account.user_id_label')}

+ {shortId} + {devUser.id ?? '—'} +
+
+

Tier

+

{devUser.user?.tier ?? '—'}

+
+
+ + +
+
+
📦
+
+

{t('account.export_title')}

+

{t('account.export_intro')}

+
+
-
+
-
-

{t('account.delete_title')}

-

{t('account.delete_intro')}

+ +
+
+
⚠️
+
+

{t('account.delete_title')}

+

{t('account.delete_intro')}

+
+
-
+ + + +