From e14ab2818581241d31e7b65accb2699dbed6abff Mon Sep 17 00:00:00 2001 From: sirin Date: Fri, 30 Aug 2024 20:59:12 +0700 Subject: [PATCH] Add login-logout button component --- src/components/auth/loginButton.tsx | 25 +++++++++++++++++++++++++ src/components/auth/logoutButton.tsx | 16 ++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/components/auth/loginButton.tsx create mode 100644 src/components/auth/logoutButton.tsx diff --git a/src/components/auth/loginButton.tsx b/src/components/auth/loginButton.tsx new file mode 100644 index 0000000..9c7c8ba --- /dev/null +++ b/src/components/auth/loginButton.tsx @@ -0,0 +1,25 @@ +"use client"; + +import Image from "next/image"; +import { createSupabaseClient } from "@/lib/supabase/clientComponentClient"; +import { Button } from "@/components/ui/button"; + +export function LoginButton(props: { nextUrl?: string }) { + const supabase = createSupabaseClient(); + + const handleLogin = async () => { + await supabase.auth.signInWithOAuth({ + provider: "google", + options: { + redirectTo: `${location.origin}/auth/callback?next=${props.nextUrl || ""}`, + }, + }); + }; + + return ( + + ); +} diff --git a/src/components/auth/logoutButton.tsx b/src/components/auth/logoutButton.tsx new file mode 100644 index 0000000..d4cd348 --- /dev/null +++ b/src/components/auth/logoutButton.tsx @@ -0,0 +1,16 @@ +"use client"; + +import { createSupabaseClient } from "@/lib/supabase/clientComponentClient"; +import { useRouter } from "next/navigation"; + +export function LogoutButton() { + const supabase = createSupabaseClient(); + const router = useRouter(); + + const handleLogout = async () => { + await supabase.auth.signOut(); + router.push("/"); + }; + + return ; +}