fix: add spinner to sign-in
This commit is contained in:
@@ -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}>
|
||||||
|
{#if loading}
|
||||||
|
<Loader2 class="animate-spin" />
|
||||||
|
{:else}
|
||||||
Sign In
|
Sign In
|
||||||
|
{/if}
|
||||||
</Button.Root>
|
</Button.Root>
|
||||||
{:else if user}
|
{:else if user}
|
||||||
<DropdownMenu.Root>
|
<DropdownMenu.Root>
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ import { jwtClient, adminClient } from 'better-auth/client/plugins';
|
|||||||
import { createAuthClient } from 'better-auth/svelte';
|
import { createAuthClient } from 'better-auth/svelte';
|
||||||
|
|
||||||
export const authClient = createAuthClient({
|
export const authClient = createAuthClient({
|
||||||
baseURL: process.env.BETTER_AUTH_URL!,
|
baseURL: "http://localhost:5173",
|
||||||
plugins: [jwtClient(), adminClient()]
|
plugins: [jwtClient(), adminClient()]
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user