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,145 @@
1
+ "use strict";
2
+
3
+ import { memo, useCallback, useMemo, useRef } from "react";
4
+ import { StyleSheet, View } from "react-native";
5
+ import { Pressable } from "react-native-gesture-handler";
6
+ import Animated, { interpolateColor, useAnimatedStyle, withTiming } from "react-native-reanimated";
7
+ import { useCollapsibleTabsContext } from "./Context";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ const Button = ({
10
+ index,
11
+ name,
12
+ onPress,
13
+ style,
14
+ fullWidth,
15
+ labelStyle,
16
+ labelProps,
17
+ activeLabelStyle,
18
+ activeStyle,
19
+ children,
20
+ contentWrapperStyle,
21
+ activeLabelColor = "#111827",
22
+ inactiveLabelColor = "#9ca3af",
23
+ ...props
24
+ }) => {
25
+ const {
26
+ activeTabIndex,
27
+ activeTabIndexValue,
28
+ pageDecimal,
29
+ pagerRef,
30
+ registerButton,
31
+ itemLayout
32
+ } = useCollapsibleTabsContext();
33
+ const isActive = activeTabIndexValue === index;
34
+ const combinedStaticLabelStyle = useMemo(() => [styles.label, labelStyle, activeLabelStyle && isActive && activeLabelStyle], [activeLabelStyle, isActive, labelStyle]);
35
+ const animatedLabelStyle = useAnimatedStyle(() => {
36
+ const color = interpolateColor(pageDecimal.value, [index - 1, index, index + 1], [inactiveLabelColor, activeLabelColor, inactiveLabelColor]);
37
+ return {
38
+ color
39
+ };
40
+ }, [activeLabelColor, inactiveLabelColor, index, pageDecimal]);
41
+ const handleOnPress = useCallback(event => {
42
+ onPress?.(event);
43
+ if (pagerRef.current) {
44
+ pagerRef.current.setPage(index);
45
+ return;
46
+ }
47
+ activeTabIndex.value = index;
48
+ pageDecimal.value = withTiming(index);
49
+ }, [activeTabIndex, index, onPress, pageDecimal, pagerRef]);
50
+ const pressableLayoutRef = useRef(null);
51
+ const contentLayoutRef = useRef(null);
52
+ const commitLayout = useCallback(() => {
53
+ const pressable = pressableLayoutRef.current;
54
+ const content = contentLayoutRef.current;
55
+ if (!pressable || !content) return;
56
+ registerButton({
57
+ width: content.width,
58
+ height: content.height,
59
+ x: pressable.x + content.x,
60
+ y: pressable.y + content.y,
61
+ name,
62
+ index
63
+ });
64
+ }, [index, name, registerButton]);
65
+ const onLayout = useCallback(event => {
66
+ props.onLayout?.(event);
67
+ const {
68
+ x,
69
+ y
70
+ } = event.nativeEvent.layout;
71
+ pressableLayoutRef.current = {
72
+ x,
73
+ y
74
+ };
75
+ commitLayout();
76
+ }, [commitLayout, props]);
77
+ const onContentLayout = useCallback(event => {
78
+ const {
79
+ x,
80
+ y,
81
+ width,
82
+ height
83
+ } = event.nativeEvent.layout;
84
+ contentLayoutRef.current = {
85
+ x,
86
+ y,
87
+ width,
88
+ height
89
+ };
90
+ commitLayout();
91
+ }, [commitLayout]);
92
+ const isLast = itemLayout.length - 1 === index;
93
+ const isFirst = index === 0;
94
+ const mergedStyle = useMemo(() => [styles.pressable, isFirst && {
95
+ paddingLeft: 0
96
+ }, isLast && {
97
+ paddingRight: 0
98
+ }, fullWidth && styles.fullWidth, style, isActive && activeStyle], [activeStyle, fullWidth, isActive, isFirst, isLast, style]);
99
+ return /*#__PURE__*/_jsx(Pressable, {
100
+ onPress: handleOnPress,
101
+ ...props,
102
+ onLayout: onLayout,
103
+ style: mergedStyle,
104
+ children: /*#__PURE__*/_jsx(View, {
105
+ onLayout: onContentLayout,
106
+ style: [styles.contentWrapper, contentWrapperStyle],
107
+ children: typeof children === "function" ? children({
108
+ isActive,
109
+ index,
110
+ name,
111
+ style: combinedStaticLabelStyle,
112
+ animatedStyle: animatedLabelStyle,
113
+ pageDecimal
114
+ }) : /*#__PURE__*/_jsx(Animated.Text, {
115
+ style: [combinedStaticLabelStyle, animatedLabelStyle],
116
+ numberOfLines: 1,
117
+ ...labelProps,
118
+ children: children
119
+ })
120
+ })
121
+ });
122
+ };
123
+ const styles = StyleSheet.create({
124
+ pressable: {
125
+ paddingVertical: 16,
126
+ paddingHorizontal: 10
127
+ },
128
+ fullWidth: {
129
+ flex: 1
130
+ },
131
+ contentWrapper: {
132
+ position: "relative",
133
+ alignSelf: "center"
134
+ },
135
+ label: {
136
+ fontSize: 14,
137
+ lineHeight: 18,
138
+ fontWeight: "700",
139
+ fontVariant: ["tabular-nums"],
140
+ textAlign: "center"
141
+ }
142
+ });
143
+ Button.displayName = "CollapsibleTabs.Button";
144
+ export default /*#__PURE__*/memo(Button);
145
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useCallback","useMemo","useRef","StyleSheet","View","Pressable","Animated","interpolateColor","useAnimatedStyle","withTiming","useCollapsibleTabsContext","jsx","_jsx","Button","index","name","onPress","style","fullWidth","labelStyle","labelProps","activeLabelStyle","activeStyle","children","contentWrapperStyle","activeLabelColor","inactiveLabelColor","props","activeTabIndex","activeTabIndexValue","pageDecimal","pagerRef","registerButton","itemLayout","isActive","combinedStaticLabelStyle","styles","label","animatedLabelStyle","color","value","handleOnPress","event","current","setPage","pressableLayoutRef","contentLayoutRef","commitLayout","pressable","content","width","height","x","y","onLayout","nativeEvent","layout","onContentLayout","isLast","length","isFirst","mergedStyle","paddingLeft","paddingRight","contentWrapper","animatedStyle","Text","numberOfLines","create","paddingVertical","paddingHorizontal","flex","position","alignSelf","fontSize","lineHeight","fontWeight","fontVariant","textAlign","displayName"],"sourceRoot":"..\\..\\src","sources":["Button.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ import { createContext, memo, useContext } from 'react';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const CollapsibleTabsContext = /*#__PURE__*/createContext({});
6
+ export const useCollapsibleTabsContext = () => useContext(CollapsibleTabsContext);
7
+ export const CollapsibleTabsContextProvider = /*#__PURE__*/memo(({
8
+ children,
9
+ ...props
10
+ }) => {
11
+ return /*#__PURE__*/_jsx(CollapsibleTabsContext.Provider, {
12
+ value: props,
13
+ children: children
14
+ });
15
+ });
16
+ //# sourceMappingURL=Context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","memo","useContext","jsx","_jsx","CollapsibleTabsContext","useCollapsibleTabsContext","CollapsibleTabsContextProvider","children","props","Provider","value"],"sourceRoot":"..\\..\\src","sources":["Context.tsx"],"mappings":";;AAAA,SAA+BA,aAAa,EAAEC,IAAI,EAAEC,UAAU,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAqC9E,MAAMC,sBAAsB,gBAAGL,aAAa,CAAC,CAAC,CAAgC,CAAC;AAE/E,OAAO,MAAMM,yBAAyB,GAAGA,CAAA,KAAMJ,UAAU,CAACG,sBAAsB,CAAC;AAEjF,OAAO,MAAME,8BAA8B,gBAAGN,IAAI,CAAC,CAAC;EAAEO,QAAQ;EAAE,GAAGC;AAA6D,CAAC,KAAK;EACpI,oBAAOL,IAAA,CAACC,sBAAsB,CAACK,QAAQ;IAACC,KAAK,EAAEF,KAAM;IAAAD,QAAA,EAAEA;EAAQ,CAAkC,CAAC;AACpG,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ import { memo, useCallback, useEffect, useMemo } from "react";
4
+ import { FlashList as ShopifyFlashList } from "@shopify/flash-list";
5
+ import { StyleSheet, View } from "react-native";
6
+ import { GestureDetector } from "react-native-gesture-handler";
7
+ import Animated, { scrollTo, useAnimatedReaction, useAnimatedRef, useAnimatedScrollHandler, useComposedEventHandler, useSharedValue } from "react-native-reanimated";
8
+ import { useCollapsibleTabsContext } from "./Context";
9
+ import { useTabSelfContext } from "./Tab";
10
+ import { useStableCallback } from "./useStableCallback";
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ const AnimatedFlashList = Animated.createAnimatedComponent(ShopifyFlashList);
13
+ const CollapsibleFlashList = ({
14
+ onLayout,
15
+ onContentSizeChange,
16
+ ...props
17
+ }) => {
18
+ const {
19
+ listGestures,
20
+ activeTabIndex,
21
+ activeListOffset,
22
+ registerListScroller
23
+ } = useCollapsibleTabsContext();
24
+ const {
25
+ index
26
+ } = useTabSelfContext();
27
+ const selfOffset = useSharedValue(0);
28
+ const listRef = useAnimatedRef();
29
+ const onScroll = useAnimatedScrollHandler(event => {
30
+ selfOffset.value = event.contentOffset.y;
31
+ if (activeTabIndex.value === index) activeListOffset.value = event.contentOffset.y;
32
+ });
33
+ const composedScrollEvent = useComposedEventHandler(props.onScroll ? [onScroll, props.onScroll] : [onScroll]);
34
+ const myListGesture = listGestures[index];
35
+ const renderScrollComponent = useCallback(scrollProps => /*#__PURE__*/_jsx(GestureDetector, {
36
+ gesture: myListGesture,
37
+ children: /*#__PURE__*/_jsx(Animated.ScrollView, {
38
+ ...scrollProps
39
+ })
40
+ }), [myListGesture]);
41
+ useAnimatedReaction(() => activeTabIndex.value, value => {
42
+ if (value === index) activeListOffset.value = selfOffset.value;
43
+ }, [index]);
44
+ const scroller = useMemo(() => (animated = true) => {
45
+ "worklet";
46
+
47
+ scrollTo(listRef, 0, 0, animated);
48
+ }, [listRef]);
49
+ useEffect(() => {
50
+ registerListScroller(index, scroller);
51
+ return () => registerListScroller(index, null);
52
+ }, [index, registerListScroller, scroller]);
53
+ const stableLayout = useStableCallback(onLayout);
54
+ const stableContentSizeChange = useStableCallback(onContentSizeChange);
55
+ const handleLayout = useCallback(event => {
56
+ stableLayout?.(event);
57
+ }, [stableLayout]);
58
+ const handleContentSizeChange = useCallback((width, height) => {
59
+ stableContentSizeChange?.(width, height);
60
+ }, [stableContentSizeChange]);
61
+ return /*#__PURE__*/_jsx(View, {
62
+ style: styles.view,
63
+ collapsable: false,
64
+ children: /*#__PURE__*/_jsx(AnimatedFlashList, {
65
+ ref: listRef,
66
+ scrollEventThrottle: 16,
67
+ showsVerticalScrollIndicator: true,
68
+ directionalLockEnabled: true,
69
+ keyboardShouldPersistTaps: "handled",
70
+ ...props,
71
+ renderScrollComponent: renderScrollComponent,
72
+ onScroll: composedScrollEvent,
73
+ onLayout: handleLayout,
74
+ onContentSizeChange: handleContentSizeChange
75
+ })
76
+ });
77
+ };
78
+ const styles = StyleSheet.create({
79
+ view: {
80
+ position: "relative",
81
+ flex: 1
82
+ }
83
+ });
84
+ CollapsibleFlashList.displayName = "CollapsibleTabs.CollapsibleFlashList";
85
+ export default /*#__PURE__*/memo(CollapsibleFlashList);
86
+ //# sourceMappingURL=FlashList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useCallback","useEffect","useMemo","FlashList","ShopifyFlashList","StyleSheet","View","GestureDetector","Animated","scrollTo","useAnimatedReaction","useAnimatedRef","useAnimatedScrollHandler","useComposedEventHandler","useSharedValue","useCollapsibleTabsContext","useTabSelfContext","useStableCallback","jsx","_jsx","AnimatedFlashList","createAnimatedComponent","CollapsibleFlashList","onLayout","onContentSizeChange","props","listGestures","activeTabIndex","activeListOffset","registerListScroller","index","selfOffset","listRef","onScroll","event","value","contentOffset","y","composedScrollEvent","myListGesture","renderScrollComponent","scrollProps","gesture","children","ScrollView","scroller","animated","stableLayout","stableContentSizeChange","handleLayout","handleContentSizeChange","width","height","style","styles","view","collapsable","ref","scrollEventThrottle","showsVerticalScrollIndicator","directionalLockEnabled","keyboardShouldPersistTaps","create","position","flex","displayName"],"sourceRoot":"..\\..\\src","sources":["FlashList.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ import { memo, useMemo } from 'react';
4
+ import { Platform } from 'react-native';
5
+ import { Gesture, GestureDetector } from 'react-native-gesture-handler';
6
+ import Animated, { clamp, useAnimatedStyle, withDecay } from 'react-native-reanimated';
7
+ import { useCollapsibleTabsContext } from './Context';
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ const DECELERATION = Platform.OS === 'android' ? 0.985 : 0.998;
10
+ const Header = ({
11
+ children,
12
+ style,
13
+ ...props
14
+ }) => {
15
+ const {
16
+ headerOffset,
17
+ staticHeight,
18
+ offsetAdjustment
19
+ } = useCollapsibleTabsContext();
20
+ const panGesture = useMemo(() => Gesture.Pan().activeOffsetY([-5, 5]).failOffsetX([-5, 5]).maxPointers(1).onChange(evt => {
21
+ const minOffset = -(staticHeight.value - offsetAdjustment.value);
22
+ headerOffset.value = clamp(headerOffset.value + evt.changeY, minOffset, 0);
23
+ }).onEnd(evt => {
24
+ const minOffset = -(staticHeight.value - offsetAdjustment.value);
25
+ headerOffset.value = withDecay({
26
+ velocity: evt.velocityY,
27
+ rubberBandEffect: false,
28
+ clamp: [minOffset, 0],
29
+ deceleration: DECELERATION
30
+ });
31
+ }), [headerOffset, offsetAdjustment, staticHeight]);
32
+ const animatedStyle = useAnimatedStyle(() => ({
33
+ transform: [{
34
+ translateY: headerOffset.value
35
+ }]
36
+ }), []);
37
+ return /*#__PURE__*/_jsx(GestureDetector, {
38
+ gesture: panGesture,
39
+ children: /*#__PURE__*/_jsx(Animated.View, {
40
+ ...props,
41
+ style: [style, animatedStyle],
42
+ collapsable: false,
43
+ children: children
44
+ })
45
+ });
46
+ };
47
+ Header.displayName = 'CollapsibleTabs.Header';
48
+ export default /*#__PURE__*/memo(Header);
49
+ //# sourceMappingURL=Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useMemo","Platform","Gesture","GestureDetector","Animated","clamp","useAnimatedStyle","withDecay","useCollapsibleTabsContext","jsx","_jsx","DECELERATION","OS","Header","children","style","props","headerOffset","staticHeight","offsetAdjustment","panGesture","Pan","activeOffsetY","failOffsetX","maxPointers","onChange","evt","minOffset","value","changeY","onEnd","velocity","velocityY","rubberBandEffect","deceleration","animatedStyle","transform","translateY","gesture","View","collapsable","displayName"],"sourceRoot":"..\\..\\src","sources":["Header.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,OAAO,QAAQ,OAAO;AAErC,SAASC,QAAQ,QAAmB,cAAc;AAElD,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA8B;AACvE,OAAOC,QAAQ,IAAIC,KAAK,EAAEC,gBAAgB,EAAEC,SAAS,QAAQ,yBAAyB;AAEtF,SAASC,yBAAyB,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtD,MAAMC,YAAY,GAAGV,QAAQ,CAACW,EAAE,KAAK,SAAS,GAAG,KAAK,GAAG,KAAK;AAE9D,MAAMC,MAAM,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAiB,CAAC,KAAK;EAC3D,MAAM;IAAEC,YAAY;IAAEC,YAAY;IAAEC;EAAiB,CAAC,GAAGX,yBAAyB,CAAC,CAAC;EAEpF,MAAMY,UAAU,GAAGpB,OAAO,CACxB,MACEE,OAAO,CAACmB,GAAG,CAAC,CAAC,CACVC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACtBC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACpBC,WAAW,CAAC,CAAC,CAAC,CACdC,QAAQ,CAAEC,GAAG,IAAK;IACjB,MAAMC,SAAS,GAAG,EAAET,YAAY,CAACU,KAAK,GAAGT,gBAAgB,CAACS,KAAK,CAAC;IAChEX,YAAY,CAACW,KAAK,GAAGvB,KAAK,CAACY,YAAY,CAACW,KAAK,GAAGF,GAAG,CAACG,OAAO,EAAEF,SAAS,EAAE,CAAC,CAAC;EAC5E,CAAC,CAAC,CACDG,KAAK,CAAEJ,GAAG,IAAK;IACd,MAAMC,SAAS,GAAG,EAAET,YAAY,CAACU,KAAK,GAAGT,gBAAgB,CAACS,KAAK,CAAC;IAChEX,YAAY,CAACW,KAAK,GAAGrB,SAAS,CAAC;MAAEwB,QAAQ,EAAEL,GAAG,CAACM,SAAS;MAAEC,gBAAgB,EAAE,KAAK;MAAE5B,KAAK,EAAE,CAACsB,SAAS,EAAE,CAAC,CAAC;MAAEO,YAAY,EAAEvB;IAAa,CAAC,CAAC;EACzI,CAAC,CAAC,EACN,CAACM,YAAY,EAAEE,gBAAgB,EAAED,YAAY,CAC/C,CAAC;EAED,MAAMiB,aAAa,GAAG7B,gBAAgB,CAAC,OAAO;IAAE8B,SAAS,EAAE,CAAC;MAAEC,UAAU,EAAEpB,YAAY,CAACW;IAAM,CAAC;EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;EAEvG,oBACElB,IAAA,CAACP,eAAe;IAACmC,OAAO,EAAElB,UAAW;IAAAN,QAAA,eACnCJ,IAAA,CAACN,QAAQ,CAACmC,IAAI;MAAA,GAAKvB,KAAK;MAAED,KAAK,EAAE,CAACA,KAAK,EAAEoB,aAAa,CAAE;MAACK,WAAW,EAAE,KAAM;MAAA1B,QAAA,EACzEA;IAAQ,CACI;EAAC,CACD,CAAC;AAEtB,CAAC;AAEDD,MAAM,CAAC4B,WAAW,GAAG,wBAAwB;AAE7C,4BAAe1C,IAAI,CAACc,MAAM,CAAC","ignoreList":[]}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ import { memo } from "react";
4
+ import { PixelRatio, StyleSheet } from "react-native";
5
+ import Animated, { interpolate, useAnimatedStyle, useDerivedValue } from "react-native-reanimated";
6
+ import { useCollapsibleTabsContext } from "./Context";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export const MaterialIndicator = /*#__PURE__*/memo(({
9
+ style,
10
+ color = "#111827",
11
+ borderRadius = 999,
12
+ ...props
13
+ }) => {
14
+ const {
15
+ itemLayout,
16
+ pageDecimal
17
+ } = useCollapsibleTabsContext();
18
+ const data = useDerivedValue(() => {
19
+ if (!itemLayout || itemLayout.length === 0) return {
20
+ input: [],
21
+ width: [],
22
+ translateX: []
23
+ };
24
+ const input = new Array(itemLayout.length);
25
+ const translateX = new Array(itemLayout.length);
26
+ const width = new Array(itemLayout.length);
27
+ for (let index = 0; index < itemLayout.length; index += 1) {
28
+ const item = itemLayout[index];
29
+ input[index] = index;
30
+ translateX[index] = item.x;
31
+ width[index] = item.width;
32
+ }
33
+ return {
34
+ input,
35
+ translateX,
36
+ width
37
+ };
38
+ }, [itemLayout]);
39
+ const animatedStyles = useAnimatedStyle(() => {
40
+ if (data.value.input.length === 0 || data.value.width.length === 0 || data.value.translateX.length === 0) return {
41
+ opacity: 0,
42
+ width: 0
43
+ };
44
+ if (data.value.input.length === 1) return {
45
+ opacity: 1,
46
+ width: data.value.width[0],
47
+ transform: [{
48
+ translateX: data.value.translateX[0]
49
+ }]
50
+ };
51
+ return {
52
+ opacity: 1,
53
+ width: interpolate(pageDecimal.value, data.value.input, data.value.width, "clamp"),
54
+ transform: [{
55
+ translateX: interpolate(pageDecimal.value, data.value.input, data.value.translateX, "clamp")
56
+ }]
57
+ };
58
+ }, []);
59
+ return /*#__PURE__*/_jsx(Animated.View, {
60
+ style: [styles.indicator, {
61
+ backgroundColor: color,
62
+ borderRadius
63
+ }, style, animatedStyles],
64
+ ...props
65
+ });
66
+ });
67
+ export const SegmentIndicator = /*#__PURE__*/memo(({
68
+ style,
69
+ color = "#ffffff",
70
+ borderRadius = 999,
71
+ ...props
72
+ }) => {
73
+ const {
74
+ itemLayout,
75
+ pageDecimal
76
+ } = useCollapsibleTabsContext();
77
+ const data = useDerivedValue(() => {
78
+ if (!itemLayout || itemLayout.length === 0) return {
79
+ input: [],
80
+ width: [],
81
+ translateX: [],
82
+ height: []
83
+ };
84
+ const input = new Array(itemLayout.length);
85
+ const translateX = new Array(itemLayout.length);
86
+ const width = new Array(itemLayout.length);
87
+ const height = new Array(itemLayout.length);
88
+ for (let index = 0; index < itemLayout.length; index += 1) {
89
+ const item = itemLayout[index];
90
+ input[index] = index;
91
+ translateX[index] = item.x;
92
+ width[index] = item.width;
93
+ height[index] = item.height;
94
+ }
95
+ return {
96
+ input,
97
+ translateX,
98
+ width,
99
+ height
100
+ };
101
+ }, [itemLayout]);
102
+ const animatedStyles = useAnimatedStyle(() => {
103
+ const input = data.value.input;
104
+ const width = data.value.width;
105
+ const translateX = data.value.translateX;
106
+ const height = data.value.height;
107
+ if (input.length === 0 || width.length === 0 || translateX.length === 0) return {
108
+ opacity: 0,
109
+ width: 0
110
+ };
111
+ if (input.length === 1) return {
112
+ opacity: 1,
113
+ width: width[0],
114
+ transform: [{
115
+ translateX: translateX[0]
116
+ }],
117
+ height: height[0]
118
+ };
119
+ return {
120
+ opacity: 1,
121
+ width: interpolate(pageDecimal.value, input, width, "clamp"),
122
+ transform: [{
123
+ translateX: interpolate(pageDecimal.value, input, translateX, "clamp")
124
+ }],
125
+ height: height[0]
126
+ };
127
+ }, []);
128
+ return /*#__PURE__*/_jsx(Animated.View, {
129
+ style: [styles.segment, {
130
+ backgroundColor: color,
131
+ borderRadius
132
+ }, style, animatedStyles],
133
+ ...props
134
+ });
135
+ });
136
+ MaterialIndicator.displayName = "CollapsibleTabs.MaterialIndicator";
137
+ SegmentIndicator.displayName = "CollapsibleTabs.SegmentIndicator";
138
+ const styles = StyleSheet.create({
139
+ indicator: {
140
+ height: PixelRatio.roundToNearestPixel(3),
141
+ position: "absolute",
142
+ left: 0,
143
+ bottom: 0
144
+ },
145
+ segment: {
146
+ position: "absolute",
147
+ left: 0,
148
+ zIndex: 0
149
+ }
150
+ });
151
+ //# sourceMappingURL=Indicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","PixelRatio","StyleSheet","Animated","interpolate","useAnimatedStyle","useDerivedValue","useCollapsibleTabsContext","jsx","_jsx","MaterialIndicator","style","color","borderRadius","props","itemLayout","pageDecimal","data","length","input","width","translateX","Array","index","item","x","animatedStyles","value","opacity","transform","View","styles","indicator","backgroundColor","SegmentIndicator","height","segment","displayName","create","roundToNearestPixel","position","left","bottom","zIndex"],"sourceRoot":"..\\..\\src","sources":["Indicator.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useRef, useState } from 'react';
4
+ import { StyleSheet } from 'react-native';
5
+ import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
6
+ import { useStableCallback } from './useStableCallback';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export function Lazy({
9
+ placeholder,
10
+ renderPlaceholder,
11
+ placeholderStyle,
12
+ placeholderProps,
13
+ containerProps,
14
+ disableEntering = false,
15
+ disableExiting = false,
16
+ entering,
17
+ exiting,
18
+ enteringDuration,
19
+ enteringDelay,
20
+ exitingDuration = 300,
21
+ focused,
22
+ duration = 200,
23
+ delay = 50,
24
+ onMount,
25
+ children,
26
+ style
27
+ }) {
28
+ const [canMount, setCanMount] = useState(false);
29
+ const mountNotifiedRef = useRef(false);
30
+ const stableOnMount = useStableCallback(onMount);
31
+ useEffect(() => {
32
+ if (focused) {
33
+ setCanMount(true);
34
+ if (!mountNotifiedRef.current) {
35
+ mountNotifiedRef.current = true;
36
+ stableOnMount();
37
+ }
38
+ }
39
+ }, [focused, stableOnMount]);
40
+ const placeholderPointerEvents = placeholderProps?.pointerEvents ?? 'box-none';
41
+ const {
42
+ style: placeholderContainerStyle,
43
+ pointerEvents: _placeholderPointerEvents,
44
+ ...restPlaceholderProps
45
+ } = placeholderProps ?? {};
46
+ const {
47
+ style: containerStyle,
48
+ ...restContainerProps
49
+ } = containerProps ?? {};
50
+ const enteringAnimation = disableEntering || entering === null ? undefined : entering ?? FadeIn.duration(enteringDuration ?? duration).delay(enteringDelay ?? delay);
51
+ const exitingAnimation = disableExiting || exiting === null ? undefined : exiting ?? FadeOut.duration(exitingDuration);
52
+ if (!canMount) {
53
+ return /*#__PURE__*/_jsx(Animated.View, {
54
+ ...restPlaceholderProps,
55
+ exiting: exitingAnimation,
56
+ style: [styles.placeholder, placeholderStyle, placeholderContainerStyle],
57
+ pointerEvents: placeholderPointerEvents,
58
+ children: renderPlaceholder ? renderPlaceholder({
59
+ focused,
60
+ canMount
61
+ }) : placeholder
62
+ });
63
+ }
64
+ return /*#__PURE__*/_jsx(Animated.View, {
65
+ ...restContainerProps,
66
+ entering: enteringAnimation,
67
+ style: [styles.container, style, containerStyle],
68
+ children: children
69
+ });
70
+ }
71
+ const styles = StyleSheet.create({
72
+ container: {
73
+ width: '100%',
74
+ flex: 1,
75
+ height: '100%'
76
+ },
77
+ placeholder: {
78
+ paddingVertical: 12,
79
+ width: '100%'
80
+ }
81
+ });
82
+ //# sourceMappingURL=Lazy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","useState","StyleSheet","Animated","FadeIn","FadeOut","useStableCallback","jsx","_jsx","Lazy","placeholder","renderPlaceholder","placeholderStyle","placeholderProps","containerProps","disableEntering","disableExiting","entering","exiting","enteringDuration","enteringDelay","exitingDuration","focused","duration","delay","onMount","children","style","canMount","setCanMount","mountNotifiedRef","stableOnMount","current","placeholderPointerEvents","pointerEvents","placeholderContainerStyle","_placeholderPointerEvents","restPlaceholderProps","containerStyle","restContainerProps","enteringAnimation","undefined","exitingAnimation","View","styles","container","create","width","flex","height","paddingVertical"],"sourceRoot":"..\\..\\src","sources":["Lazy.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ import { memo, useCallback, useEffect, useMemo } from "react";
4
+ import { LegendList } from "@legendapp/list/react-native";
5
+ import { StyleSheet, View } from "react-native";
6
+ import { GestureDetector } from "react-native-gesture-handler";
7
+ import Animated, { useAnimatedReaction, useAnimatedRef, useAnimatedScrollHandler, useComposedEventHandler, useSharedValue } from "react-native-reanimated";
8
+ import { useCollapsibleTabsContext } from "./Context";
9
+ import { useTabSelfContext } from "./Tab";
10
+ import { useStableCallback } from "./useStableCallback";
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ const AnimatedLegendList = Animated.createAnimatedComponent(LegendList);
13
+ const CollapsibleLegendList = ({
14
+ onLayout,
15
+ onContentSizeChange,
16
+ ...props
17
+ }) => {
18
+ const {
19
+ listGestures,
20
+ activeTabIndex,
21
+ activeListOffset,
22
+ registerListScroller
23
+ } = useCollapsibleTabsContext();
24
+ const {
25
+ index
26
+ } = useTabSelfContext();
27
+ const selfOffset = useSharedValue(0);
28
+ const listRef = useAnimatedRef();
29
+ const onScroll = useAnimatedScrollHandler(event => {
30
+ selfOffset.value = event.contentOffset.y;
31
+ if (activeTabIndex.value === index) activeListOffset.value = event.contentOffset.y;
32
+ });
33
+ const composedScrollEvent = useComposedEventHandler(props.onScroll ? [onScroll, props.onScroll] : [onScroll]);
34
+ useAnimatedReaction(() => activeTabIndex.value, value => {
35
+ if (value === index) activeListOffset.value = selfOffset.value;
36
+ }, [index]);
37
+ const scroller = useMemo(() => (animated = true) => {
38
+ listRef.current?.scrollToOffset({
39
+ offset: 0,
40
+ animated
41
+ });
42
+ }, [listRef]);
43
+ useEffect(() => {
44
+ registerListScroller(index, scroller);
45
+ return () => registerListScroller(index, null);
46
+ }, [index, registerListScroller, scroller]);
47
+ const stableLayout = useStableCallback(onLayout);
48
+ const stableContentSizeChange = useStableCallback(onContentSizeChange);
49
+ const handleLayout = useCallback(event => {
50
+ stableLayout?.(event);
51
+ }, [stableLayout]);
52
+ const handleContentSizeChange = useCallback((width, height) => {
53
+ stableContentSizeChange?.(width, height);
54
+ }, [stableContentSizeChange]);
55
+ return /*#__PURE__*/_jsx(View, {
56
+ style: styles.view,
57
+ collapsable: false,
58
+ children: /*#__PURE__*/_jsx(GestureDetector, {
59
+ gesture: listGestures[index],
60
+ children: /*#__PURE__*/_jsx(AnimatedLegendList, {
61
+ ref: listRef,
62
+ scrollEventThrottle: 16,
63
+ showsVerticalScrollIndicator: true,
64
+ directionalLockEnabled: true,
65
+ keyboardShouldPersistTaps: "handled",
66
+ ...props,
67
+ onScroll: composedScrollEvent,
68
+ onLayout: handleLayout,
69
+ onContentSizeChange: handleContentSizeChange
70
+ })
71
+ })
72
+ });
73
+ };
74
+ const styles = StyleSheet.create({
75
+ view: {
76
+ position: "relative"
77
+ }
78
+ });
79
+ CollapsibleLegendList.displayName = "CollapsibleTabs.CollapsibleLegendList";
80
+ export default /*#__PURE__*/memo(CollapsibleLegendList);
81
+ //# sourceMappingURL=LegendList.js.map