Skip to content

Commit 1d8e76d

Browse files
committed
fix ios scroll, i tested on xcode, took forever to download ffs
1 parent 56d69d0 commit 1d8e76d

3 files changed

Lines changed: 18 additions & 3 deletions

File tree

app/_components/FeatureComponents/Notes/Parts/SwipeNavigationWrapper.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ export const SwipeNavigationWrapper = ({
9191
}
9292

9393
return (
94-
<div ref={wrapperRef} className="relative w-full h-full overflow-x-hidden" style={{ touchAction: "pan-y" }}>
94+
<div ref={wrapperRef} className="relative w-full h-full overflow-x-hidden">
9595
<div
9696
ref={currentRef}
9797
className="relative z-10 w-full h-full"
@@ -103,7 +103,7 @@ export const SwipeNavigationWrapper = ({
103103
<div
104104
ref={prevRef}
105105
className="absolute inset-0 z-20 bg-background pointer-events-none"
106-
style={{ opacity: 0 }}
106+
style={{ opacity: 0, display: "none" }}
107107
>
108108
<iframe
109109
src={prevUrl}
@@ -118,7 +118,7 @@ export const SwipeNavigationWrapper = ({
118118
<div
119119
ref={nextRef}
120120
className="absolute inset-0 z-20 bg-background pointer-events-none"
121-
style={{ opacity: 0 }}
121+
style={{ opacity: 0, display: "none" }}
122122
>
123123
<iframe
124124
src={nextUrl}

app/_hooks/useSwipeNavigation.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ interface UseSwipeNavigationProps {
66
enabled: boolean;
77
onNavigateLeft: () => void;
88
onNavigateRight: () => void;
9+
onSwipingChange?: (swiping: boolean) => void;
910
wrapperRef: RefObject<HTMLDivElement | null>;
1011
currentRef: RefObject<HTMLDivElement | null>;
1112
prevRef: RefObject<HTMLDivElement | null>;
@@ -59,13 +60,20 @@ export const useSwipeNavigation = ({
5960
enabled,
6061
onNavigateLeft,
6162
onNavigateRight,
63+
onSwipingChange,
6264
wrapperRef,
6365
currentRef,
6466
prevRef,
6567
nextRef,
6668
hasPrev,
6769
hasNext,
6870
}: UseSwipeNavigationProps) => {
71+
const _setOverlaysVisible = (visible: boolean) => {
72+
const display = visible ? "" : "none";
73+
if (prevRef.current) prevRef.current.style.display = display;
74+
if (nextRef.current) nextRef.current.style.display = display;
75+
};
76+
6977
const touchStartRef = useRef<{ x: number; y: number; time: number } | null>(null);
7078
const directionLockedRef = useRef<"horizontal" | "vertical" | null>(null);
7179
const navigatingRef = useRef(false);
@@ -96,6 +104,7 @@ export const useSwipeNavigation = ({
96104
_setWillChange(currentRef.current, false);
97105
_setWillChange(prevRef.current, false);
98106
_setWillChange(nextRef.current, false);
107+
_setOverlaysVisible(false);
99108
};
100109

101110
if (transition && wasSwiping) {
@@ -160,6 +169,7 @@ export const useSwipeNavigation = ({
160169
}
161170
directionLockedRef.current = "horizontal";
162171
swipingRef.current = true;
172+
_setOverlaysVisible(true);
163173
_setWillChange(currentRef.current, true);
164174
_setWillChange(prevRef.current, true);
165175
_setWillChange(nextRef.current, true);

app/_styles/globals.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -665,6 +665,11 @@ pre.text-foreground span,
665665
scrollbar-width: auto !important;
666666
}
667667

668+
.jotty-scrollable-content {
669+
transform: translateZ(0);
670+
-webkit-overflow-scrolling: touch;
671+
}
672+
668673
.overflow-x-auto::-webkit-scrollbar {
669674
height: 8px;
670675
}

0 commit comments

Comments
 (0)