src/app/hooks/useLocation/index.tsx

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import { useEffect, useState } from 'react';

const useLocation = () => {
  const [location, setLocation] = useState<Location>({
    search: '',
  } as Location);

  const listener = () => {
    setLocation(window.location);
  };

  useEffect(() => {
    setLocation(window.location);
  }, []);

  useEffect(() => {
    window.addEventListener('popstate', listener);
    return () => {
      window.removeEventListener('popstate', listener);
    };
  }, []);

  return location;
};

export default useLocation;