react-native-collapsible-tabs-reanimated 0.1.0-beta
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/LICENSE +21 -0
- package/README.md +232 -0
- package/lib/commonjs/Bar.js +247 -0
- package/lib/commonjs/Bar.js.map +1 -0
- package/lib/commonjs/Button.js +150 -0
- package/lib/commonjs/Button.js.map +1 -0
- package/lib/commonjs/Context.js +21 -0
- package/lib/commonjs/Context.js.map +1 -0
- package/lib/commonjs/FlashList.js +91 -0
- package/lib/commonjs/FlashList.js.map +1 -0
- package/lib/commonjs/Header.js +54 -0
- package/lib/commonjs/Header.js.map +1 -0
- package/lib/commonjs/Indicator.js +156 -0
- package/lib/commonjs/Indicator.js.map +1 -0
- package/lib/commonjs/Lazy.js +87 -0
- package/lib/commonjs/Lazy.js.map +1 -0
- package/lib/commonjs/LegendList.js +86 -0
- package/lib/commonjs/LegendList.js.map +1 -0
- package/lib/commonjs/List.js +83 -0
- package/lib/commonjs/List.js.map +1 -0
- package/lib/commonjs/Pager.js +93 -0
- package/lib/commonjs/Pager.js.map +1 -0
- package/lib/commonjs/Root.js +169 -0
- package/lib/commonjs/Root.js.map +1 -0
- package/lib/commonjs/ScrollView.js +85 -0
- package/lib/commonjs/ScrollView.js.map +1 -0
- package/lib/commonjs/StaticHeader.js +37 -0
- package/lib/commonjs/StaticHeader.js.map +1 -0
- package/lib/commonjs/StickyHeader.js +37 -0
- package/lib/commonjs/StickyHeader.js.map +1 -0
- package/lib/commonjs/Tab.js +86 -0
- package/lib/commonjs/Tab.js.map +1 -0
- package/lib/commonjs/flash-list.js +14 -0
- package/lib/commonjs/flash-list.js.map +1 -0
- package/lib/commonjs/index.js +128 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/legend-list.js +14 -0
- package/lib/commonjs/legend-list.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/useStableCallback.js +15 -0
- package/lib/commonjs/useStableCallback.js.map +1 -0
- package/lib/module/Bar.js +242 -0
- package/lib/module/Bar.js.map +1 -0
- package/lib/module/Button.js +145 -0
- package/lib/module/Button.js.map +1 -0
- package/lib/module/Context.js +16 -0
- package/lib/module/Context.js.map +1 -0
- package/lib/module/FlashList.js +86 -0
- package/lib/module/FlashList.js.map +1 -0
- package/lib/module/Header.js +49 -0
- package/lib/module/Header.js.map +1 -0
- package/lib/module/Indicator.js +151 -0
- package/lib/module/Indicator.js.map +1 -0
- package/lib/module/Lazy.js +82 -0
- package/lib/module/Lazy.js.map +1 -0
- package/lib/module/LegendList.js +81 -0
- package/lib/module/LegendList.js.map +1 -0
- package/lib/module/List.js +78 -0
- package/lib/module/List.js.map +1 -0
- package/lib/module/Pager.js +87 -0
- package/lib/module/Pager.js.map +1 -0
- package/lib/module/Root.js +165 -0
- package/lib/module/Root.js.map +1 -0
- package/lib/module/ScrollView.js +80 -0
- package/lib/module/ScrollView.js.map +1 -0
- package/lib/module/StaticHeader.js +32 -0
- package/lib/module/StaticHeader.js.map +1 -0
- package/lib/module/StickyHeader.js +32 -0
- package/lib/module/StickyHeader.js.map +1 -0
- package/lib/module/Tab.js +81 -0
- package/lib/module/Tab.js.map +1 -0
- package/lib/module/flash-list.js +4 -0
- package/lib/module/flash-list.js.map +1 -0
- package/lib/module/index.js +44 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/legend-list.js +4 -0
- package/lib/module/legend-list.js.map +1 -0
- package/lib/module/useStableCallback.js +11 -0
- package/lib/module/useStableCallback.js.map +1 -0
- package/lib/typescript/Bar.d.ts +22 -0
- package/lib/typescript/Bar.d.ts.map +1 -0
- package/lib/typescript/Button.d.ts +32 -0
- package/lib/typescript/Button.d.ts.map +1 -0
- package/lib/typescript/Context.d.ts +37 -0
- package/lib/typescript/Context.d.ts.map +1 -0
- package/lib/typescript/FlashList.d.ts +6 -0
- package/lib/typescript/FlashList.d.ts.map +1 -0
- package/lib/typescript/Header.d.ts +7 -0
- package/lib/typescript/Header.d.ts.map +1 -0
- package/lib/typescript/Indicator.d.ts +11 -0
- package/lib/typescript/Indicator.d.ts.map +1 -0
- package/lib/typescript/Lazy.d.ts +36 -0
- package/lib/typescript/Lazy.d.ts.map +1 -0
- package/lib/typescript/LegendList.d.ts +6 -0
- package/lib/typescript/LegendList.d.ts.map +1 -0
- package/lib/typescript/List.d.ts +6 -0
- package/lib/typescript/List.d.ts.map +1 -0
- package/lib/typescript/Pager.d.ts +15 -0
- package/lib/typescript/Pager.d.ts.map +1 -0
- package/lib/typescript/Root.d.ts +14 -0
- package/lib/typescript/Root.d.ts.map +1 -0
- package/lib/typescript/ScrollView.d.ts +6 -0
- package/lib/typescript/ScrollView.d.ts.map +1 -0
- package/lib/typescript/StaticHeader.d.ts +7 -0
- package/lib/typescript/StaticHeader.d.ts.map +1 -0
- package/lib/typescript/StickyHeader.d.ts +7 -0
- package/lib/typescript/StickyHeader.d.ts.map +1 -0
- package/lib/typescript/Tab.d.ts +31 -0
- package/lib/typescript/Tab.d.ts.map +1 -0
- package/lib/typescript/flash-list.d.ts +3 -0
- package/lib/typescript/flash-list.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +69 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/legend-list.d.ts +3 -0
- package/lib/typescript/legend-list.d.ts.map +1 -0
- package/lib/typescript/useStableCallback.d.ts +2 -0
- package/lib/typescript/useStableCallback.d.ts.map +1 -0
- package/package.json +112 -0
- package/src/Bar.tsx +359 -0
- package/src/Button.tsx +219 -0
- package/src/Context.tsx +44 -0
- package/src/FlashList.tsx +150 -0
- package/src/Header.tsx +45 -0
- package/src/Indicator.tsx +193 -0
- package/src/Lazy.tsx +110 -0
- package/src/LegendList.tsx +130 -0
- package/src/List.tsx +115 -0
- package/src/Pager.tsx +134 -0
- package/src/Root.tsx +194 -0
- package/src/ScrollView.tsx +116 -0
- package/src/StaticHeader.tsx +30 -0
- package/src/StickyHeader.tsx +30 -0
- package/src/Tab.tsx +89 -0
- package/src/flash-list.ts +2 -0
- package/src/index.ts +54 -0
- package/src/legend-list.ts +2 -0
- package/src/useStableCallback.ts +11 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeGestureHandler = require("react-native-gesture-handler");
|
|
10
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
11
|
+
var _Context = require("./Context");
|
|
12
|
+
var _Tab = require("./Tab");
|
|
13
|
+
var _useStableCallback = require("./useStableCallback");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
16
|
+
const List = ({
|
|
17
|
+
onLayout,
|
|
18
|
+
onContentSizeChange,
|
|
19
|
+
...props
|
|
20
|
+
}) => {
|
|
21
|
+
const {
|
|
22
|
+
listGestures,
|
|
23
|
+
activeTabIndex,
|
|
24
|
+
activeListOffset,
|
|
25
|
+
registerListScroller
|
|
26
|
+
} = (0, _Context.useCollapsibleTabsContext)();
|
|
27
|
+
const {
|
|
28
|
+
index
|
|
29
|
+
} = (0, _Tab.useTabSelfContext)();
|
|
30
|
+
const selfOffset = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
31
|
+
const listRef = (0, _reactNativeReanimated.useAnimatedRef)();
|
|
32
|
+
const onScroll = (0, _reactNativeReanimated.useAnimatedScrollHandler)(event => {
|
|
33
|
+
selfOffset.value = event.contentOffset.y;
|
|
34
|
+
if (activeTabIndex.value === index) activeListOffset.value = event.contentOffset.y;
|
|
35
|
+
});
|
|
36
|
+
const composedScrollEvent = (0, _reactNativeReanimated.useComposedEventHandler)(props.onScroll ? [onScroll, props.onScroll] : [onScroll]);
|
|
37
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => activeTabIndex.value, value => {
|
|
38
|
+
if (value === index) activeListOffset.value = selfOffset.value;
|
|
39
|
+
}, [index]);
|
|
40
|
+
const scroller = (0, _react.useMemo)(() => (animated = true) => {
|
|
41
|
+
"worklet";
|
|
42
|
+
|
|
43
|
+
(0, _reactNativeReanimated.scrollTo)(listRef, 0, 0, animated);
|
|
44
|
+
}, [listRef]);
|
|
45
|
+
(0, _react.useEffect)(() => {
|
|
46
|
+
registerListScroller(index, scroller);
|
|
47
|
+
return () => registerListScroller(index, null);
|
|
48
|
+
}, [index, registerListScroller, scroller]);
|
|
49
|
+
const stableLayout = (0, _useStableCallback.useStableCallback)(onLayout);
|
|
50
|
+
const stableContentSizeChange = (0, _useStableCallback.useStableCallback)(onContentSizeChange);
|
|
51
|
+
const handleLayout = (0, _react.useCallback)(event => {
|
|
52
|
+
stableLayout?.(event);
|
|
53
|
+
}, [stableLayout]);
|
|
54
|
+
const handleContentSizeChange = (0, _react.useCallback)((width, height) => {
|
|
55
|
+
stableContentSizeChange?.(width, height);
|
|
56
|
+
}, [stableContentSizeChange]);
|
|
57
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
58
|
+
style: styles.view,
|
|
59
|
+
collapsable: false,
|
|
60
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector, {
|
|
61
|
+
gesture: listGestures[index],
|
|
62
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.FlatList, {
|
|
63
|
+
ref: listRef,
|
|
64
|
+
scrollEventThrottle: 16,
|
|
65
|
+
showsVerticalScrollIndicator: true,
|
|
66
|
+
directionalLockEnabled: true,
|
|
67
|
+
keyboardShouldPersistTaps: "handled",
|
|
68
|
+
...props,
|
|
69
|
+
onScroll: composedScrollEvent,
|
|
70
|
+
onLayout: handleLayout,
|
|
71
|
+
onContentSizeChange: handleContentSizeChange
|
|
72
|
+
})
|
|
73
|
+
})
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
const styles = _reactNative.StyleSheet.create({
|
|
77
|
+
view: {
|
|
78
|
+
position: "relative"
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
List.displayName = "CollapsibleTabs.List";
|
|
82
|
+
var _default = exports.default = /*#__PURE__*/(0, _react.memo)(List);
|
|
83
|
+
//# sourceMappingURL=List.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_Context","_Tab","_useStableCallback","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","List","onLayout","onContentSizeChange","props","listGestures","activeTabIndex","activeListOffset","registerListScroller","useCollapsibleTabsContext","index","useTabSelfContext","selfOffset","useSharedValue","listRef","useAnimatedRef","onScroll","useAnimatedScrollHandler","event","value","contentOffset","y","composedScrollEvent","useComposedEventHandler","useAnimatedReaction","scroller","useMemo","animated","scrollTo","useEffect","stableLayout","useStableCallback","stableContentSizeChange","handleLayout","useCallback","handleContentSizeChange","width","height","jsx","View","style","styles","view","collapsable","children","GestureDetector","gesture","FlatList","ref","scrollEventThrottle","showsVerticalScrollIndicator","directionalLockEnabled","keyboardShouldPersistTaps","StyleSheet","create","position","displayName","_default","exports","memo"],"sourceRoot":"..\\..\\src","sources":["List.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeGestureHandler = require("react-native-gesture-handler");
|
|
10
|
+
var _reactNativePagerView = _interopRequireDefault(require("react-native-pager-view"));
|
|
11
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
12
|
+
var _Context = require("./Context");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
+
const AnimatedPagerView = _reactNativeReanimated.default.createAnimatedComponent(_reactNativePagerView.default);
|
|
17
|
+
function usePageScrollHandler(handlers, dependencies) {
|
|
18
|
+
const {
|
|
19
|
+
context,
|
|
20
|
+
doDependenciesDiffer
|
|
21
|
+
} = (0, _reactNativeReanimated.useHandler)(handlers, dependencies);
|
|
22
|
+
return (0, _reactNativeReanimated.useEvent)(event => {
|
|
23
|
+
"worklet";
|
|
24
|
+
|
|
25
|
+
const {
|
|
26
|
+
onPageScroll
|
|
27
|
+
} = handlers;
|
|
28
|
+
if (onPageScroll && event.eventName.endsWith("onPageScroll")) onPageScroll(event, context);
|
|
29
|
+
}, ["onPageScroll"], doDependenciesDiffer);
|
|
30
|
+
}
|
|
31
|
+
const Pager = ({
|
|
32
|
+
children,
|
|
33
|
+
style,
|
|
34
|
+
height,
|
|
35
|
+
getHeight,
|
|
36
|
+
...pagerProps
|
|
37
|
+
}) => {
|
|
38
|
+
const {
|
|
39
|
+
headerOffset,
|
|
40
|
+
listPanGesture,
|
|
41
|
+
activeTabIndex,
|
|
42
|
+
activeListOffset,
|
|
43
|
+
pageDecimal,
|
|
44
|
+
pagerRef,
|
|
45
|
+
staticHeightValue,
|
|
46
|
+
stickyHeightValue
|
|
47
|
+
} = (0, _Context.useCollapsibleTabsContext)();
|
|
48
|
+
const listHeight = height ?? getHeight?.(staticHeightValue, stickyHeightValue) ?? null;
|
|
49
|
+
const pageScrollHandlers = (0, _react.useMemo)(() => ({
|
|
50
|
+
onPageScroll: event => {
|
|
51
|
+
"worklet";
|
|
52
|
+
|
|
53
|
+
pageDecimal.value = event.position + event.offset;
|
|
54
|
+
}
|
|
55
|
+
}), [pageDecimal]);
|
|
56
|
+
const onPageScroll = usePageScrollHandler(pageScrollHandlers);
|
|
57
|
+
const onPageSelected = (0, _react.useCallback)(event => {
|
|
58
|
+
activeTabIndex.value = event.nativeEvent.position;
|
|
59
|
+
activeListOffset.value = 0;
|
|
60
|
+
}, [activeListOffset, activeTabIndex]);
|
|
61
|
+
const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
62
|
+
...(listHeight != null ? {
|
|
63
|
+
height: listHeight
|
|
64
|
+
} : null),
|
|
65
|
+
transform: [{
|
|
66
|
+
translateY: headerOffset.value
|
|
67
|
+
}]
|
|
68
|
+
}), [listHeight]);
|
|
69
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector, {
|
|
70
|
+
gesture: listPanGesture,
|
|
71
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
72
|
+
style: [listHeight == null && styles.flex1, animatedStyle],
|
|
73
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedPagerView, {
|
|
74
|
+
ref: pagerRef,
|
|
75
|
+
orientation: "horizontal",
|
|
76
|
+
overScrollMode: "never",
|
|
77
|
+
style: [styles.flex1, style],
|
|
78
|
+
onPageScroll: onPageScroll,
|
|
79
|
+
onPageSelected: onPageSelected,
|
|
80
|
+
...pagerProps,
|
|
81
|
+
children: children
|
|
82
|
+
})
|
|
83
|
+
})
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
Pager.displayName = "CollapsibleTabs.Pager";
|
|
87
|
+
const styles = _reactNative.StyleSheet.create({
|
|
88
|
+
flex1: {
|
|
89
|
+
flex: 1
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
var _default = exports.default = /*#__PURE__*/(0, _react.memo)(Pager);
|
|
93
|
+
//# sourceMappingURL=Pager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativePagerView","_interopRequireDefault","_reactNativeReanimated","_interopRequireWildcard","_Context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AnimatedPagerView","Animated","createAnimatedComponent","PagerView","usePageScrollHandler","handlers","dependencies","context","doDependenciesDiffer","useHandler","useEvent","event","onPageScroll","eventName","endsWith","Pager","children","style","height","getHeight","pagerProps","headerOffset","listPanGesture","activeTabIndex","activeListOffset","pageDecimal","pagerRef","staticHeightValue","stickyHeightValue","useCollapsibleTabsContext","listHeight","pageScrollHandlers","useMemo","value","position","offset","onPageSelected","useCallback","nativeEvent","animatedStyle","useAnimatedStyle","transform","translateY","jsx","GestureDetector","gesture","View","styles","flex1","ref","orientation","overScrollMode","displayName","StyleSheet","create","flex","_default","exports","memo"],"sourceRoot":"..\\..\\src","sources":["Pager.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeGestureHandler = require("react-native-gesture-handler");
|
|
10
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
11
|
+
var _reactNativeWorklets = require("react-native-worklets");
|
|
12
|
+
var _Context = require("./Context");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
const DECELERATION = _reactNative.Platform.OS === 'android' ? 0.985 : 0.998;
|
|
15
|
+
const HEIGHT_EPSILON = 0.5;
|
|
16
|
+
const RootInner = /*#__PURE__*/(0, _react.memo)(/*#__PURE__*/(0, _react.forwardRef)(({
|
|
17
|
+
initialStaticHeight,
|
|
18
|
+
initialStickyHeight,
|
|
19
|
+
pageLength,
|
|
20
|
+
offsetAdjustment,
|
|
21
|
+
children
|
|
22
|
+
}, ref) => {
|
|
23
|
+
const headerOffset = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
24
|
+
const staticHeight = (0, _reactNativeReanimated.useSharedValue)(initialStaticHeight);
|
|
25
|
+
const stickyHeight = (0, _reactNativeReanimated.useSharedValue)(initialStickyHeight);
|
|
26
|
+
const offsetAdjustmentShared = (0, _reactNativeReanimated.useDerivedValue)(() => offsetAdjustment, [offsetAdjustment]);
|
|
27
|
+
const activeTabIndex = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
28
|
+
const [activeTabIndexValue, setActiveTabIndexValue] = (0, _react.useState)(0);
|
|
29
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => activeTabIndex.value, (next, prev) => {
|
|
30
|
+
if (next !== prev) (0, _reactNativeWorklets.scheduleOnRN)(setActiveTabIndexValue, next);
|
|
31
|
+
}, []);
|
|
32
|
+
const pageDecimal = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
33
|
+
const pagerRef = (0, _react.useRef)(null);
|
|
34
|
+
const [itemLayout, setItemLayout] = (0, _react.useState)([]);
|
|
35
|
+
const listScrollersRef = (0, _react.useRef)(new Map());
|
|
36
|
+
const registerButton = (0, _react.useCallback)(config => {
|
|
37
|
+
setItemLayout(prev => {
|
|
38
|
+
const next = prev.slice();
|
|
39
|
+
next[config.index] = config;
|
|
40
|
+
return next;
|
|
41
|
+
});
|
|
42
|
+
}, []);
|
|
43
|
+
const registerListScroller = (0, _react.useCallback)((index, scroller) => {
|
|
44
|
+
if (scroller) listScrollersRef.current.set(index, scroller);else listScrollersRef.current.delete(index);
|
|
45
|
+
}, []);
|
|
46
|
+
(0, _react.useImperativeHandle)(ref, () => ({
|
|
47
|
+
scrollToViewTop: (animated = true) => {
|
|
48
|
+
const scroller = listScrollersRef.current.get(activeTabIndex.value);
|
|
49
|
+
scroller?.(animated);
|
|
50
|
+
headerOffset.value = (0, _reactNativeReanimated.withSpring)(0, {
|
|
51
|
+
duration: 250,
|
|
52
|
+
dampingRatio: 1,
|
|
53
|
+
mass: 4
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}), [activeTabIndex, headerOffset]);
|
|
57
|
+
const [staticHeightValue, setStaticHeightValue] = (0, _react.useState)(initialStaticHeight);
|
|
58
|
+
const [stickyHeightValue, setStickyHeightValue] = (0, _react.useState)(initialStickyHeight);
|
|
59
|
+
const updateStaticHeight = (0, _react.useCallback)(height => {
|
|
60
|
+
staticHeight.value = height;
|
|
61
|
+
setStaticHeightValue(prev => {
|
|
62
|
+
if (Math.abs(prev - height) < HEIGHT_EPSILON) return prev;
|
|
63
|
+
return height;
|
|
64
|
+
});
|
|
65
|
+
}, [staticHeight]);
|
|
66
|
+
const updateStickyHeight = (0, _react.useCallback)(height => {
|
|
67
|
+
stickyHeight.value = height;
|
|
68
|
+
setStickyHeightValue(prev => {
|
|
69
|
+
if (Math.abs(prev - height) < HEIGHT_EPSILON) return prev;
|
|
70
|
+
return height;
|
|
71
|
+
});
|
|
72
|
+
}, [stickyHeight]);
|
|
73
|
+
const touchX = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
74
|
+
const touchY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
75
|
+
const isVertical = (0, _reactNativeReanimated.useSharedValue)(false);
|
|
76
|
+
const activeListOffset = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
77
|
+
const listGestures = (0, _react.useMemo)(() => Array.from({
|
|
78
|
+
length: pageLength
|
|
79
|
+
}, () => _reactNativeGestureHandler.Gesture.Native().cancelsTouchesInView(true)), [pageLength]);
|
|
80
|
+
const listPanGesture = (0, _react.useMemo)(() => {
|
|
81
|
+
return _reactNativeGestureHandler.Gesture.Pan().manualActivation(true).maxPointers(1).minPointers(1).onTouchesDown(evt => {
|
|
82
|
+
const touch = evt.allTouches[0];
|
|
83
|
+
touchX.value = touch.x;
|
|
84
|
+
touchY.value = touch.y;
|
|
85
|
+
isVertical.value = false;
|
|
86
|
+
}).onTouchesMove((evt, state) => {
|
|
87
|
+
const touch = evt.allTouches[0];
|
|
88
|
+
const toTop = touch.y > touchY.value;
|
|
89
|
+
const isHorizontal = Math.abs(touch.x - touchX.value) > 5;
|
|
90
|
+
const vertical = Math.abs(touch.y - touchY.value) > 5;
|
|
91
|
+
if (vertical) isVertical.value = true;
|
|
92
|
+
if (isHorizontal && !isVertical.value) return state.fail();
|
|
93
|
+
if (!vertical) return;
|
|
94
|
+
const minOffset = -(staticHeight.value - offsetAdjustmentShared.value);
|
|
95
|
+
if (toTop && activeListOffset.value === 0) state.activate();else if (!toTop && headerOffset.value > minOffset) state.activate();
|
|
96
|
+
}).onChange(evt => {
|
|
97
|
+
isVertical.value = true;
|
|
98
|
+
const minOffset = -(staticHeight.value - offsetAdjustmentShared.value);
|
|
99
|
+
headerOffset.value = (0, _reactNativeReanimated.clamp)(headerOffset.value + evt.changeY, minOffset, 0);
|
|
100
|
+
}).onEnd(evt => {
|
|
101
|
+
const toTop = evt.translationY > 0;
|
|
102
|
+
const isHeaderPartialShown = headerOffset.value !== 0;
|
|
103
|
+
const minOffset = -(staticHeight.value - offsetAdjustmentShared.value);
|
|
104
|
+
const isFast = Math.abs(evt.velocityY) > 800;
|
|
105
|
+
if (isFast) {
|
|
106
|
+
if (toTop && isHeaderPartialShown) {
|
|
107
|
+
headerOffset.value = (0, _reactNativeReanimated.withSpring)(0, {
|
|
108
|
+
duration: 250,
|
|
109
|
+
dampingRatio: 1,
|
|
110
|
+
mass: 4,
|
|
111
|
+
overshootClamping: false,
|
|
112
|
+
velocity: evt.velocityY
|
|
113
|
+
});
|
|
114
|
+
} else if (!toTop && isHeaderPartialShown) {
|
|
115
|
+
headerOffset.value = (0, _reactNativeReanimated.withSpring)(minOffset, {
|
|
116
|
+
duration: 250,
|
|
117
|
+
dampingRatio: 1,
|
|
118
|
+
mass: 4,
|
|
119
|
+
overshootClamping: false,
|
|
120
|
+
velocity: evt.velocityY
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
} else {
|
|
124
|
+
headerOffset.value = (0, _reactNativeReanimated.withDecay)({
|
|
125
|
+
velocity: evt.velocityY,
|
|
126
|
+
rubberBandEffect: false,
|
|
127
|
+
clamp: [minOffset, 0],
|
|
128
|
+
deceleration: DECELERATION
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}).simultaneousWithExternalGesture(...listGestures);
|
|
132
|
+
}, [activeListOffset, headerOffset, isVertical, listGestures, offsetAdjustmentShared, staticHeight, touchX, touchY]);
|
|
133
|
+
const ctxValue = (0, _react.useMemo)(() => ({
|
|
134
|
+
headerOffset,
|
|
135
|
+
staticHeight,
|
|
136
|
+
stickyHeight,
|
|
137
|
+
offsetAdjustment: offsetAdjustmentShared,
|
|
138
|
+
activeTabIndex,
|
|
139
|
+
activeTabIndexValue,
|
|
140
|
+
pageDecimal,
|
|
141
|
+
listPanGesture,
|
|
142
|
+
listGestures,
|
|
143
|
+
pagerRef,
|
|
144
|
+
itemLayout,
|
|
145
|
+
registerButton,
|
|
146
|
+
registerListScroller,
|
|
147
|
+
staticHeightValue,
|
|
148
|
+
stickyHeightValue,
|
|
149
|
+
activeListOffset,
|
|
150
|
+
updateStaticHeight,
|
|
151
|
+
updateStickyHeight
|
|
152
|
+
}), [activeListOffset, activeTabIndex, activeTabIndexValue, headerOffset, itemLayout, listGestures, listPanGesture, offsetAdjustmentShared, pageDecimal, registerButton, registerListScroller, staticHeight, staticHeightValue, stickyHeight, stickyHeightValue, updateStaticHeight, updateStickyHeight]);
|
|
153
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Context.CollapsibleTabsContextProvider, {
|
|
154
|
+
...ctxValue,
|
|
155
|
+
children: children
|
|
156
|
+
});
|
|
157
|
+
}));
|
|
158
|
+
RootInner.displayName = 'CollapsibleTabs.RootInner';
|
|
159
|
+
const Root = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(RootInner, {
|
|
160
|
+
ref: ref,
|
|
161
|
+
initialStaticHeight: props.initialStaticHeight ?? 0,
|
|
162
|
+
initialStickyHeight: props.initialStickyHeight ?? 0,
|
|
163
|
+
pageLength: props.pageLength,
|
|
164
|
+
offsetAdjustment: props.offsetAdjustment ?? 0,
|
|
165
|
+
children: props.children
|
|
166
|
+
}));
|
|
167
|
+
Root.displayName = 'CollapsibleTabs.Root';
|
|
168
|
+
var _default = exports.default = /*#__PURE__*/(0, _react.memo)(Root);
|
|
169
|
+
//# sourceMappingURL=Root.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_reactNativeWorklets","_Context","_jsxRuntime","DECELERATION","Platform","OS","HEIGHT_EPSILON","RootInner","memo","forwardRef","initialStaticHeight","initialStickyHeight","pageLength","offsetAdjustment","children","ref","headerOffset","useSharedValue","staticHeight","stickyHeight","offsetAdjustmentShared","useDerivedValue","activeTabIndex","activeTabIndexValue","setActiveTabIndexValue","useState","useAnimatedReaction","value","next","prev","scheduleOnRN","pageDecimal","pagerRef","useRef","itemLayout","setItemLayout","listScrollersRef","Map","registerButton","useCallback","config","slice","index","registerListScroller","scroller","current","set","delete","useImperativeHandle","scrollToViewTop","animated","get","withSpring","duration","dampingRatio","mass","staticHeightValue","setStaticHeightValue","stickyHeightValue","setStickyHeightValue","updateStaticHeight","height","Math","abs","updateStickyHeight","touchX","touchY","isVertical","activeListOffset","listGestures","useMemo","Array","from","length","Gesture","Native","cancelsTouchesInView","listPanGesture","Pan","manualActivation","maxPointers","minPointers","onTouchesDown","evt","touch","allTouches","x","y","onTouchesMove","state","toTop","isHorizontal","vertical","fail","minOffset","activate","onChange","clamp","changeY","onEnd","translationY","isHeaderPartialShown","isFast","velocityY","overshootClamping","velocity","withDecay","rubberBandEffect","deceleration","simultaneousWithExternalGesture","ctxValue","jsx","CollapsibleTabsContextProvider","displayName","Root","props","_default","exports","default"],"sourceRoot":"..\\..\\src","sources":["Root.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeGestureHandler = require("react-native-gesture-handler");
|
|
10
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
11
|
+
var _Context = require("./Context");
|
|
12
|
+
var _Tab = require("./Tab");
|
|
13
|
+
var _useStableCallback = require("./useStableCallback");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
16
|
+
const ScrollView = ({
|
|
17
|
+
onLayout,
|
|
18
|
+
onContentSizeChange,
|
|
19
|
+
...props
|
|
20
|
+
}) => {
|
|
21
|
+
const {
|
|
22
|
+
listGestures,
|
|
23
|
+
activeTabIndex,
|
|
24
|
+
activeListOffset,
|
|
25
|
+
registerListScroller
|
|
26
|
+
} = (0, _Context.useCollapsibleTabsContext)();
|
|
27
|
+
const {
|
|
28
|
+
index
|
|
29
|
+
} = (0, _Tab.useTabSelfContext)();
|
|
30
|
+
const selfOffset = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
31
|
+
const scrollRef = (0, _reactNativeReanimated.useAnimatedRef)();
|
|
32
|
+
const onScroll = (0, _reactNativeReanimated.useAnimatedScrollHandler)(event => {
|
|
33
|
+
selfOffset.value = event.contentOffset.y;
|
|
34
|
+
if (activeTabIndex.value === index) activeListOffset.value = event.contentOffset.y;
|
|
35
|
+
});
|
|
36
|
+
const composedScrollEvent = (0, _reactNativeReanimated.useComposedEventHandler)(props.onScroll ? [onScroll, props.onScroll] : [onScroll]);
|
|
37
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => activeTabIndex.value, value => {
|
|
38
|
+
if (value === index) activeListOffset.value = selfOffset.value;
|
|
39
|
+
}, [index]);
|
|
40
|
+
const scroller = (0, _react.useMemo)(() => (animated = true) => {
|
|
41
|
+
"worklet";
|
|
42
|
+
|
|
43
|
+
(0, _reactNativeReanimated.scrollTo)(scrollRef, 0, 0, animated);
|
|
44
|
+
}, [scrollRef]);
|
|
45
|
+
(0, _react.useEffect)(() => {
|
|
46
|
+
registerListScroller(index, scroller);
|
|
47
|
+
return () => registerListScroller(index, null);
|
|
48
|
+
}, [index, registerListScroller, scroller]);
|
|
49
|
+
const stableLayout = (0, _useStableCallback.useStableCallback)(onLayout);
|
|
50
|
+
const stableContentSizeChange = (0, _useStableCallback.useStableCallback)(onContentSizeChange);
|
|
51
|
+
const handleLayout = (0, _react.useCallback)(event => {
|
|
52
|
+
stableLayout?.(event);
|
|
53
|
+
}, [stableLayout]);
|
|
54
|
+
const handleContentSizeChange = (0, _react.useCallback)((width, height) => {
|
|
55
|
+
stableContentSizeChange?.(width, height);
|
|
56
|
+
}, [stableContentSizeChange]);
|
|
57
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
58
|
+
style: styles.view,
|
|
59
|
+
collapsable: false,
|
|
60
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector, {
|
|
61
|
+
gesture: listGestures[index],
|
|
62
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.ScrollView, {
|
|
63
|
+
ref: scrollRef,
|
|
64
|
+
scrollEventThrottle: 16,
|
|
65
|
+
showsVerticalScrollIndicator: true,
|
|
66
|
+
directionalLockEnabled: true,
|
|
67
|
+
keyboardShouldPersistTaps: "handled",
|
|
68
|
+
...props,
|
|
69
|
+
// onScroll={onScroll as RNScrollViewProps["onScroll"]}
|
|
70
|
+
onScroll: composedScrollEvent,
|
|
71
|
+
onLayout: handleLayout,
|
|
72
|
+
onContentSizeChange: handleContentSizeChange
|
|
73
|
+
})
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
const styles = _reactNative.StyleSheet.create({
|
|
78
|
+
view: {
|
|
79
|
+
position: "relative",
|
|
80
|
+
flex: 1
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
ScrollView.displayName = "CollapsibleTabs.ScrollView";
|
|
84
|
+
var _default = exports.default = /*#__PURE__*/(0, _react.memo)(ScrollView);
|
|
85
|
+
//# sourceMappingURL=ScrollView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_Context","_Tab","_useStableCallback","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ScrollView","onLayout","onContentSizeChange","props","listGestures","activeTabIndex","activeListOffset","registerListScroller","useCollapsibleTabsContext","index","useTabSelfContext","selfOffset","useSharedValue","scrollRef","useAnimatedRef","onScroll","useAnimatedScrollHandler","event","value","contentOffset","y","composedScrollEvent","useComposedEventHandler","useAnimatedReaction","scroller","useMemo","animated","scrollTo","useEffect","stableLayout","useStableCallback","stableContentSizeChange","handleLayout","useCallback","handleContentSizeChange","width","height","jsx","View","style","styles","view","collapsable","children","GestureDetector","gesture","ref","scrollEventThrottle","showsVerticalScrollIndicator","directionalLockEnabled","keyboardShouldPersistTaps","StyleSheet","create","position","flex","displayName","_default","exports","memo"],"sourceRoot":"..\\..\\src","sources":["ScrollView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
|
|
9
|
+
var _Context = require("./Context");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
const StaticHeader = ({
|
|
13
|
+
children,
|
|
14
|
+
onLayout,
|
|
15
|
+
...props
|
|
16
|
+
}) => {
|
|
17
|
+
const {
|
|
18
|
+
updateStaticHeight,
|
|
19
|
+
staticHeightValue
|
|
20
|
+
} = (0, _Context.useCollapsibleTabsContext)();
|
|
21
|
+
const handleLayout = evt => {
|
|
22
|
+
const height = evt.nativeEvent.layout.height;
|
|
23
|
+
if (__DEV__ && (!staticHeightValue || Math.abs(staticHeightValue - height) > 10)) {
|
|
24
|
+
console.info(`Set initialStaticHeight=${height} to reduce first-render flicker.`);
|
|
25
|
+
}
|
|
26
|
+
updateStaticHeight(height);
|
|
27
|
+
onLayout?.(evt);
|
|
28
|
+
};
|
|
29
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
30
|
+
...props,
|
|
31
|
+
onLayout: handleLayout,
|
|
32
|
+
children: children
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
StaticHeader.displayName = 'CollapsibleTabs.StaticHeader';
|
|
36
|
+
var _default = exports.default = /*#__PURE__*/(0, _react.memo)(StaticHeader);
|
|
37
|
+
//# sourceMappingURL=StaticHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_interopRequireDefault","_Context","_jsxRuntime","e","__esModule","default","StaticHeader","children","onLayout","props","updateStaticHeight","staticHeightValue","useCollapsibleTabsContext","handleLayout","evt","height","nativeEvent","layout","__DEV__","Math","abs","console","info","jsx","View","displayName","_default","exports","memo"],"sourceRoot":"..\\..\\src","sources":["StaticHeader.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,sBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA;AAAsD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtD,MAAMG,YAAY,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,QAAQ;EAAE,GAAGC;AAAiB,CAAC,KAAK;EACpE,MAAM;IAAEC,kBAAkB;IAAEC;EAAkB,CAAC,GAAG,IAAAC,kCAAyB,EAAC,CAAC;EAE7E,MAAMC,YAAY,GAAIC,GAAsB,IAAK;IAC/C,MAAMC,MAAM,GAAGD,GAAG,CAACE,WAAW,CAACC,MAAM,CAACF,MAAM;IAC5C,IAAIG,OAAO,KAAK,CAACP,iBAAiB,IAAIQ,IAAI,CAACC,GAAG,CAACT,iBAAiB,GAAGI,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE;MAChFM,OAAO,CAACC,IAAI,CAAC,2BAA2BP,MAAM,kCAAkC,CAAC;IACnF;IACAL,kBAAkB,CAACK,MAAM,CAAC;IAC1BP,QAAQ,GAAGM,GAAG,CAAC;EACjB,CAAC;EAED,oBACE,IAAAZ,WAAA,CAAAqB,GAAA,EAACxB,sBAAA,CAAAM,OAAQ,CAACmB,IAAI;IAAA,GAAKf,KAAK;IAAED,QAAQ,EAAEK,YAAa;IAAAN,QAAA,EAC9CA;EAAQ,CACI,CAAC;AAEpB,CAAC;AAEDD,YAAY,CAACmB,WAAW,GAAG,8BAA8B;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAtB,OAAA,gBAE3C,IAAAuB,WAAI,EAACtB,YAAY,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
|
|
9
|
+
var _Context = require("./Context");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
const StickyHeader = ({
|
|
13
|
+
children,
|
|
14
|
+
onLayout,
|
|
15
|
+
...props
|
|
16
|
+
}) => {
|
|
17
|
+
const {
|
|
18
|
+
updateStickyHeight,
|
|
19
|
+
stickyHeightValue
|
|
20
|
+
} = (0, _Context.useCollapsibleTabsContext)();
|
|
21
|
+
const handleLayout = evt => {
|
|
22
|
+
const height = evt.nativeEvent.layout.height;
|
|
23
|
+
if (__DEV__ && (!stickyHeightValue || Math.abs(stickyHeightValue - height) > 10)) {
|
|
24
|
+
console.info(`Set initialStickyHeight=${height} to reduce first-render flicker.`);
|
|
25
|
+
}
|
|
26
|
+
updateStickyHeight(height);
|
|
27
|
+
onLayout?.(evt);
|
|
28
|
+
};
|
|
29
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
30
|
+
...props,
|
|
31
|
+
onLayout: handleLayout,
|
|
32
|
+
children: children
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
StickyHeader.displayName = 'CollapsibleTabs.StickyHeader';
|
|
36
|
+
var _default = exports.default = /*#__PURE__*/(0, _react.memo)(StickyHeader);
|
|
37
|
+
//# sourceMappingURL=StickyHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_interopRequireDefault","_Context","_jsxRuntime","e","__esModule","default","StickyHeader","children","onLayout","props","updateStickyHeight","stickyHeightValue","useCollapsibleTabsContext","handleLayout","evt","height","nativeEvent","layout","__DEV__","Math","abs","console","info","jsx","View","displayName","_default","exports","memo"],"sourceRoot":"..\\..\\src","sources":["StickyHeader.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,sBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA;AAAsD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtD,MAAMG,YAAY,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,QAAQ;EAAE,GAAGC;AAAiB,CAAC,KAAK;EACpE,MAAM;IAAEC,kBAAkB;IAAEC;EAAkB,CAAC,GAAG,IAAAC,kCAAyB,EAAC,CAAC;EAE7E,MAAMC,YAAY,GAAIC,GAAsB,IAAK;IAC/C,MAAMC,MAAM,GAAGD,GAAG,CAACE,WAAW,CAACC,MAAM,CAACF,MAAM;IAC5C,IAAIG,OAAO,KAAK,CAACP,iBAAiB,IAAIQ,IAAI,CAACC,GAAG,CAACT,iBAAiB,GAAGI,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE;MAChFM,OAAO,CAACC,IAAI,CAAC,2BAA2BP,MAAM,kCAAkC,CAAC;IACnF;IACAL,kBAAkB,CAACK,MAAM,CAAC;IAC1BP,QAAQ,GAAGM,GAAG,CAAC;EACjB,CAAC;EAED,oBACE,IAAAZ,WAAA,CAAAqB,GAAA,EAACxB,sBAAA,CAAAM,OAAQ,CAACmB,IAAI;IAAA,GAAKf,KAAK;IAAED,QAAQ,EAAEK,YAAa;IAAAN,QAAA,EAC9CA;EAAQ,CACI,CAAC;AAEpB,CAAC;AAEDD,YAAY,CAACmB,WAAW,GAAG,8BAA8B;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAtB,OAAA,gBAE3C,IAAAuB,WAAI,EAACtB,YAAY,CAAC","ignoreList":[]}
|