пофикшен баг с вероятно утечкой памяти, при большом кол-ве изменений ориентации устройства, в листенер приходило огромное кол-во одинаковых ивентов

This commit is contained in:
DmitriyB
2022-08-17 12:16:36 +05:00
parent 6deb6923cb
commit 539ef7d650
+8 -11
View File
@@ -9,22 +9,19 @@ function App() {
const [currentOrientaton, setCurrentOrientaton] = useState<number>(window.orientation);
window.visualViewport.addEventListener('resize', (e) => {
window.visualViewport.onresize = (e) => {
//@ts-ignore
setWindowHeight(e.currentTarget.height)
})
setWindowHeight(e.currentTarget.height);
}
// !!! работает на свойстве помеченном как deprecate - на айфоне иначе хз как
// + спамит большим кол-вом ивентов, из за чего если оч много раз поворачиват телефон, веб упадет
window.addEventListener('orientationchange', e => {
//@ts-ignore
let angle = e.target.orientation as number;
if(currentOrientaton !== angle) {
window.onorientationchange = e => {
//@ts-ignore
let angle = e.target.orientation;
if(currentOrientaton !== angle) {
setCurrentOrientaton(angle);
}
return
})
}
useEffect(() => {
if(!navigator.userAgent.includes('iPhone')) {