import { useEffect, useState } from 'react';

type ScreenSize = 'small' | 'medium' | 'large' | 'xlarge';

const breakpoints = {
  small: 576,
  medium: 768,
  large: 992,
  xlarge: 1200,
};

const useResponsive = (): ScreenSize => {
  const [screenSize, setScreenSize] = useState<ScreenSize>('large');

  const updateScreenSize = () => {
    const width = window.innerWidth;
    if (width <= breakpoints.small) {
      setScreenSize('small');
    } else if (width <= breakpoints.medium) {
      setScreenSize('medium');
    } else if (width <= breakpoints.large) {
      setScreenSize('large');
    } else {
      setScreenSize('xlarge');
    }
  };

  useEffect(() => {
    updateScreenSize();

    window.addEventListener('resize', updateScreenSize);

    return () => {
      window.removeEventListener('resize', updateScreenSize);
    };
  }, []);

  return screenSize;
};

export default useResponsive;
