Files
noahspan-flying/client/src/hooks/useBreakpoints/UseBreakpoints.tsx
noahspannbauer f98a2ab127 96 switch from azure table storage to sqlite (#97)
* adding typeorm to api

* switching to sqlite

* switching to sqlite

* switching to sqlite

* migrating to sqlite

* updating terraform

* updating infrastructure
2025-11-23 10:42:31 -06:00

66 lines
1.3 KiB
TypeScript

import { useEffect, useState } from 'react';
import { ScreenSize } from '../../enums/screenSize';
export const useBreakpoints = () => {
const [screenSize, setScreenSize] = useState<ScreenSize>();
const windowWidth = window.innerWidth;
const getWindowSize = (width: number): ScreenSize => {
let size!: ScreenSize;
switch (true) {
case width < 640: {
size = ScreenSize.SM;
console.log('small')
break;
}
case width >= 640: {
size = ScreenSize.MD;
break;
}
case width >= 1024: {
size = ScreenSize.LG
break;
}
case width >= 1280: {
size = ScreenSize.XL;
break;
}
case width >= 1536: {
size = ScreenSize.XXL;
break;
}
}
return size;
}
const onWindowResize = () => {
const width: number = window.innerWidth;
const newScreenSize: ScreenSize = getWindowSize(width);
console.log(newScreenSize)
setScreenSize(newScreenSize);
}
useEffect(() => {
console.log(windowWidth)
}, [])
useEffect(() => {
onWindowResize()
window.addEventListener('resize', onWindowResize);
return () => {
window.removeEventListener('resize', onWindowResize);
}
}, [])
return {
screenSize
}
}