diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index f7cfbb6a..973bf031 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -1,16 +1,38 @@ 'use client'; +import toast from 'react-hot-toast'; +import { useRouter } from 'next/navigation'; + import { Icon } from '@iconify/react'; import Menu from '@/components/menu/Menu'; import MenuItem from '@/components/menu/MenuItem'; import Button from '@/components/Button'; +import { useAuth } from '@/services/hooks/useAuth'; +import { AuthApi } from '@/services/api/auth'; +import { isResponseError } from '@/lib/api-helper'; + interface NavbarProps { title: string; toggleSidebar?: () => void; } const Navbar = ({ title, toggleSidebar }: NavbarProps) => { + const { setUser } = useAuth(); + const router = useRouter(); + + const logoutClickHandler = async () => { + const logoutRes = await AuthApi.logout(); + + if (isResponseError(logoutRes)) { + toast.error('Gagal logout! Coba lagi!'); + return; + } + + setUser(undefined); + router.replace(process.env.NEXT_PUBLIC_SSO_LOGIN_URL as string); + }; + return (