All files / src/hooks/use-auth/use-auth-logout index.ts

96.96% Statements 32/33
66.66% Branches 2/3
100% Functions 2/2
96.96% Lines 32/33

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 341x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 14x 14x 14x 14x 14x 14x 2x 2x 2x   2x 2x 2x 2x 2x 2x 2x 2x 2x 14x 14x 14x  
'use client';
 
import { useRouter } from 'next/navigation';
 
import { useQueryClient } from '@tanstack/react-query';
 
import { API } from '@/api';
import { userKeys } from '@/lib/query-key/query-key-user';
import { useAuth } from '@/providers';
 
export const useLogout = () => {
  const router = useRouter();
  const queryClient = useQueryClient();
 
  const { setIsAuthenticated } = useAuth();
 
  const handleLogout = async () => {
    try {
      await API.authService.logout();
    } catch (error) {
      console.error('[LOGOUT ERROR]', error);
    } finally {
      // 로그인 유저 관련 캐시 정리
      queryClient.removeQueries({ queryKey: userKeys.all });
 
      setIsAuthenticated(false);
 
      router.push('/');
    }
  };
 
  return handleLogout;
};