@hedia/recommendation-screen 4.3.12-alpha.870 → 4.3.12-alpha.871
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/components/WheelPicker/WheelPicker.js +14 -2
- package/lib/commonjs/components/WheelPicker/WheelPicker.js.map +1 -1
- package/lib/commonjs/hooks/index.js +35 -16
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/typescript/src/components/WheelPicker/WheelPicker.d.ts.map +1 -1
- package/lib/typescript/src/hooks/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -26,8 +26,6 @@ function WheelPicker({
|
|
|
26
26
|
const {
|
|
27
27
|
width
|
|
28
28
|
} = (0, _reactNative.useWindowDimensions)();
|
|
29
|
-
// Scale the row (and its text) with the OS font size, capped at s3, so the
|
|
30
|
-
// picker grows like a native one without the text overflowing the row.
|
|
31
29
|
const scale = (0, _hooks.useFontScale)();
|
|
32
30
|
const itemHeight = Math.round(35 * scale);
|
|
33
31
|
const gradientHeight = itemHeight * visibleRest;
|
|
@@ -44,6 +42,20 @@ function WheelPicker({
|
|
|
44
42
|
return array;
|
|
45
43
|
}, [options, visibleRest]);
|
|
46
44
|
const offsets = (0, _react.useMemo)(() => [...Array(paddedOptions.length)].map((_, i) => i * itemHeight), [paddedOptions, itemHeight]);
|
|
45
|
+
|
|
46
|
+
// When itemHeight changes at runtime (font scale change while the picker is
|
|
47
|
+
// open), the existing scroll offset is stale (old pixel units), so the centered
|
|
48
|
+
// option would desync from the computed index. Re-align to the selected row.
|
|
49
|
+
const prevItemHeightRef = (0, _react.useRef)(itemHeight);
|
|
50
|
+
(0, _react.useEffect)(() => {
|
|
51
|
+
if (prevItemHeightRef.current === itemHeight) return;
|
|
52
|
+
prevItemHeightRef.current = itemHeight;
|
|
53
|
+
lastIndexRef.current = selectedIndex;
|
|
54
|
+
flatListRef.current?.scrollToOffset({
|
|
55
|
+
offset: selectedIndex * itemHeight,
|
|
56
|
+
animated: false
|
|
57
|
+
});
|
|
58
|
+
}, [itemHeight, selectedIndex]);
|
|
47
59
|
const handleMomentumScrollEnd = (0, _react.useCallback)(event => {
|
|
48
60
|
const offsetY = Math.min(itemHeight * (options.length - 1), Math.max(event.nativeEvent.contentOffset.y, 0));
|
|
49
61
|
let index = Math.floor(Math.floor(offsetY) / itemHeight);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeLinearGradient","_interopRequireDefault","_hooks","_haptic","_WheelPickerItem","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","WheelPicker","type","initialScrollIndex","selectedIndex","options","onChange","visibleRest","decelerationRate","colors","width","useWindowDimensions","scale","useFontScale","itemHeight","Math","round","gradientHeight","flatListRef","useRef","lastIndexRef","scrollY","useMemo","Animated","Value","containerHeight","paddedOptions","array","unshift","push","offsets","Array","length","map","_","handleMomentumScrollEnd","useCallback","event","offsetY","min","max","nativeEvent","contentOffset","y","index","floor","last","emitHapticEvent","Platform","OS","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeLinearGradient","_interopRequireDefault","_hooks","_haptic","_WheelPickerItem","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","WheelPicker","type","initialScrollIndex","selectedIndex","options","onChange","visibleRest","decelerationRate","colors","width","useWindowDimensions","scale","useFontScale","itemHeight","Math","round","gradientHeight","flatListRef","useRef","lastIndexRef","scrollY","useMemo","Animated","Value","containerHeight","paddedOptions","array","unshift","push","offsets","Array","length","map","_","prevItemHeightRef","useEffect","current","scrollToOffset","offset","animated","handleMomentumScrollEnd","useCallback","event","offsetY","min","max","nativeEvent","contentOffset","y","index","floor","last","emitHapticEvent","Platform","OS","triggerHaptic","scrollHandler","indexInRange","scrollToIndex","debouncedScrollHandler","useDebouncedCallback","handleItemPressed","itemIndex","jsxs","View","style","styles","containerPicker","height","backgroundColor","iosKeyboardPicker","testID","children","jsx","selectedIndicator","iosSelectorKeyboard","transform","translateY","FlatList","ref","scrollView","showsVerticalScrollIndicator","onScroll","useNativeDriver","listener","onMomentumScrollEnd","snapToInterval","snapToOffsets","getItemLayout","data","keyExtractor","toString","renderItem","item","option","fontScale","onItemPress","mask","top","bottom","_default","exports","React","memo","StyleSheet","create","borderTopLeftRadius","borderTopRightRadius","overflow","position","borderRadius","alignSelf","flex","left","right","pointerEvents"],"sourceRoot":"../../../../src","sources":["components/WheelPicker/WheelPicker.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,6 +13,40 @@ const getCappedFontScale = () => {
|
|
|
13
13
|
return Math.min(raw > 0 ? raw : 1, _fonts.TEXT_SCALING.s3);
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Shared font-scale store. AppState/Dimensions listeners are attached once
|
|
18
|
+
* (ref-counted across all consumers) rather than once per Text, so screens with
|
|
19
|
+
* many text nodes don't create duplicate subscriptions or redundant re-renders.
|
|
20
|
+
*/
|
|
21
|
+
let currentFontScale = getCappedFontScale();
|
|
22
|
+
const listeners = new Set();
|
|
23
|
+
let subscriptions = [];
|
|
24
|
+
const updateFontScale = () => {
|
|
25
|
+
const next = getCappedFontScale();
|
|
26
|
+
if (next !== currentFontScale) {
|
|
27
|
+
currentFontScale = next;
|
|
28
|
+
listeners.forEach(listener => listener());
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const subscribe = onStoreChange => {
|
|
32
|
+
if (listeners.size === 0) {
|
|
33
|
+
subscriptions = [_reactNative.AppState.addEventListener("change", nextAppState => {
|
|
34
|
+
if (nextAppState === "active") updateFontScale();
|
|
35
|
+
}), _reactNative.Dimensions.addEventListener("change", updateFontScale)];
|
|
36
|
+
}
|
|
37
|
+
listeners.add(onStoreChange);
|
|
38
|
+
// Re-read in case the scale changed while nothing was subscribed (e.g. resume).
|
|
39
|
+
updateFontScale();
|
|
40
|
+
return () => {
|
|
41
|
+
listeners.delete(onStoreChange);
|
|
42
|
+
if (listeners.size === 0) {
|
|
43
|
+
subscriptions.forEach(subscription => subscription.remove());
|
|
44
|
+
subscriptions = [];
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
const getSnapshot = () => currentFontScale;
|
|
49
|
+
|
|
16
50
|
/**
|
|
17
51
|
* Reactive, resume-aware font scale (capped at s3).
|
|
18
52
|
*
|
|
@@ -25,22 +59,7 @@ const getCappedFontScale = () => {
|
|
|
25
59
|
* changes are reflected without a relaunch.
|
|
26
60
|
*/
|
|
27
61
|
function useFontScale() {
|
|
28
|
-
|
|
29
|
-
(0, _react.useEffect)(() => {
|
|
30
|
-
const refresh = () => setFontScale(getCappedFontScale());
|
|
31
|
-
const appStateSubscription = _reactNative.AppState.addEventListener("change", nextAppState => {
|
|
32
|
-
if (nextAppState === "active") refresh();
|
|
33
|
-
});
|
|
34
|
-
const dimensionsSubscription = _reactNative.Dimensions.addEventListener("change", refresh);
|
|
35
|
-
|
|
36
|
-
// Sync once on mount in case the scale changed between the initial read and here.
|
|
37
|
-
refresh();
|
|
38
|
-
return () => {
|
|
39
|
-
appStateSubscription.remove();
|
|
40
|
-
dimensionsSubscription.remove();
|
|
41
|
-
};
|
|
42
|
-
}, []);
|
|
43
|
-
return fontScale;
|
|
62
|
+
return (0, _react.useSyncExternalStore)(subscribe, getSnapshot);
|
|
44
63
|
}
|
|
45
64
|
function useDebouncedCallback(callbackFunction, delay) {
|
|
46
65
|
const timeout = (0, _react.useRef)(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_fonts","getCappedFontScale","raw","PixelRatio","getFontScale","Math","min","TEXT_SCALING","s3","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_fonts","getCappedFontScale","raw","PixelRatio","getFontScale","Math","min","TEXT_SCALING","s3","currentFontScale","listeners","Set","subscriptions","updateFontScale","next","forEach","listener","subscribe","onStoreChange","size","AppState","addEventListener","nextAppState","Dimensions","add","delete","subscription","remove","getSnapshot","useFontScale","useSyncExternalStore","useDebouncedCallback","callbackFunction","delay","timeout","useRef","callbackRef","useEffect","current","useCallback","args","clearTimeout","setTimeout"],"sourceRoot":"../../../src","sources":["hooks/index.tsx"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AAEA,MAAMG,kBAAkB,GAAGA,CAAA,KAAc;EACxC,MAAMC,GAAG,GAAGC,uBAAU,CAACC,YAAY,CAAC,CAAC;EACrC,OAAOC,IAAI,CAACC,GAAG,CAACJ,GAAG,GAAG,CAAC,GAAGA,GAAG,GAAG,CAAC,EAAEK,mBAAY,CAACC,EAAE,CAAC;AACpD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,IAAIC,gBAAgB,GAAGR,kBAAkB,CAAC,CAAC;AAC3C,MAAMS,SAAS,GAAG,IAAIC,GAAG,CAAa,CAAC;AACvC,IAAIC,aAA4C,GAAG,EAAE;AAErD,MAAMC,eAAe,GAAGA,CAAA,KAAY;EACnC,MAAMC,IAAI,GAAGb,kBAAkB,CAAC,CAAC;EACjC,IAAIa,IAAI,KAAKL,gBAAgB,EAAE;IAC9BA,gBAAgB,GAAGK,IAAI;IACvBJ,SAAS,CAACK,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EAC5C;AACD,CAAC;AAED,MAAMC,SAAS,GAAIC,aAAyB,IAAmB;EAC9D,IAAIR,SAAS,CAACS,IAAI,KAAK,CAAC,EAAE;IACzBP,aAAa,GAAG,CACfQ,qBAAQ,CAACC,gBAAgB,CAAC,QAAQ,EAAGC,YAAY,IAAK;MACrD,IAAIA,YAAY,KAAK,QAAQ,EAAET,eAAe,CAAC,CAAC;IACjD,CAAC,CAAC,EACFU,uBAAU,CAACF,gBAAgB,CAAC,QAAQ,EAAER,eAAe,CAAC,CACtD;EACF;EACAH,SAAS,CAACc,GAAG,CAACN,aAAa,CAAC;EAC5B;EACAL,eAAe,CAAC,CAAC;EAEjB,OAAO,MAAM;IACZH,SAAS,CAACe,MAAM,CAACP,aAAa,CAAC;IAC/B,IAAIR,SAAS,CAACS,IAAI,KAAK,CAAC,EAAE;MACzBP,aAAa,CAACG,OAAO,CAAEW,YAAY,IAAKA,YAAY,CAACC,MAAM,CAAC,CAAC,CAAC;MAC9Df,aAAa,GAAG,EAAE;IACnB;EACD,CAAC;AACF,CAAC;AAED,MAAMgB,WAAW,GAAGA,CAAA,KAAcnB,gBAAgB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASoB,YAAYA,CAAA,EAAW;EACtC,OAAO,IAAAC,2BAAoB,EAACb,SAAS,EAAEW,WAAW,CAAC;AACpD;AAEO,SAASG,oBAAoBA,CAElCC,gBAA8B,EAAEC,KAAa,EAA+C;EAC7F,MAAMC,OAAO,GAAG,IAAAC,aAAM,EAAuC,IAAI,CAAC;EAClE,MAAMC,WAAW,GAAG,IAAAD,aAAM,EAAeH,gBAAgB,CAAC;EAE1D,IAAAK,gBAAS,EAAC,MAAM;IACfD,WAAW,CAACE,OAAO,GAAGN,gBAAgB;EACvC,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EAEtB,OAAO,IAAAO,kBAAW,EACjB,CAAC,GAAGC,IAAI,KAAK;IACZ,IAAIN,OAAO,CAACI,OAAO,EAAEG,YAAY,CAACP,OAAO,CAACI,OAAO,CAAC;IAElDJ,OAAO,CAACI,OAAO,GAAGI,UAAU,CAAC,MAAM;MAClCN,WAAW,CAACE,OAAO,CAAC,GAAGE,IAAI,CAAC;IAC7B,CAAC,EAAEP,KAAK,CAAC;EACV,CAAC,EACD,CAACA,KAAK,CACP,CAAC;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WheelPicker.d.ts","sourceRoot":"","sources":["../../../../../src/components/WheelPicker/WheelPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"WheelPicker.d.ts","sourceRoot":"","sources":["../../../../../src/components/WheelPicker/WheelPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAcvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,MAAM,WAAW,KAAK;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9C,IAAI,EAAE,SAAS,GAAG,eAAe,CAAC;IAClC,MAAM,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;CAC7C;AAED,iBAAS,WAAW,CAAC,EACpB,IAAI,EACJ,kBAAkB,EAClB,aAAa,EACb,OAAO,EACP,QAAQ,EACR,WAAe,EACf,gBAA2B,EAC3B,MAAM,GACN,EAAE,QAAQ,CAAC,KAAK,CAAC,qBA8JjB;;AAED,wBAAuC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAwB,iBAAiB,EAAE,oBAAoB,EAAc,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAwB,iBAAiB,EAAE,oBAAoB,EAAc,MAAM,cAAc,CAAC;AAkDzG;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,oBAAoB,CACnC,YAAY,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,KAAK,OAAO,EACxF,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,KAAK,IAAI,CAkB5F"}
|
package/package.json
CHANGED