fix: add spinner to sign-in

This commit is contained in:
2026-01-22 17:48:53 -08:00
parent 496ed2cb00
commit a1c5c68f2c

View File

@@ -2,7 +2,7 @@
import { Avatar, Button, DropdownMenu, Separator } from 'bits-ui'; import { Avatar, Button, DropdownMenu, Separator } from 'bits-ui';
import { authClient } from './auth-client'; import { authClient } from './auth-client';
import Image from './Image.svelte'; import Image from './Image.svelte';
import { CircleUser, FolderGit2, User } from '@lucide/svelte'; import { CircleUser, FolderGit2, Loader2, User } from '@lucide/svelte';
import { goto } from '$app/navigation'; import { goto } from '$app/navigation';
type MockUser = { type MockUser = {
image: string; image: string;
@@ -10,8 +10,10 @@
const session = authClient.useSession(); const session = authClient.useSession();
const user = $derived($session.data?.user); const user = $derived($session.data?.user);
let loading = $state(false);
const signIn = async () => { const signIn = async () => {
loading = true;
await authClient.signIn.social({ await authClient.signIn.social({
provider: 'github' provider: 'github'
}); });
@@ -25,7 +27,11 @@
</Button.Root> </Button.Root>
{#if !user && !$session.isPending} {#if !user && !$session.isPending}
<Button.Root class="rounded-md p-2 transition-colors hover:bg-gray-800" onclick={signIn}> <Button.Root class="rounded-md p-2 transition-colors hover:bg-gray-800" onclick={signIn}>
Sign In {#if loading}
<Loader2 class="animate-spin" />
{:else}
Sign In
{/if}
</Button.Root> </Button.Root>
{:else if user} {:else if user}
<DropdownMenu.Root> <DropdownMenu.Root>