From d779aa794c492d343bad2d38a787757452cb5151 Mon Sep 17 00:00:00 2001 From: RevIQ Date: Sat, 10 Jan 2026 17:17:43 +0800 Subject: [PATCH] Add email verification banner for unverified users Shows a warning banner at the top of dashboard pages when the user's email is not verified, with a button to resend the verification email. Co-Authored-By: Claude Opus 4.5 --- .../components/layout/dashboard-layout.svelte | 11 +++ .../layout/email-verification-banner.svelte | 69 +++++++++++++++++++ .../src/lib/components/layout/index.ts | 1 + 3 files changed, 81 insertions(+) create mode 100644 apps/publisher-dashboard/src/lib/components/layout/email-verification-banner.svelte diff --git a/apps/publisher-dashboard/src/lib/components/layout/dashboard-layout.svelte b/apps/publisher-dashboard/src/lib/components/layout/dashboard-layout.svelte index 2f2472a..44342a6 100644 --- a/apps/publisher-dashboard/src/lib/components/layout/dashboard-layout.svelte +++ b/apps/publisher-dashboard/src/lib/components/layout/dashboard-layout.svelte @@ -1,8 +1,11 @@
@@ -20,6 +28,9 @@ let { title, children, class: className }: Props = $props();
+ {#if userQuery.data && !userQuery.data.emailVerified} + + {/if}
diff --git a/apps/publisher-dashboard/src/lib/components/layout/email-verification-banner.svelte b/apps/publisher-dashboard/src/lib/components/layout/email-verification-banner.svelte new file mode 100644 index 0000000..bdc15a6 --- /dev/null +++ b/apps/publisher-dashboard/src/lib/components/layout/email-verification-banner.svelte @@ -0,0 +1,69 @@ + + +
+
+ +

+ Please verify your email address at + {email} +

+
+ + +
diff --git a/apps/publisher-dashboard/src/lib/components/layout/index.ts b/apps/publisher-dashboard/src/lib/components/layout/index.ts index 5ff51f1..44d5210 100644 --- a/apps/publisher-dashboard/src/lib/components/layout/index.ts +++ b/apps/publisher-dashboard/src/lib/components/layout/index.ts @@ -1,4 +1,5 @@ export { default as AppHeader } from "./app-header.svelte"; export { default as AppSidebar } from "./app-sidebar.svelte"; export { default as DashboardLayout } from "./dashboard-layout.svelte"; +export { default as EmailVerificationBanner } from "./email-verification-banner.svelte"; export { default as MobileNav } from "./mobile-nav.svelte";