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 @@
{devUser.user.id}
- {devUser.id ?? '—'}
- {devUser.user.name}
+ {/if} +{devUser.user?.email ?? '—'}
+ {#if devUser.user?.tier} + {devUser.user.tier} + {/if}{t('account.export_intro')}
+ + + + +{t('account.export_intro')}
+{t('account.delete_intro')}
+ +{t('account.delete_intro')}
+