@oxyhq/bloom 0.79.1 → 0.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/scroll/index.web.js +52 -18
- package/lib/commonjs/scroll/index.web.js.map +1 -1
- package/lib/commonjs/scroll/scrollable.web.js +9 -3
- package/lib/commonjs/scroll/scrollable.web.js.map +1 -1
- package/lib/commonjs/tabs/Tabs.js +263 -63
- package/lib/commonjs/tabs/Tabs.js.map +1 -1
- package/lib/commonjs/tabs/expo-router/RouterTabs.js +215 -0
- package/lib/commonjs/tabs/expo-router/RouterTabs.js.map +1 -0
- package/lib/commonjs/tabs/expo-router/index.js +13 -0
- package/lib/commonjs/tabs/expo-router/index.js.map +1 -0
- package/lib/module/scroll/index.web.js +52 -18
- package/lib/module/scroll/index.web.js.map +1 -1
- package/lib/module/scroll/scrollable.web.js +9 -3
- package/lib/module/scroll/scrollable.web.js.map +1 -1
- package/lib/module/tabs/Tabs.js +271 -65
- package/lib/module/tabs/Tabs.js.map +1 -1
- package/lib/module/tabs/expo-router/RouterTabs.js +210 -0
- package/lib/module/tabs/expo-router/RouterTabs.js.map +1 -0
- package/lib/module/tabs/expo-router/index.js +10 -0
- package/lib/module/tabs/expo-router/index.js.map +1 -0
- package/lib/typescript/commonjs/scroll/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/scroll/scrollable.web.d.ts +18 -5
- package/lib/typescript/commonjs/scroll/scrollable.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/tabs/Tabs.d.ts +41 -1
- package/lib/typescript/commonjs/tabs/Tabs.d.ts.map +1 -1
- package/lib/typescript/commonjs/tabs/expo-router/RouterTabs.d.ts +80 -0
- package/lib/typescript/commonjs/tabs/expo-router/RouterTabs.d.ts.map +1 -0
- package/lib/typescript/commonjs/tabs/expo-router/index.d.ts +9 -0
- package/lib/typescript/commonjs/tabs/expo-router/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/tabs/types.d.ts +48 -4
- package/lib/typescript/commonjs/tabs/types.d.ts.map +1 -1
- package/lib/typescript/module/scroll/index.web.d.ts.map +1 -1
- package/lib/typescript/module/scroll/scrollable.web.d.ts +18 -5
- package/lib/typescript/module/scroll/scrollable.web.d.ts.map +1 -1
- package/lib/typescript/module/tabs/Tabs.d.ts +41 -1
- package/lib/typescript/module/tabs/Tabs.d.ts.map +1 -1
- package/lib/typescript/module/tabs/expo-router/RouterTabs.d.ts +80 -0
- package/lib/typescript/module/tabs/expo-router/RouterTabs.d.ts.map +1 -0
- package/lib/typescript/module/tabs/expo-router/index.d.ts +9 -0
- package/lib/typescript/module/tabs/expo-router/index.d.ts.map +1 -0
- package/lib/typescript/module/tabs/types.d.ts +48 -4
- package/lib/typescript/module/tabs/types.d.ts.map +1 -1
- package/package.json +15 -1
- package/src/__tests__/Tabs.test.tsx +187 -0
- package/src/__tests__/optional-peer-imports.test.ts +5 -0
- package/src/__tests__/scroll-web.test.tsx +255 -2
- package/src/scroll/index.web.tsx +55 -19
- package/src/scroll/scrollable.web.ts +30 -8
- package/src/tabs/Tabs.tsx +352 -77
- package/src/tabs/expo-router/RouterTabs.tsx +268 -0
- package/src/tabs/expo-router/index.ts +8 -0
- package/src/tabs/types.ts +48 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_usePressAnimation","_tokens","_shadows","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TabsContext","createContext","value","onValueChange","variant","fullWidth","reportTriggerLayout","TabsBarComponent","children","style","testID","theme","useTheme","isUnderline","indicatorX","useRef","Animated","Value","current","indicatorWidth","triggerLayoutsRef","indicatorPlacedRef","moveIndicator","useCallback","target","animate","parallel","timing","toValue","x","duration","easing","Easing","out","cubic","useNativeDriver","width","start","setValue","tabValue","layout","useEffect","contextValue","useMemo","containerStyle","base","flexDirection","alignItems","borderBottomWidth","borderBottomColor","colors","borderLight","backgroundColor","backgroundSecondary","borderRadius","sm","padding","borderWidth","borderColor","border","indicator","jsx","View","pointerEvents","undefined","position","left","bottom","height","primary","transform","translateX","Provider","jsxs","ScrollView","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","TabComponent","label","icon","disabled","textStyle","selectedValue","useContext","isSelected","scaleAnim","onPressIn","onPressOut","usePressAnimation","handlePress","tabStyle","justifyContent","paddingHorizontal","space","lg","paddingVertical","gap","xs","card","assign","bloomShadowStyle","labelStyle","fontSize","fontWeight","color","primaryForeground","textSecondary","onLayout","nativeEvent","scale","flex","Pressable","opacity","onPress","accessibilityRole","accessibilityState","selected","Text","TabPanelComponent","Tabs","exports","memo","displayName","TabsTrigger","TabsContent"],"sourceRoot":"../../../src","sources":["tabs/Tabs.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_useTheme","_usePressAnimation","_tokens","_shadows","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SLIDE_SPRING","duration","dampingRatio","HIGHLIGHT_FADE","COMMIT_THRESHOLD","EDGE_RUBBER_BAND_DAMPING","EDGE_RUBBER_BAND_MAX","MAX_DISPLAYED_COUNT","formatCount","count","String","TabsContext","createContext","useTabsContext","component","ctx","useContext","Error","TabsBarComponent","forwardRef","TabsBar","value","onValueChange","hasSelection","variant","fullWidth","children","style","testID","dragRef","theme","useTheme","isUnderline","indicatorX","useSharedValue","indicatorWidth","indicatorOpacity","dragOffset","dragWidthDelta","triggerLayoutsRef","useRef","indicatorPlacedRef","scrollRef","viewportWidthRef","selectedValueRef","moveIndicator","useCallback","target","animate","withSpring","x","width","withTiming","revealTrigger","viewport","current","centred","scrollTo","Math","max","animated","applySelection","tabValue","reportTriggerLayout","layout","reportFocused","useEffect","undefined","useImperativeHandle","drag","translationX","ordered","entries","sort","a","b","index","findIndex","from","travel","neighbour","damped","min","abs","sign","neighbourValue","to","distance","progress","release","committed","contextValue","useMemo","selectedValue","containerStyle","base","flexDirection","alignItems","borderBottomWidth","borderBottomColor","colors","borderLight","backgroundColor","backgroundSecondary","borderRadius","sm","padding","borderWidth","borderColor","border","indicatorStyle","useAnimatedStyle","opacity","transform","translateX","indicator","jsx","View","pointerEvents","position","left","bottom","height","borderTopLeftRadius","borderTopRightRadius","primary","Provider","jsxs","ScrollView","ref","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","onLayout","nativeEvent","TabComponent","label","icon","isFocused","disabled","onPress","onPressProp","textStyle","isSelected","scaleAnim","onPressIn","onPressOut","usePressAnimation","resolvedCount","showCount","handlePress","tabStyle","justifyContent","paddingHorizontal","space","lg","paddingVertical","gap","xs","card","assign","bloomShadowStyle","labelStyle","fontSize","fontWeight","color","primaryForeground","textSecondary","Animated","scale","flex","Pressable","accessibilityRole","accessibilityLabel","accessibilityState","selected","Text","textTertiary","numberOfLines","TabPanelComponent","Tabs","exports","memo","displayName","TabsTrigger","TabsContent"],"sourceRoot":"../../../src","sources":["tabs/Tabs.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RouterTabs = RouterTabs;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNativeGestureHandler = require("react-native-gesture-handler");
|
|
9
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
10
|
+
var _expoRouter = require("expo-router");
|
|
11
|
+
var _Tabs = require("../Tabs.js");
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
/**
|
|
14
|
+
* expo-router bindings for the in-screen tab strip.
|
|
15
|
+
*
|
|
16
|
+
* This subpath (`@oxyhq/bloom/tabs/expo-router`) is the ONLY place in the tabs
|
|
17
|
+
* feature allowed to import `expo-router`, which is why it is a separate entry:
|
|
18
|
+
* the core `@oxyhq/bloom/tabs` stays usable in an app with a different router,
|
|
19
|
+
* or none, and the optional peer is never pulled into a bundle that does not
|
|
20
|
+
* ask for it. Same split as `tab-bar` / `tab-bar/expo-router` and
|
|
21
|
+
* `scroll` / `scroll/expo-router`.
|
|
22
|
+
*
|
|
23
|
+
* Everything routing-shaped lives here on purpose: which tab the route means,
|
|
24
|
+
* what a committed swipe navigates to, and which links to warm. The strip
|
|
25
|
+
* itself stays presentational and knows only about measured geometry.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Resolve which item the current route belongs to.
|
|
30
|
+
*
|
|
31
|
+
* LONGEST matching prefix, on a segment boundary — not an exact match. All
|
|
32
|
+
* three properties matter:
|
|
33
|
+
*
|
|
34
|
+
* - A prefix is needed because a tab may own a subtree (`/feeds/1/topics` and
|
|
35
|
+
* anything under it), and an exact match would drop the underline the moment
|
|
36
|
+
* the user goes one level deeper.
|
|
37
|
+
* - LONGEST is needed because the default tab's href is a prefix of every
|
|
38
|
+
* sibling's (`/@ana` vs `/@ana/replies`), so a first-match rule would light
|
|
39
|
+
* up the default tab on every tab.
|
|
40
|
+
* - The segment boundary is what stops `/feeds/12` from matching `/feeds/1`.
|
|
41
|
+
*
|
|
42
|
+
* Returns `undefined` when nothing matches, which is a real state — a strip
|
|
43
|
+
* rendered by a LAYOUT keeps rendering while a child route outside the tab set
|
|
44
|
+
* is showing — and leaves the underline hidden rather than parked on a lie.
|
|
45
|
+
*/
|
|
46
|
+
function matchActiveValue(items, pathname) {
|
|
47
|
+
let best;
|
|
48
|
+
for (const item of items) {
|
|
49
|
+
// `Href` is a string or an object; only a string form can be compared to a
|
|
50
|
+
// pathname, and an object form describes params we cannot resolve here.
|
|
51
|
+
if (typeof item.href !== 'string') continue;
|
|
52
|
+
// Compare paths only: a query string describes what the tab shows, not
|
|
53
|
+
// which tab it is, and a trailing slash is the same route either way.
|
|
54
|
+
const [path = ''] = item.href.split('?');
|
|
55
|
+
const href = path.replace(/\/$/, '');
|
|
56
|
+
const isMatch = pathname === href || pathname.startsWith(`${href}/`);
|
|
57
|
+
if (!isMatch) continue;
|
|
58
|
+
if (!best || href.length > best.length) {
|
|
59
|
+
best = {
|
|
60
|
+
value: item.value,
|
|
61
|
+
length: href.length
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return best?.value;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* A tab strip whose selection IS the route.
|
|
70
|
+
*
|
|
71
|
+
* Render it in the LAYOUT that owns the tabs, above the `<Slot/>` that renders
|
|
72
|
+
* them — not inside the tab screens themselves. That placement is the whole
|
|
73
|
+
* point, and it is load-bearing twice over: a strip inside the screens is
|
|
74
|
+
* unmounted and rebuilt by every navigation, so its underline has nothing to
|
|
75
|
+
* animate from and the chrome blanks while the incoming route's chunk loads;
|
|
76
|
+
* and a GESTURE inside the screens would be destroyed by the very navigation it
|
|
77
|
+
* commits, mid-release.
|
|
78
|
+
*
|
|
79
|
+
* ```tsx
|
|
80
|
+
* // app/(app)/[username]/_layout.tsx
|
|
81
|
+
* <RouterTabs
|
|
82
|
+
* items={[
|
|
83
|
+
* { value: 'posts', label: 'Posts', href: `/${username}` },
|
|
84
|
+
* { value: 'replies', label: 'Replies', href: `/${username}/replies` },
|
|
85
|
+
* ]}
|
|
86
|
+
* />
|
|
87
|
+
* <Slot />
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
function RouterTabs({
|
|
91
|
+
items,
|
|
92
|
+
onReselect,
|
|
93
|
+
swipeEnabled = true,
|
|
94
|
+
...tabsProps
|
|
95
|
+
}) {
|
|
96
|
+
const pathname = (0, _expoRouter.usePathname)();
|
|
97
|
+
const activeValue = (0, _react.useMemo)(() => matchActiveValue(items, pathname), [items, pathname]);
|
|
98
|
+
const dragRef = (0, _react.useRef)(null);
|
|
99
|
+
// What releasing right now would commit. A ref rather than state: it is
|
|
100
|
+
// written on every frame of the drag and read once, and re-rendering the
|
|
101
|
+
// strip mid-gesture would fight the animation the gesture is driving.
|
|
102
|
+
const pendingRef = (0, _react.useRef)(null);
|
|
103
|
+
const navigateTo = (0, _react.useCallback)(value => {
|
|
104
|
+
const target = items.find(item => item.value === value);
|
|
105
|
+
if (!target) return;
|
|
106
|
+
// PUSH, not replace: a history entry per tab is what makes Back return to
|
|
107
|
+
// the tab the reader came from instead of leaving the screen entirely.
|
|
108
|
+
_expoRouter.router.push(target.href);
|
|
109
|
+
}, [items]);
|
|
110
|
+
const handlePress = (0, _react.useCallback)(item => {
|
|
111
|
+
if (item.value === activeValue) {
|
|
112
|
+
onReselect?.(item.value);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
navigateTo(item.value);
|
|
116
|
+
}, [activeValue, onReselect, navigateTo]);
|
|
117
|
+
const onDrag = (0, _react.useCallback)(translationX => {
|
|
118
|
+
pendingRef.current = dragRef.current?.drag(translationX) ?? null;
|
|
119
|
+
}, []);
|
|
120
|
+
|
|
121
|
+
// `onEnd` does not fire for every terminated gesture, and `onFinalize` fires
|
|
122
|
+
// for all of them — including after `onEnd`. Guarding on the ref being
|
|
123
|
+
// non-null is what makes the second call a no-op instead of a double commit.
|
|
124
|
+
const releasedRef = (0, _react.useRef)(true);
|
|
125
|
+
const onRelease = (0, _react.useCallback)(() => {
|
|
126
|
+
if (releasedRef.current) return;
|
|
127
|
+
releasedRef.current = true;
|
|
128
|
+
const committed = pendingRef.current;
|
|
129
|
+
pendingRef.current = null;
|
|
130
|
+
// The underline commits first and instantly: it lives in the layout, it
|
|
131
|
+
// survives the swap, and it is the honest signal the gesture was accepted.
|
|
132
|
+
// The content area arrives when its chunk does.
|
|
133
|
+
dragRef.current?.release(committed);
|
|
134
|
+
if (committed !== null) navigateTo(committed);
|
|
135
|
+
}, [navigateTo]);
|
|
136
|
+
const onBegin = (0, _react.useCallback)(() => {
|
|
137
|
+
releasedRef.current = false;
|
|
138
|
+
}, []);
|
|
139
|
+
const panGesture = (0, _react.useMemo)(() => _reactNativeGestureHandler.Gesture.Pan()
|
|
140
|
+
// Horizontal intent only. This is a hint to the gesture system and is
|
|
141
|
+
// NOT what protects vertical scrolling on web — see `touchAction` below.
|
|
142
|
+
.activeOffsetX([-12, 12]).failOffsetY([-12, 12]).onBegin(() => {
|
|
143
|
+
(0, _reactNativeReanimated.runOnJS)(onBegin)();
|
|
144
|
+
}).onUpdate(event => {
|
|
145
|
+
(0, _reactNativeReanimated.runOnJS)(onDrag)(event.translationX);
|
|
146
|
+
}).onFinalize(() => {
|
|
147
|
+
(0, _reactNativeReanimated.runOnJS)(onRelease)();
|
|
148
|
+
}), [onBegin, onDrag, onRelease]);
|
|
149
|
+
|
|
150
|
+
// Warm every OTHER tab's async chunk. That fetch is the ~300ms the content
|
|
151
|
+
// area would otherwise spend empty after a commit, and a swipe offers no
|
|
152
|
+
// hover to warm on, so it is done up front rather than on interaction.
|
|
153
|
+
//
|
|
154
|
+
// `router.prefetch` — the public imperative API (declared in expo-router's
|
|
155
|
+
// `global-state/router.d.ts`) — rather than wrapping each trigger in
|
|
156
|
+
// `<Link prefetch asChild>`. Both reasons are about the WRAPPER, not about
|
|
157
|
+
// prefetching: `asChild` is Radix's `Slot`, which COMPOSES event handlers, so
|
|
158
|
+
// the trigger's own `onPress` and the link's navigation would both run — and
|
|
159
|
+
// the link's push knows nothing about `onReselect`, so re-tapping the active
|
|
160
|
+
// tab would push a duplicate entry and make Back appear to do nothing. It
|
|
161
|
+
// also injects an `href` a `Pressable` ignores. The prefetching itself is
|
|
162
|
+
// identical: `<Link prefetch>` renders `<Prefetch href/>` beside its element
|
|
163
|
+
// and does nothing else.
|
|
164
|
+
//
|
|
165
|
+
// Known trade: a real `<Link>` would render a web anchor, which is what gives
|
|
166
|
+
// middle-click and open-in-new-tab. A tab strip arguably wants that; getting
|
|
167
|
+
// both needs the trigger to render an anchor itself, which is a change to the
|
|
168
|
+
// core rather than to this file.
|
|
169
|
+
(0, _react.useEffect)(() => {
|
|
170
|
+
for (const item of items) {
|
|
171
|
+
if (item.value === activeValue || item.disabled) continue;
|
|
172
|
+
_expoRouter.router.prefetch(item.href);
|
|
173
|
+
}
|
|
174
|
+
}, [items, activeValue]);
|
|
175
|
+
const strip =
|
|
176
|
+
/*#__PURE__*/
|
|
177
|
+
// `hasSelection` is what stops the underline asserting a tab while a
|
|
178
|
+
// NON-TAB sibling route is showing — the layout that renders this strip
|
|
179
|
+
// renders those too (a profile's `/followers` beside its tab routes).
|
|
180
|
+
(0, _jsxRuntime.jsx)(_Tabs.Tabs, {
|
|
181
|
+
...tabsProps,
|
|
182
|
+
ref: dragRef,
|
|
183
|
+
hasSelection: activeValue !== undefined,
|
|
184
|
+
children: items.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tabs.TabsTrigger, {
|
|
185
|
+
value: item.value,
|
|
186
|
+
label: item.label,
|
|
187
|
+
icon: item.icon,
|
|
188
|
+
count: item.count,
|
|
189
|
+
disabled: item.disabled
|
|
190
|
+
// Focus, never a press, is what drives the underline — so a deep
|
|
191
|
+
// link, a browser Back and a back gesture animate exactly like a tap.
|
|
192
|
+
,
|
|
193
|
+
isFocused: item.value === activeValue,
|
|
194
|
+
onPress: () => handlePress(item)
|
|
195
|
+
}, item.value))
|
|
196
|
+
});
|
|
197
|
+
if (!swipeEnabled) return strip;
|
|
198
|
+
return (
|
|
199
|
+
/*#__PURE__*/
|
|
200
|
+
// `touchAction="pan-y"` is MANDATORY and is the landmine of this file.
|
|
201
|
+
// RNGH sets the detector's view to `touch-action: none` on web
|
|
202
|
+
// (`GestureHandlerWebDelegate.js`), which disables browser-native VERTICAL
|
|
203
|
+
// scrolling on that element. `failOffsetY` above does not protect against
|
|
204
|
+
// it: that is a JS decision taken after `touch-action` has already told the
|
|
205
|
+
// browser not to scroll. Removing this prop is silent on native and breaks
|
|
206
|
+
// scrolling on mobile web.
|
|
207
|
+
(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector, {
|
|
208
|
+
gesture: panGesture,
|
|
209
|
+
touchAction: "pan-y",
|
|
210
|
+
children: strip
|
|
211
|
+
})
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
RouterTabs.displayName = 'RouterTabs';
|
|
215
|
+
//# sourceMappingURL=RouterTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeGestureHandler","_reactNativeReanimated","_expoRouter","_Tabs","_jsxRuntime","matchActiveValue","items","pathname","best","item","href","path","split","replace","isMatch","startsWith","length","value","RouterTabs","onReselect","swipeEnabled","tabsProps","usePathname","activeValue","useMemo","dragRef","useRef","pendingRef","navigateTo","useCallback","target","find","router","push","handlePress","onDrag","translationX","current","drag","releasedRef","onRelease","committed","release","onBegin","panGesture","Gesture","Pan","activeOffsetX","failOffsetY","runOnJS","onUpdate","event","onFinalize","useEffect","disabled","prefetch","strip","jsx","Tabs","ref","hasSelection","undefined","children","map","TabsTrigger","label","icon","count","isFocused","onPress","GestureDetector","gesture","touchAction","displayName"],"sourceRoot":"../../../../src","sources":["tabs/expo-router/RouterTabs.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "RouterTabs", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _RouterTabs.RouterTabs;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _RouterTabs = require("./RouterTabs.js");
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_RouterTabs","require"],"sourceRoot":"../../../../src","sources":["tabs/expo-router/index.ts"],"mappings":";;;;;;;;;;;AAMA,IAAAA,WAAA,GAAAC,OAAA","ignoreList":[]}
|
|
@@ -155,22 +155,51 @@ export function useScrollRestoration(target, options) {
|
|
|
155
155
|
// than what the scroll listener already saved live.
|
|
156
156
|
let lastObservedOffset = null;
|
|
157
157
|
|
|
158
|
-
// The
|
|
159
|
-
// event (jsdom does not, so the
|
|
160
|
-
//
|
|
161
|
-
//
|
|
162
|
-
//
|
|
163
|
-
//
|
|
164
|
-
//
|
|
158
|
+
// The offset WE last wrote, which a real browser dispatches back as a
|
|
159
|
+
// `scroll` event (jsdom does not, so the tests for this emit it
|
|
160
|
+
// explicitly). Both writers arm it: the reset, and every frame of the
|
|
161
|
+
// restore loop. Persisting either records an offset the user never
|
|
162
|
+
// chose — the reset's 0 under a key another LIVE screen may share (the
|
|
163
|
+
// two-live-entries trade content keying makes, see `deriveScrollKey`),
|
|
164
|
+
// and the loop's intermediate value as a PARTIAL that outlives an
|
|
165
|
+
// interrupted restore.
|
|
166
|
+
//
|
|
167
|
+
// A `restoring` FLAG covering the loop's duration is the obvious
|
|
168
|
+
// alternative and is wrong. It could only be cleared by a takeover
|
|
169
|
+
// event, so a session whose scroll came from a source that fires none —
|
|
170
|
+
// `scrollIntoView` from another component, a focus-driven scroll — would
|
|
171
|
+
// suppress saves indefinitely and never record the user's position at
|
|
172
|
+
// all: an unbounded corruption traded for a bounded one. Arming a VALUE
|
|
173
|
+
// is bounded to one event per write and covers every way the loop can
|
|
174
|
+
// end (stuck, capped, aborted), because each frame re-arms.
|
|
165
175
|
let echoOffset = null;
|
|
176
|
+
|
|
177
|
+
// The largest offset reachable when we last PERSISTED one. A browser
|
|
178
|
+
// clamp is recognised against this rather than against the previous
|
|
179
|
+
// OBSERVATION, and that distinction is the whole mechanism: Chrome
|
|
180
|
+
// dispatches TWO `scroll` events for one clamp, so an
|
|
181
|
+
// observation-relative test sees the shrink on the first and nothing on
|
|
182
|
+
// the second, which then saves the clamped value anyway. Measured.
|
|
183
|
+
let maxOffsetAtLastSave = scroller.getMaxOffset();
|
|
166
184
|
const save = () => {
|
|
167
185
|
const offset = scroller.getOffset();
|
|
186
|
+
const maxOffset = scroller.getMaxOffset();
|
|
168
187
|
// Ignore a spurious 0 produced by the navigator collapsing a hidden
|
|
169
188
|
// background screen: while collapsed the container cannot scroll, so
|
|
170
189
|
// its `scrollTop` is forced to 0. Persisting it would clobber the good
|
|
171
190
|
// offset recorded by earlier live saves (problem A). A genuine
|
|
172
191
|
// scroll-to-top keeps the container scrollable and is saved normally.
|
|
173
|
-
if (offset === 0 &&
|
|
192
|
+
if (offset === 0 && maxOffset <= 0) return;
|
|
193
|
+
// A partial clamp: the reachable range SHRANK and the offset is sitting
|
|
194
|
+
// exactly at the new bottom. That is what the browser does to a tab
|
|
195
|
+
// whose document has been taken over by a shorter sibling — the two
|
|
196
|
+
// together are a signature a genuine scroll does not have, because
|
|
197
|
+
// reaching the bottom on your own does not shrink the page in the same
|
|
198
|
+
// breath. Suppressing keeps the pre-clamp offset, which on return
|
|
199
|
+
// simply clamps to the same place if the content really did shrink.
|
|
200
|
+
if (maxOffset < maxOffsetAtLastSave && Math.abs(offset - maxOffset) <= RESTORE_STICK_TOLERANCE_PX) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
174
203
|
if (offset === echoOffset) {
|
|
175
204
|
// Our own write coming back. Consume the arming so a real scroll to
|
|
176
205
|
// the same offset later is saved normally.
|
|
@@ -179,6 +208,7 @@ export function useScrollRestoration(target, options) {
|
|
|
179
208
|
}
|
|
180
209
|
echoOffset = null;
|
|
181
210
|
lastObservedOffset = offset;
|
|
211
|
+
maxOffsetAtLastSave = maxOffset;
|
|
182
212
|
store.save(scrollKey, offset);
|
|
183
213
|
};
|
|
184
214
|
|
|
@@ -218,22 +248,26 @@ export function useScrollRestoration(target, options) {
|
|
|
218
248
|
// single write while it is still collapsed would be clamped to 0 and
|
|
219
249
|
// never re-applied (problem B).
|
|
220
250
|
//
|
|
221
|
-
//
|
|
222
|
-
// `
|
|
223
|
-
//
|
|
224
|
-
//
|
|
225
|
-
//
|
|
226
|
-
// leaves the CLAMPED offset stored — which is the right thing to
|
|
227
|
-
// remember when the content genuinely shrank, since that is as far as
|
|
228
|
-
// the user can now scroll.
|
|
251
|
+
// Every write the loop makes is suppressed from the save path (see
|
|
252
|
+
// `echoOffset` below), so an interrupted restore leaves the ORIGINAL
|
|
253
|
+
// target stored rather than a partial. Nothing is lost on the success
|
|
254
|
+
// path: `targetOffset` came out of the store, so persisting it again
|
|
255
|
+
// would write back the same number.
|
|
229
256
|
let framesLeft = RESTORE_FRAME_CAP;
|
|
230
257
|
const applyOffset = () => {
|
|
231
258
|
rafId = null;
|
|
232
259
|
scroller.setOffset(targetOffset);
|
|
233
260
|
framesLeft -= 1;
|
|
261
|
+
// `getOffset` re-reads the value the browser actually took, which is
|
|
262
|
+
// clamped to the content height it has reached so far. Arm it as the
|
|
263
|
+
// echo to swallow: this write is about to come back as a `scroll`
|
|
264
|
+
// event, and persisting a PARTIAL offset we wrote ourselves is how a
|
|
265
|
+
// restore that is aborted or capped corrupts the stored position.
|
|
266
|
+
const landed = scroller.getOffset();
|
|
267
|
+
echoOffset = landed;
|
|
234
268
|
// Stop once the write took effect (content grew tall enough) or we
|
|
235
|
-
// exhaust the frame budget.
|
|
236
|
-
const reached = Math.abs(
|
|
269
|
+
// exhaust the frame budget.
|
|
270
|
+
const reached = Math.abs(landed - targetOffset) <= RESTORE_STICK_TOLERANCE_PX;
|
|
237
271
|
if (!reached && framesLeft > 0) {
|
|
238
272
|
rafId = requestAnimationFrame(applyOffset);
|
|
239
273
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useRef","useScrollRestorationContext","createScroller","deriveScrollKey","ScrollRestorationProvider","RESTORE_FRAME_CAP","RESTORE_STICK_TOLERANCE_PX","WEB_BINDING","onScroll","undefined","USER_TAKEOVER_EVENTS","useScrollRestoration","target","options","store","adapter","contentId","useScreenContentId","enabled","scrollKey","key","resetKeyRef","useScreenFocusEffect","scroller","element","window","resolveScrollEventTarget","lastObservedOffset","echoOffset","save","offset","getOffset","
|
|
1
|
+
{"version":3,"names":["useCallback","useRef","useScrollRestorationContext","createScroller","deriveScrollKey","ScrollRestorationProvider","RESTORE_FRAME_CAP","RESTORE_STICK_TOLERANCE_PX","WEB_BINDING","onScroll","undefined","USER_TAKEOVER_EVENTS","useScrollRestoration","target","options","store","adapter","contentId","useScreenContentId","enabled","scrollKey","key","resetKeyRef","useScreenFocusEffect","scroller","element","window","resolveScrollEventTarget","lastObservedOffset","echoOffset","maxOffsetAtLastSave","getMaxOffset","save","offset","getOffset","maxOffset","Math","abs","targetOffset","read","isReset","has","alreadyReset","current","rafId","stopRestore","cancelAnimationFrame","setOffset","requestAnimationFrame","framesLeft","applyOffset","landed","reached","type","addEventListener","passive","removeEventListener","EventTarget","handle","getScrollableNode","node"],"sourceRoot":"../../../src","sources":["scroll/index.web.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,MAAM,QAAQ,OAAO;AAE3C,SAASC,2BAA2B,QAAQ,cAAW;AACvD,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,eAAe,QAAQ,YAAS;AAOzC,SAASC,yBAAyB,QAAQ,cAAW;AAYrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG,EAAE;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,0BAA0B,GAAG,CAAC;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAqC,GAAG;EAAEC,QAAQ,EAAEA,CAAA,KAAMC;AAAU,CAAC;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAClCC,MAA+B,EAC/BC,OAAqC,EACX;EAC1B,MAAM;IAAEC,KAAK;IAAEC;EAAQ,CAAC,GAAGd,2BAA2B,CAAC,CAAC;EACxD,MAAMe,SAAS,GAAGD,OAAO,CAACE,kBAAkB,CAAC,CAAC;EAC9C,MAAMC,OAAO,GAAGL,OAAO,EAAEK,OAAO,IAAI,IAAI;EACxC,MAAMC,SAAS,GAAGhB,eAAe,CAACa,SAAS,EAAEH,OAAO,EAAEO,GAAG,CAAC;;EAE1D;EACA;EACA;EACA;EACA;EACA,MAAM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","ignoreList":[]}
|
|
@@ -44,7 +44,12 @@ export function createScroller(target) {
|
|
|
44
44
|
setOffset: offset => {
|
|
45
45
|
if (typeof window !== 'undefined') window.scrollTo(0, offset);
|
|
46
46
|
},
|
|
47
|
-
|
|
47
|
+
getMaxOffset: () => {
|
|
48
|
+
if (typeof window === 'undefined' || typeof document === 'undefined') {
|
|
49
|
+
return 0;
|
|
50
|
+
}
|
|
51
|
+
return Math.max(0, document.documentElement.scrollHeight - window.innerHeight);
|
|
52
|
+
}
|
|
48
53
|
};
|
|
49
54
|
}
|
|
50
55
|
return {
|
|
@@ -56,9 +61,10 @@ export function createScroller(target) {
|
|
|
56
61
|
const element = resolveElement(target);
|
|
57
62
|
if (element) element.scrollTop = offset;
|
|
58
63
|
},
|
|
59
|
-
|
|
64
|
+
getMaxOffset: () => {
|
|
60
65
|
const element = resolveElement(target);
|
|
61
|
-
|
|
66
|
+
if (!element) return 0;
|
|
67
|
+
return Math.max(0, element.scrollHeight - element.clientHeight);
|
|
62
68
|
}
|
|
63
69
|
};
|
|
64
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isElement","value","HTMLElement","hasGetScrollableNode","getScrollableNode","resolveElement","target","current","node","createScroller","getOffset","window","scrollY","setOffset","offset","scrollTo","
|
|
1
|
+
{"version":3,"names":["isElement","value","HTMLElement","hasGetScrollableNode","getScrollableNode","resolveElement","target","current","node","createScroller","getOffset","window","scrollY","setOffset","offset","scrollTo","getMaxOffset","document","Math","max","documentElement","scrollHeight","innerHeight","element","scrollTop","clientHeight"],"sourceRoot":"../../../src","sources":["scroll/scrollable.web.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;;AA+BA,SAASA,SAASA,CAACC,KAAc,EAAwB;EACvD,OAAO,OAAOC,WAAW,KAAK,WAAW,IAAID,KAAK,YAAYC,WAAW;AAC3E;AAEA,SAASC,oBAAoBA,CAC3BF,KAAc,EACkD;EAChE,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACd,OAAQA,KAAK,CAAsBG,iBAAiB,KAAK,UAAU;AAEvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,cAAcA,CAACC,MAA+B,EAAsB;EAC3E,IAAIA,MAAM,KAAK,QAAQ,EAAE,OAAO,IAAI;EAEpC,MAAMC,OAAO,GAAID,MAAM,CAA0BC,OAAO;EACxD,IAAIA,OAAO,IAAI,IAAI,EAAE,OAAO,IAAI;EAEhC,IAAIP,SAAS,CAACO,OAAO,CAAC,EAAE,OAAOA,OAAO;EAEtC,IAAIJ,oBAAoB,CAACI,OAAO,CAAC,EAAE;IACjC,MAAMC,IAAI,GAAGD,OAAO,CAACH,iBAAiB,CAAC,CAAC;IACxC,IAAIJ,SAAS,CAACQ,IAAI,CAAC,EAAE,OAAOA,IAAI;EAClC;EAEA,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAACH,MAA+B,EAAoB;EAChF,IAAIA,MAAM,KAAK,QAAQ,EAAE;IACvB,OAAO;MACLI,SAAS,EAAEA,CAAA,KAAO,OAAOC,MAAM,KAAK,WAAW,GAAG,CAAC,GAAGA,MAAM,CAACC,OAAQ;MACrEC,SAAS,EAAGC,MAAM,IAAK;QACrB,IAAI,OAAOH,MAAM,KAAK,WAAW,EAAEA,MAAM,CAACI,QAAQ,CAAC,CAAC,EAAED,MAAM,CAAC;MAC/D,CAAC;MACDE,YAAY,EAAEA,CAAA,KAAM;QAClB,IAAI,OAAOL,MAAM,KAAK,WAAW,IAAI,OAAOM,QAAQ,KAAK,WAAW,EAAE;UACpE,OAAO,CAAC;QACV;QACA,OAAOC,IAAI,CAACC,GAAG,CACb,CAAC,EACDF,QAAQ,CAACG,eAAe,CAACC,YAAY,GAAGV,MAAM,CAACW,WACjD,CAAC;MACH;IACF,CAAC;EACH;EAEA,OAAO;IACLZ,SAAS,EAAEA,CAAA,KAAM;MACf,MAAMa,OAAO,GAAGlB,cAAc,CAACC,MAAM,CAAC;MACtC,OAAOiB,OAAO,GAAGA,OAAO,CAACC,SAAS,GAAG,CAAC;IACxC,CAAC;IACDX,SAAS,EAAGC,MAAM,IAAK;MACrB,MAAMS,OAAO,GAAGlB,cAAc,CAACC,MAAM,CAAC;MACtC,IAAIiB,OAAO,EAAEA,OAAO,CAACC,SAAS,GAAGV,MAAM;IACzC,CAAC;IACDE,YAAY,EAAEA,CAAA,KAAM;MAClB,MAAMO,OAAO,GAAGlB,cAAc,CAACC,MAAM,CAAC;MACtC,IAAI,CAACiB,OAAO,EAAE,OAAO,CAAC;MACtB,OAAOL,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEI,OAAO,CAACF,YAAY,GAAGE,OAAO,CAACE,YAAY,CAAC;IACjE;EACF,CAAC;AACH","ignoreList":[]}
|