'use client'; import Link from 'next/link'; import { usePathname, useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; import { createClient } from '@/lib/supabase/client'; const navItems = [ { href: '/', icon: ( ), label: '홈', desc: '대시보드 홈', }, { href: '/services/website', icon: ( ), label: '홈페이지 제작', desc: '외주 웹 개발', badge: 'NEW', }, { href: '/services/automation', icon: ( ), label: '업무 자동화', desc: 'RPA 개발', }, { href: '/services/prompt', icon: ( ), label: '프롬프트 엔지니어링', desc: 'AI 최적화', }, { href: '/services/ai-kit', icon: ( ), label: 'AI 자동화 키트', desc: '월 구독 자동화 도구', badge: 'NEW', }, { href: '/saju', icon: ( ), label: 'AI 사주 분석', desc: '사주팔자 + AI 해석', }, ]; interface SidebarProps { isOpen: boolean; onClose: () => void; } export default function Sidebar({ isOpen, onClose }: SidebarProps) { const pathname = usePathname(); const router = useRouter(); const [userEmail, setUserEmail] = useState(null); const supabase = createClient(); useEffect(() => { supabase.auth.getUser().then(({ data }) => { setUserEmail(data.user?.email ?? null); }); const { data: { subscription } } = supabase.auth.onAuthStateChange((_, session) => { setUserEmail(session?.user?.email ?? null); }); return () => subscription.unsubscribe(); }, []); const handleLogout = async () => { await supabase.auth.signOut(); router.push('/'); router.refresh(); onClose(); }; return ( <> {/* Mobile overlay */} {isOpen && ( )} {/* Sidebar */} > ); }