All files / src/hooks useDefaultPage.ts

0% Statements 0/29
0% Branches 0/7
0% Functions 0/5
0% Lines 0/29

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 44 45 46 47 48 49 50 51 52 53 54 55                                                                                                             
import { useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import { useLocation, useNavigate } from "react-router-dom";
import {
  selectAccessToken,
  selectEmail,
  setLastLogin,
} from "../store/features/auth/authSlice";
import { useGetUserQuery } from "../store/features/auth/api";
import { isUnAuth } from "../utils/auth/unauthenticatedRoutes";
import posthog from "posthog-js";
 
function useDefaultPage() {
  const navigate = useNavigate();
  const location = useLocation();
  const email = useSelector(selectEmail);
  const accessToken = useSelector(selectAccessToken);
  const { data, isError } = useGetUserQuery();
  const dispatch = useDispatch();
 
  useEffect(() => {
    Iif (email) {
      posthog.identify(email);
    }
  }, [email]);
 
  useEffect(() => {
    Iif (!data && isError && !isUnAuth(location.pathname)) {
      navigate("/signup", {
        replace: true,
        state: { from: location.pathname },
      });
    }
  }, [data, isError, accessToken]);
 
  useEffect(() => {
    const loader = document.querySelector(
      ".loader-container",
    ) as HTMLDivElement;
    Iif (loader) {
      loader.style.display = "none";
    }
  }, []);
 
  useEffect(() => {
    Iif (data?.user) {
      const d = new Date().toString();
      dispatch(setLastLogin(d));
      localStorage.setItem("lastLogin", d);
    }
  }, [data]);
}
 
export default useDefaultPage;