From 93a9379f5e5b40b950a2cdb547231da25b3e3200 Mon Sep 17 00:00:00 2001 From: Frederic Cabassut Date: Mon, 9 Mar 2026 00:36:22 +0100 Subject: [PATCH] feat(ui): dynamic OAuth buttons on login page Login page loads enabled providers from server and shows "or continue with" divider + branded buttons for Google/GitHub/OIDC. Also handles rate limit 429 and OAuth no_account error display. Co-Authored-By: Claude Opus 4.6 --- src/routes/(auth)/login/+page.server.ts | 8 ++++ src/routes/(auth)/login/+page.svelte | 53 ++++++++++++++++++++++++- 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 src/routes/(auth)/login/+page.server.ts diff --git a/src/routes/(auth)/login/+page.server.ts b/src/routes/(auth)/login/+page.server.ts new file mode 100644 index 0000000..daa4752 --- /dev/null +++ b/src/routes/(auth)/login/+page.server.ts @@ -0,0 +1,8 @@ +import type { PageServerLoad } from './$types.js'; +import { getEnabledProviders } from '$lib/server/oauth/providers.js'; + +export const load: PageServerLoad = async () => { + return { + providers: getEnabledProviders() + }; +}; diff --git a/src/routes/(auth)/login/+page.svelte b/src/routes/(auth)/login/+page.svelte index 500af27..1387f24 100644 --- a/src/routes/(auth)/login/+page.svelte +++ b/src/routes/(auth)/login/+page.svelte @@ -1,11 +1,19 @@ @@ -77,4 +90,40 @@ {loading ? 'Signing in...' : 'Sign in'} + + {#if providers.length > 0} +
+
+ or continue with +
+
+ + + {/if}