refactor(js): reduce function complexity

This commit is contained in:
Cotes Chung 2023-04-09 20:44:55 +08:00
parent c283e7782f
commit 1967de1f1d
No known key found for this signature in database
GPG key ID: 0D9E54843167A808

View file

@ -6,7 +6,6 @@ import ScrollHelper from './utils/scroll-helper';
const $searchInput = $('#search-input');
const delta = ScrollHelper.getTopbarHeight();
let didScroll;
let lastScrollTop = 0;
function hasScrolled() {
@ -60,34 +59,41 @@ function handleLandscape() {
export function switchTopbar() {
const orientation = screen.orientation;
if (orientation) {
orientation.onchange = () => {
const type = orientation.type;
if (type === 'landscape-primary' || type === 'landscape-secondary') {
handleLandscape();
}
};
} else {
// for the browsers that not support `window.screen.orientation` API
$(window).on('orientationchange', () => {
if ($(window).width() < $(window).height()) {
// before rotating, it is still in portrait mode.
handleLandscape();
}
});
}
let didScroll = false;
$(window).on('scroll', () => {
if (didScroll) {
return;
const handleOrientationChange = () => {
const type = orientation.type;
if (type === 'landscape-primary' || type === 'landscape-secondary') {
handleLandscape();
}
didScroll = true;
});
};
setInterval(() => {
const handleWindowChange = () => {
if ($(window).width() < $(window).height()) {
// before rotating, it is still in portrait mode.
handleLandscape();
}
};
const handleScroll = () => {
didScroll = true;
};
const checkScroll = () => {
if (didScroll) {
hasScrolled();
didScroll = false;
}
}, 250);
};
if (orientation) {
orientation.addEventListener('change', handleOrientationChange);
} else {
// for the browsers that not support `window.screen.orientation` API
$(window).on('orientationchange', handleWindowChange);
}
$(window).on('scroll', handleScroll);
setInterval(checkScroll, 250);
}