* adding typeorm to api * switching to sqlite * switching to sqlite * switching to sqlite * migrating to sqlite * updating terraform * updating infrastructure
66 lines
1.3 KiB
TypeScript
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
|
|
}
|
|
} |