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.
Files changed (137) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +232 -0
  3. package/lib/commonjs/Bar.js +247 -0
  4. package/lib/commonjs/Bar.js.map +1 -0
  5. package/lib/commonjs/Button.js +150 -0
  6. package/lib/commonjs/Button.js.map +1 -0
  7. package/lib/commonjs/Context.js +21 -0
  8. package/lib/commonjs/Context.js.map +1 -0
  9. package/lib/commonjs/FlashList.js +91 -0
  10. package/lib/commonjs/FlashList.js.map +1 -0
  11. package/lib/commonjs/Header.js +54 -0
  12. package/lib/commonjs/Header.js.map +1 -0
  13. package/lib/commonjs/Indicator.js +156 -0
  14. package/lib/commonjs/Indicator.js.map +1 -0
  15. package/lib/commonjs/Lazy.js +87 -0
  16. package/lib/commonjs/Lazy.js.map +1 -0
  17. package/lib/commonjs/LegendList.js +86 -0
  18. package/lib/commonjs/LegendList.js.map +1 -0
  19. package/lib/commonjs/List.js +83 -0
  20. package/lib/commonjs/List.js.map +1 -0
  21. package/lib/commonjs/Pager.js +93 -0
  22. package/lib/commonjs/Pager.js.map +1 -0
  23. package/lib/commonjs/Root.js +169 -0
  24. package/lib/commonjs/Root.js.map +1 -0
  25. package/lib/commonjs/ScrollView.js +85 -0
  26. package/lib/commonjs/ScrollView.js.map +1 -0
  27. package/lib/commonjs/StaticHeader.js +37 -0
  28. package/lib/commonjs/StaticHeader.js.map +1 -0
  29. package/lib/commonjs/StickyHeader.js +37 -0
  30. package/lib/commonjs/StickyHeader.js.map +1 -0
  31. package/lib/commonjs/Tab.js +86 -0
  32. package/lib/commonjs/Tab.js.map +1 -0
  33. package/lib/commonjs/flash-list.js +14 -0
  34. package/lib/commonjs/flash-list.js.map +1 -0
  35. package/lib/commonjs/index.js +128 -0
  36. package/lib/commonjs/index.js.map +1 -0
  37. package/lib/commonjs/legend-list.js +14 -0
  38. package/lib/commonjs/legend-list.js.map +1 -0
  39. package/lib/commonjs/package.json +1 -0
  40. package/lib/commonjs/useStableCallback.js +15 -0
  41. package/lib/commonjs/useStableCallback.js.map +1 -0
  42. package/lib/module/Bar.js +242 -0
  43. package/lib/module/Bar.js.map +1 -0
  44. package/lib/module/Button.js +145 -0
  45. package/lib/module/Button.js.map +1 -0
  46. package/lib/module/Context.js +16 -0
  47. package/lib/module/Context.js.map +1 -0
  48. package/lib/module/FlashList.js +86 -0
  49. package/lib/module/FlashList.js.map +1 -0
  50. package/lib/module/Header.js +49 -0
  51. package/lib/module/Header.js.map +1 -0
  52. package/lib/module/Indicator.js +151 -0
  53. package/lib/module/Indicator.js.map +1 -0
  54. package/lib/module/Lazy.js +82 -0
  55. package/lib/module/Lazy.js.map +1 -0
  56. package/lib/module/LegendList.js +81 -0
  57. package/lib/module/LegendList.js.map +1 -0
  58. package/lib/module/List.js +78 -0
  59. package/lib/module/List.js.map +1 -0
  60. package/lib/module/Pager.js +87 -0
  61. package/lib/module/Pager.js.map +1 -0
  62. package/lib/module/Root.js +165 -0
  63. package/lib/module/Root.js.map +1 -0
  64. package/lib/module/ScrollView.js +80 -0
  65. package/lib/module/ScrollView.js.map +1 -0
  66. package/lib/module/StaticHeader.js +32 -0
  67. package/lib/module/StaticHeader.js.map +1 -0
  68. package/lib/module/StickyHeader.js +32 -0
  69. package/lib/module/StickyHeader.js.map +1 -0
  70. package/lib/module/Tab.js +81 -0
  71. package/lib/module/Tab.js.map +1 -0
  72. package/lib/module/flash-list.js +4 -0
  73. package/lib/module/flash-list.js.map +1 -0
  74. package/lib/module/index.js +44 -0
  75. package/lib/module/index.js.map +1 -0
  76. package/lib/module/legend-list.js +4 -0
  77. package/lib/module/legend-list.js.map +1 -0
  78. package/lib/module/useStableCallback.js +11 -0
  79. package/lib/module/useStableCallback.js.map +1 -0
  80. package/lib/typescript/Bar.d.ts +22 -0
  81. package/lib/typescript/Bar.d.ts.map +1 -0
  82. package/lib/typescript/Button.d.ts +32 -0
  83. package/lib/typescript/Button.d.ts.map +1 -0
  84. package/lib/typescript/Context.d.ts +37 -0
  85. package/lib/typescript/Context.d.ts.map +1 -0
  86. package/lib/typescript/FlashList.d.ts +6 -0
  87. package/lib/typescript/FlashList.d.ts.map +1 -0
  88. package/lib/typescript/Header.d.ts +7 -0
  89. package/lib/typescript/Header.d.ts.map +1 -0
  90. package/lib/typescript/Indicator.d.ts +11 -0
  91. package/lib/typescript/Indicator.d.ts.map +1 -0
  92. package/lib/typescript/Lazy.d.ts +36 -0
  93. package/lib/typescript/Lazy.d.ts.map +1 -0
  94. package/lib/typescript/LegendList.d.ts +6 -0
  95. package/lib/typescript/LegendList.d.ts.map +1 -0
  96. package/lib/typescript/List.d.ts +6 -0
  97. package/lib/typescript/List.d.ts.map +1 -0
  98. package/lib/typescript/Pager.d.ts +15 -0
  99. package/lib/typescript/Pager.d.ts.map +1 -0
  100. package/lib/typescript/Root.d.ts +14 -0
  101. package/lib/typescript/Root.d.ts.map +1 -0
  102. package/lib/typescript/ScrollView.d.ts +6 -0
  103. package/lib/typescript/ScrollView.d.ts.map +1 -0
  104. package/lib/typescript/StaticHeader.d.ts +7 -0
  105. package/lib/typescript/StaticHeader.d.ts.map +1 -0
  106. package/lib/typescript/StickyHeader.d.ts +7 -0
  107. package/lib/typescript/StickyHeader.d.ts.map +1 -0
  108. package/lib/typescript/Tab.d.ts +31 -0
  109. package/lib/typescript/Tab.d.ts.map +1 -0
  110. package/lib/typescript/flash-list.d.ts +3 -0
  111. package/lib/typescript/flash-list.d.ts.map +1 -0
  112. package/lib/typescript/index.d.ts +69 -0
  113. package/lib/typescript/index.d.ts.map +1 -0
  114. package/lib/typescript/legend-list.d.ts +3 -0
  115. package/lib/typescript/legend-list.d.ts.map +1 -0
  116. package/lib/typescript/useStableCallback.d.ts +2 -0
  117. package/lib/typescript/useStableCallback.d.ts.map +1 -0
  118. package/package.json +112 -0
  119. package/src/Bar.tsx +359 -0
  120. package/src/Button.tsx +219 -0
  121. package/src/Context.tsx +44 -0
  122. package/src/FlashList.tsx +150 -0
  123. package/src/Header.tsx +45 -0
  124. package/src/Indicator.tsx +193 -0
  125. package/src/Lazy.tsx +110 -0
  126. package/src/LegendList.tsx +130 -0
  127. package/src/List.tsx +115 -0
  128. package/src/Pager.tsx +134 -0
  129. package/src/Root.tsx +194 -0
  130. package/src/ScrollView.tsx +116 -0
  131. package/src/StaticHeader.tsx +30 -0
  132. package/src/StickyHeader.tsx +30 -0
  133. package/src/Tab.tsx +89 -0
  134. package/src/flash-list.ts +2 -0
  135. package/src/index.ts +54 -0
  136. package/src/legend-list.ts +2 -0
  137. 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":[]}