ux: make the top and bottom toolbar transient and hide in normal reading status (#394)

This commit is contained in:
Huang Xin
2025-02-18 12:07:04 +01:00
committed by GitHub
parent 77da5423a6
commit ffb00f4e0d
@@ -45,10 +45,15 @@ export const useClickEvent = (
if (screenX >= centerStartX && screenX <= centerEndX) {
// toggle visibility of the header bar and the footer bar
setHoveredBookKey(hoveredBookKey ? null : bookKey);
} else if (!viewSettings.disableClick! && screenX >= viewCenterX) {
viewRef.current?.goRight();
} else if (!viewSettings.disableClick! && screenX < viewCenterX) {
viewRef.current?.goLeft();
} else {
if (hoveredBookKey) {
setHoveredBookKey(null);
}
if (!viewSettings.disableClick! && screenX >= viewCenterX) {
viewRef.current?.goRight();
} else if (!viewSettings.disableClick! && screenX < viewCenterX) {
viewRef.current?.goLeft();
}
}
}
}
@@ -127,6 +132,13 @@ export const useTouchEvent = (
if (touch) {
touchEnd = touch;
}
if (hoveredBookKey && touchEnd) {
const deltaY = touchEnd.screenY - touchStart.screenY;
const deltaX = touchEnd.screenX - touchStart.screenX;
if (Math.abs(deltaX) > Math.abs(deltaY) && Math.abs(deltaX) > 10) {
setHoveredBookKey(null);
}
}
};
const onTouchEnd = (e: IframeTouchEvent) => {
@@ -149,6 +161,10 @@ export const useTouchEvent = (
) {
// swipe up to toggle the header bar and the footer bar
setHoveredBookKey(hoveredBookKey ? null : bookKey);
} else {
if (hoveredBookKey) {
setHoveredBookKey(null);
}
}
}