"use client"; import { signIn } from "next-auth/react"; import { useState } from "react"; import { Button } from "@/components/ui/Button"; import toast from "react-hot-toast"; interface SocialLoginButtonsProps { callbackUrl?: string; className?: string; } export function SocialLoginButtons({ callbackUrl = "/", className = "", }: SocialLoginButtonsProps) { const [loadingProvider, setLoadingProvider] = useState(null); const handleSocialLogin = async (provider: string) => { try { setLoadingProvider(provider); await signIn(provider, { callbackUrl, redirect: true, }); } catch (error) { console.error(`${provider} login error:`, error); toast.error(`${provider} 로그인 중 오류가 발생했습니다.`); } finally { setLoadingProvider(null); } }; const providers = [ { id: "google", name: "구글", bgColor: "bg-white hover:bg-gray-50", textColor: "text-gray-900", borderColor: "border-gray-300", icon: ( ), }, { id: "kakao", name: "카카오", bgColor: "bg-yellow-400 hover:bg-yellow-500", textColor: "text-black", borderColor: "border-yellow-400", icon: ( ), }, { id: "naver", name: "네이버", bgColor: "bg-green-500 hover:bg-green-600", textColor: "text-white", borderColor: "border-green-500", icon: ( ), }, ]; return (
{providers.map((provider) => ( ))}
); }