All files / app/features/auth Logout.tsx

0% Statements 0/19
0% Branches 0/2
0% Functions 0/4
0% Lines 0/19

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 34 35 36 37 38 39 40 41 42 43                                                                                     
import Alert from "components/Alert";
import CircularProgress from "components/CircularProgress";
import { RpcError } from "grpc-web";
import { useRouter } from "next/router";
import { useEffect } from "react";
import { useMutation, useQueryClient } from "react-query";
import { baseRoute } from "routes";
 
import { useAuthContext } from "./AuthProvider";
 
export default function Logout() {
  const { authActions } = useAuthContext();
  const queryClient = useQueryClient();
 
  const router = useRouter();
  const logout = useMutation<void, RpcError>(
    async () => {
      authActions.logout();
      queryClient.clear();
    },
    {
      onSuccess: () => {
        router.push(baseRoute);
      },
    }
  );
 
  const mutate = logout.mutate;
  useEffect(() => {
    mutate();
  }, [mutate]);
 
  return (
    <>
      {logout.error ? (
        <Alert severity="error">{logout.error.message}</Alert>
      ) : (
        <CircularProgress />
      )}
    </>
  );
}