- Add Superforms + Zod 4 for all admin form validation - Replace address isDefault with three separate boolean defaults (Mailing, Billing, Shipping) - Update profiles page with three-checkbox address form and toast improvements - Convert all admin page server actions to pass request directly to crud - Export superFormErrorsToFieldErrors helper for profiles server actions - Regenerate Prisma client for new schema fields
43 lines
1.7 KiB
Svelte
43 lines
1.7 KiB
Svelte
<script lang="ts">
|
|
import type { PageProps } from './$types';
|
|
|
|
let { data }: PageProps = $props();
|
|
</script>
|
|
|
|
<div class="flex h-full min-h-0 flex-col gap-6 p-6 dark:text-gray-100">
|
|
<h1 class="text-2xl font-semibold text-gray-900 dark:text-gray-100">
|
|
Welcome, {data.firstName}!
|
|
</h1>
|
|
|
|
<div class="grid grid-cols-1 gap-4 sm:grid-cols-3">
|
|
<a
|
|
href="/license-keys"
|
|
class="rounded-lg border border-gray-200 bg-white p-6 shadow-sm transition-shadow hover:shadow-md dark:border-gray-700 dark:bg-gray-900"
|
|
>
|
|
<p class="text-sm font-medium text-gray-500 dark:text-gray-400">Active License Keys</p>
|
|
<p class="mt-2 text-3xl font-bold text-gray-900 dark:text-gray-100">{data.activeKeys}</p>
|
|
<p class="mt-1 text-sm text-gray-400 dark:text-gray-500">{data.totalKeys} total</p>
|
|
</a>
|
|
|
|
<a
|
|
href="/admin/proclamations"
|
|
class="rounded-lg border border-gray-200 bg-white p-6 shadow-sm transition-shadow hover:shadow-md dark:border-gray-700 dark:bg-gray-900"
|
|
>
|
|
<p class="text-sm font-medium text-gray-500 dark:text-gray-400">Proclamations</p>
|
|
<p class="mt-2 text-3xl font-bold text-gray-900 dark:text-gray-100">
|
|
{data.proclamationCount}
|
|
</p>
|
|
<p class="mt-1 text-sm text-gray-400 dark:text-gray-500">Browse all</p>
|
|
</a>
|
|
|
|
<a
|
|
href="/account"
|
|
class="rounded-lg border border-gray-200 bg-white p-6 shadow-sm transition-shadow hover:shadow-md dark:border-gray-700 dark:bg-gray-900"
|
|
>
|
|
<p class="text-sm font-medium text-gray-500 dark:text-gray-400">Account</p>
|
|
<p class="mt-2 text-lg font-semibold text-gray-900 dark:text-gray-100">Manage Profile</p>
|
|
<p class="mt-1 text-sm text-gray-400 dark:text-gray-500">Edit your details</p>
|
|
</a>
|
|
</div>
|
|
</div>
|