All files / client/src/components KompassiLoginCallback.tsx

73.68% Statements 14/19
50% Branches 3/6
100% Functions 3/3
73.68% Lines 14/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              356x 18x 18x   18x   18x 18x   18x 18x 18x 18x 18x         18x       18x     18x          
import { ReactElement, useEffect } from "react";
import { useNavigate, useSearchParams } from "react-router";
import { submitKompassiLogin } from "client/views/login/loginThunks";
import { useAppDispatch } from "client/utils/hooks";
import { Loading } from "client/components/Loading";
import { AppRoute } from "client/app/AppRoutes";
 
export const KompassiLoginCallback = (): ReactElement => {
  const dispatch = useAppDispatch();
  const navigate = useNavigate();
 
  const [searchParams] = useSearchParams();
 
  const code = searchParams.get("code");
  const error = searchParams.get("error");
 
  useEffect(() => {
    const fetchData = async (): Promise<void> => {
      Eif (code) {
        const errorMessage = await dispatch(submitKompassiLogin(code));
        Iif (errorMessage) {
          await navigate(`${AppRoute.LOGIN}?error=${errorMessage}`);
          return;
        }
      }
      Iif (error) {
        await navigate(AppRoute.LOGIN);
        return;
      }
      await navigate(AppRoute.ROOT);
    };
    // eslint-disable-next-line @typescript-eslint/no-floating-promises
    fetchData();
  }, [code, error, dispatch, navigate]);
 
  return <Loading />;
};