diff --git a/src/lib/components/sidebar.svelte b/src/lib/components/sidebar.svelte index 2acd612..6df1c95 100644 --- a/src/lib/components/sidebar.svelte +++ b/src/lib/components/sidebar.svelte @@ -4,9 +4,22 @@ import { Button } from '$lib/components/ui/button' import * as Avatar from '$lib/components/ui/avatar' import * as DropdownMenu from '$lib/components/ui/dropdown-menu' + import * as AlertDialog from '$lib/components/ui/alert-dialog' - import { User } from 'lucide-svelte' + import { Loader2, User } from 'lucide-svelte' import { goto } from '$app/navigation' + + let dialogOpen = false + let isLoading = false + const logout = async () => { + isLoading = true + + await fetch('/api/logout', { method: 'post' }) + + isLoading = false + dialogOpen = false + goto('/login') + }
@@ -46,9 +59,34 @@ -
- -
+
+ + + + + + + Are you absolutely sure? + + You are about to log out of this account. + + + + Cancel + + + + +
diff --git a/src/routes/api/logout/+server.ts b/src/routes/api/logout/+server.ts new file mode 100644 index 0000000..5990116 --- /dev/null +++ b/src/routes/api/logout/+server.ts @@ -0,0 +1,10 @@ +import type { RequestHandler } from './$types' + +export const GET: RequestHandler = async () => { + return new Response() +} + +export const POST: RequestHandler = async (event) => { + await new Promise((r) => setTimeout(r, 5000)) + return new Response('hello') +}