@r0b0t3d/react-native-collapsible 1.5.0-alpha.2 → 1.5.0-alpha.4

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 (41) hide show
  1. package/lib/commonjs/components/CollapsibleContainer.js +8 -9
  2. package/lib/commonjs/components/CollapsibleContainer.js.map +1 -1
  3. package/lib/commonjs/index.js +0 -8
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/commonjs/{components/scrollable → plugins}/CollapsibleFlashList.js +9 -18
  6. package/lib/commonjs/plugins/CollapsibleFlashList.js.map +1 -0
  7. package/lib/commonjs/plugins/CollapsibleLegendList.js +115 -0
  8. package/lib/commonjs/plugins/CollapsibleLegendList.js.map +1 -0
  9. package/lib/commonjs/withCollapsibleContext.js +2 -5
  10. package/lib/commonjs/withCollapsibleContext.js.map +1 -1
  11. package/lib/module/components/CollapsibleContainer.js +9 -10
  12. package/lib/module/components/CollapsibleContainer.js.map +1 -1
  13. package/lib/module/index.js +0 -1
  14. package/lib/module/index.js.map +1 -1
  15. package/lib/module/{components/scrollable → plugins}/CollapsibleFlashList.js +9 -18
  16. package/lib/module/plugins/CollapsibleFlashList.js.map +1 -0
  17. package/lib/module/plugins/CollapsibleLegendList.js +107 -0
  18. package/lib/module/plugins/CollapsibleLegendList.js.map +1 -0
  19. package/lib/module/withCollapsibleContext.js +2 -5
  20. package/lib/module/withCollapsibleContext.js.map +1 -1
  21. package/lib/typescript/components/CollapsibleContainer.d.ts.map +1 -1
  22. package/lib/typescript/index.d.ts +0 -1
  23. package/lib/typescript/index.d.ts.map +1 -1
  24. package/lib/typescript/plugins/CollapsibleFlashList.d.ts +7 -0
  25. package/lib/typescript/plugins/CollapsibleFlashList.d.ts.map +1 -0
  26. package/lib/typescript/plugins/CollapsibleLegendList.d.ts +7 -0
  27. package/lib/typescript/plugins/CollapsibleLegendList.d.ts.map +1 -0
  28. package/lib/typescript/types.d.ts +1 -1
  29. package/lib/typescript/types.d.ts.map +1 -1
  30. package/lib/typescript/withCollapsibleContext.d.ts.map +1 -1
  31. package/package.json +3 -4
  32. package/src/components/CollapsibleContainer.tsx +7 -13
  33. package/src/index.tsx +0 -1
  34. package/src/{components/scrollable → plugins}/CollapsibleFlashList.tsx +9 -25
  35. package/src/plugins/CollapsibleLegendList.tsx +123 -0
  36. package/src/types.ts +1 -1
  37. package/src/withCollapsibleContext.tsx +1 -6
  38. package/lib/commonjs/components/scrollable/CollapsibleFlashList.js.map +0 -1
  39. package/lib/module/components/scrollable/CollapsibleFlashList.js.map +0 -1
  40. package/lib/typescript/components/scrollable/CollapsibleFlashList.d.ts +0 -7
  41. package/lib/typescript/components/scrollable/CollapsibleFlashList.d.ts.map +0 -1
@@ -0,0 +1,107 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ /* eslint-disable react-hooks/exhaustive-deps */
3
+ import React, { useCallback, useEffect, useRef } from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { runOnJS, useAnimatedProps, useAnimatedReaction, useSharedValue } from 'react-native-reanimated';
6
+ import useAnimatedScroll from '../components/scrollable/useAnimatedScroll';
7
+ import useInternalCollapsibleContext from '../hooks/useInternalCollapsibleContext';
8
+ import AnimatedTopView from '../components/header/AnimatedTopView';
9
+ import useCollapsibleContext from '../hooks/useCollapsibleContext';
10
+ import { AnimatedLegendList } from '@legendapp/list/reanimated';
11
+ export default function CollapsibleLegendList(_ref) {
12
+ let {
13
+ headerSnappable = true,
14
+ ...props
15
+ } = _ref;
16
+ const {
17
+ headerHeight
18
+ } = useCollapsibleContext();
19
+ const {
20
+ scrollViewRef,
21
+ fixedHeaderHeight
22
+ } = useInternalCollapsibleContext();
23
+ const mounted = useRef(true);
24
+ const internalProgressViewOffset = useSharedValue(0);
25
+ useEffect(() => {
26
+ return () => {
27
+ mounted.current = false;
28
+ };
29
+ }, []);
30
+ const scrollTo = useCallback(function (yValue) {
31
+ var _scrollViewRef$curren;
32
+ let animated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
33
+ (_scrollViewRef$curren = scrollViewRef.current) === null || _scrollViewRef$curren === void 0 ? void 0 : _scrollViewRef$curren.scrollToOffset({
34
+ offset: yValue,
35
+ animated
36
+ });
37
+ }, []);
38
+ const scrollToIndex = useCallback(params => {
39
+ var _scrollViewRef$curren2;
40
+ (_scrollViewRef$curren2 = scrollViewRef.current) === null || _scrollViewRef$curren2 === void 0 ? void 0 : _scrollViewRef$curren2.scrollToIndex(params);
41
+ }, []);
42
+ const scrollToLocation = useCallback(() => {
43
+ console.warn('CollapsibleLegendList does not support scrollToLocation');
44
+ }, []);
45
+ const {
46
+ scrollHandler
47
+ } = useAnimatedScroll({
48
+ headerSnappable,
49
+ scrollTo,
50
+ scrollToIndex,
51
+ scrollToLocation
52
+ });
53
+ const handleInternalProgressViewOffset = useCallback(value => {
54
+ if (mounted.current) {
55
+ internalProgressViewOffset.value = value;
56
+ }
57
+ }, []);
58
+ useAnimatedReaction(() => {
59
+ return fixedHeaderHeight.value;
60
+ }, (result, previous) => {
61
+ if (result !== previous) {
62
+ runOnJS(handleInternalProgressViewOffset)(result);
63
+ }
64
+ });
65
+ const handleScrollToIndexFailed = useCallback(() => {}, []);
66
+ function renderListHeader() {
67
+ return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(AnimatedTopView, {
68
+ height: headerHeight
69
+ }), props.ListHeaderComponent);
70
+ }
71
+ const animatedProps = useAnimatedProps(() => {
72
+ return {
73
+ progressViewOffset: internalProgressViewOffset.value
74
+ };
75
+ });
76
+ return /*#__PURE__*/React.createElement(View, {
77
+ style: [styles.container, props.style]
78
+ }, /*#__PURE__*/React.createElement(AnimatedLegendList, _extends({
79
+ ref: scrollViewRef,
80
+ keyboardDismissMode: "on-drag",
81
+ keyboardShouldPersistTaps: "handled",
82
+ scrollEventThrottle: 1,
83
+ onScrollToIndexFailed: handleScrollToIndexFailed
84
+ }, props, {
85
+ onScroll: scrollHandler,
86
+ ListHeaderComponent: renderListHeader()
87
+ //@ts-ignore
88
+ ,
89
+ simultaneousHandlers: [],
90
+ animatedProps: animatedProps
91
+ })));
92
+ }
93
+ const styles = StyleSheet.create({
94
+ container: {
95
+ ...StyleSheet.absoluteFillObject
96
+ },
97
+ contentContainer: {
98
+ flexGrow: 1
99
+ },
100
+ topView: {
101
+ position: 'absolute',
102
+ top: 0,
103
+ left: 0,
104
+ right: 0
105
+ }
106
+ });
107
+ //# sourceMappingURL=CollapsibleLegendList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useEffect","useRef","View","StyleSheet","runOnJS","useAnimatedProps","useAnimatedReaction","useSharedValue","useAnimatedScroll","useInternalCollapsibleContext","AnimatedTopView","useCollapsibleContext","AnimatedLegendList","CollapsibleLegendList","_ref","headerSnappable","props","headerHeight","scrollViewRef","fixedHeaderHeight","mounted","internalProgressViewOffset","current","scrollTo","yValue","_scrollViewRef$curren","animated","arguments","length","undefined","scrollToOffset","offset","scrollToIndex","params","_scrollViewRef$curren2","scrollToLocation","console","warn","scrollHandler","handleInternalProgressViewOffset","value","result","previous","handleScrollToIndexFailed","renderListHeader","createElement","height","ListHeaderComponent","animatedProps","progressViewOffset","style","styles","container","_extends","ref","keyboardDismissMode","keyboardShouldPersistTaps","scrollEventThrottle","onScrollToIndexFailed","onScroll","simultaneousHandlers","create","absoluteFillObject","contentContainer","flexGrow","topView","position","top","left","right"],"sourceRoot":"../../../src","sources":["plugins/CollapsibleLegendList.tsx"],"mappings":"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"}
@@ -49,9 +49,6 @@ export default function withCollapsibleContext(Component) {
49
49
  }
50
50
  headerViewPositions.value = values;
51
51
  }, []);
52
- const handleContainerHeight = useCallback(height => {
53
- containerHeight.value = height;
54
- }, []);
55
52
  const handleScrollToView = useCallback((ref, animated) => {
56
53
  if (!ref.current) {
57
54
  return;
@@ -103,15 +100,15 @@ export default function withCollapsibleContext(Component) {
103
100
  }, [scrollY, headerHeight, headerCollapsed, handleScrollToView]);
104
101
  const internalContext = useMemo(() => ({
105
102
  containerRef,
103
+ containerHeight,
106
104
  scrollViewRef,
107
105
  handleHeaderContainerLayout,
108
106
  setCollapsibleHandlers,
109
- handleContainerHeight,
110
107
  headerHeight,
111
108
  fixedHeaderHeight,
112
109
  contentMinHeight,
113
110
  headerViewPositions
114
- }), [setCollapsibleHandlers, handleHeaderContainerLayout, handleContainerHeight, headerHeight, fixedHeaderHeight, contentMinHeight, headerViewPositions]);
111
+ }), [setCollapsibleHandlers, handleHeaderContainerLayout, headerHeight, fixedHeaderHeight, contentMinHeight, headerViewPositions]);
115
112
  return /*#__PURE__*/React.createElement(CollapsibleContext.Provider, {
116
113
  value: context
117
114
  }, /*#__PURE__*/React.createElement(InternalCollapsibleContext.Provider, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","useRef","CollapsibleContext","InternalCollapsibleContext","useDerivedValue","useSharedValue","withCollapsibleContext","Component","props","collapsibleHandlers","headerHeight","scrollY","fixedHeaderHeight","containerHeight","scrollViewRef","containerRef","headerContainerLayouts","headerViewPositions","setCollapsibleHandlers","handlers","current","headerCollapsed","maxY","value","contentMinHeight","handleHeaderContainerLayout","key","layout","stickyHeight","undefined","headerContainers","Object","keys","filter","k","sortedHeaders","sort","a","b","_headerContainerLayou","_headerContainerLayou2","y","values","aStickyHeight","index","length","_headerContainerLayou3","headerKey","sHeight","top","handleContainerHeight","height","handleScrollToView","ref","animated","measureLayout","_left","_width","_height","_collapsibleHandlers$","stickyHeightAbove","reduce","acc","scrollTo","context","collapse","_collapsibleHandlers$2","expand","_collapsibleHandlers$3","offset","animate","_collapsibleHandlers$4","scrollToIndex","params","_collapsibleHandlers$5","scrollToLocation","_collapsibleHandlers$6","scrollToView","internalContext","createElement","Provider"],"sourceRoot":"../../src","sources":["withCollapsibleContext.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","useCallback","useMemo","useRef","CollapsibleContext","InternalCollapsibleContext","useDerivedValue","useSharedValue","withCollapsibleContext","Component","props","collapsibleHandlers","headerHeight","scrollY","fixedHeaderHeight","containerHeight","scrollViewRef","containerRef","headerContainerLayouts","headerViewPositions","setCollapsibleHandlers","handlers","current","headerCollapsed","maxY","value","contentMinHeight","handleHeaderContainerLayout","key","layout","stickyHeight","undefined","headerContainers","Object","keys","filter","k","sortedHeaders","sort","a","b","_headerContainerLayou","_headerContainerLayou2","y","values","aStickyHeight","index","length","_headerContainerLayou3","headerKey","sHeight","top","handleScrollToView","ref","animated","measureLayout","_left","_width","_height","_collapsibleHandlers$","height","stickyHeightAbove","reduce","acc","scrollTo","context","collapse","_collapsibleHandlers$2","expand","_collapsibleHandlers$3","offset","animate","_collapsibleHandlers$4","scrollToIndex","params","_collapsibleHandlers$5","scrollToLocation","_collapsibleHandlers$6","scrollToView","internalContext","createElement","Provider"],"sourceRoot":"../../src","sources":["withCollapsibleContext.tsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsibleContainer.d.ts","sourceRoot":"","sources":["../../../src/components/CollapsibleContainer.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAEL,yBAAyB,EAIzB,SAAS,EACV,MAAM,cAAc,CAAC;AAMtB,KAAK,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,QAAQ,EACR,yBAAyB,EACzB,aAAkB,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,qBAuDP"}
1
+ {"version":3,"file":"CollapsibleContainer.d.ts","sourceRoot":"","sources":["../../../src/components/CollapsibleContainer.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAC/C,OAAO,EAEL,yBAAyB,EAGzB,SAAS,EACV,MAAM,cAAc,CAAC;AAMtB,KAAK,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,QAAQ,EACR,yBAAyB,EACzB,aAAkB,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,qBAkDP"}
@@ -2,7 +2,6 @@ export { default as withCollapsibleContext } from './withCollapsibleContext';
2
2
  export { default as useCollapsibleContext } from './hooks/useCollapsibleContext';
3
3
  export { default as CollapsibleContainer } from './components/CollapsibleContainer';
4
4
  export { default as CollapsibleFlatList } from './components/scrollable/CollapsibleFlatList';
5
- export { default as CollapsibleFlashList } from './components/scrollable/CollapsibleFlashList';
6
5
  export { default as CollapsibleScrollView } from './components/scrollable/CollapsibleScrollView';
7
6
  export { default as CollapsibleSectionList } from './components/scrollable/CollapsibleSectionList';
8
7
  export { default as CollapsibleHeaderContainer } from './components/header/CollapsibleHeaderContainer';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEjF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACjG,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACnG,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AACvG,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEjF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACjG,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACnG,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AACvG,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { CollapsibleProps } from '../types';
3
+ import { FlashListProps } from '@shopify/flash-list';
4
+ type Props<Data> = FlashListProps<Data> & CollapsibleProps;
5
+ export default function CollapsibleFlashList<Data>({ headerSnappable, ...props }: Props<Data>): React.JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=CollapsibleFlashList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsibleFlashList.d.ts","sourceRoot":"","sources":["../../../src/plugins/CollapsibleFlashList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAQxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD,OAAO,EAAa,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIhE,KAAK,KAAK,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;AAE3D,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,IAAI,EAAE,EACjD,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,IAAI,CAAC,qBAiFb"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { FlatListProps } from 'react-native';
3
+ import type { CollapsibleProps } from '../types';
4
+ type Props<Data> = FlatListProps<Data> & CollapsibleProps;
5
+ export default function CollapsibleLegendList<Data>({ headerSnappable, ...props }: Props<Data>): React.JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=CollapsibleLegendList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsibleLegendList.d.ts","sourceRoot":"","sources":["../../../src/plugins/CollapsibleLegendList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAoB,aAAa,EAAE,MAAM,cAAc,CAAC;AAS/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAKjD,KAAK,KAAK,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,IAAI,EAAE,EAClD,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,IAAI,CAAC,qBAsFb"}
@@ -44,6 +44,7 @@ export type LayoutParams = {
44
44
  export type CollapsibleContextInternalType = {
45
45
  scrollViewRef: React.RefObject<any>;
46
46
  containerRef: React.RefObject<any>;
47
+ containerHeight: Animated.SharedValue<number>;
47
48
  contentMinHeight: Animated.SharedValue<number>;
48
49
  headerViewPositions: Animated.SharedValue<Record<string, {
49
50
  top: number;
@@ -51,7 +52,6 @@ export type CollapsibleContextInternalType = {
51
52
  }>>;
52
53
  fixedHeaderHeight: Animated.SharedValue<number>;
53
54
  headerHeight: Animated.SharedValue<number>;
54
- handleContainerHeight: (height: number) => void;
55
55
  handleHeaderContainerLayout: (key: string, layout?: LayoutRectangle, stickyHeight?: number) => void;
56
56
  setCollapsibleHandlers: (handlers: CollapsibleHandles) => void;
57
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;OAIG;IACH,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;;OAGG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,aAAa,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrD,gBAAgB,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG;IACxD,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/C;;;;;OAKG;IACH,YAAY,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnC,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CACvC,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CACtD,CAAC;IACF,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,2BAA2B,EAAE,CAC3B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,eAAe,EACxB,YAAY,CAAC,EAAE,MAAM,KAClB,IAAI,CAAC;IACV,sBAAsB,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAClD,cAAc,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;CAC9C,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;OAIG;IACH,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;;OAGG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,aAAa,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrD,gBAAgB,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG;IACxD,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/C;;;;;OAKG;IACH,YAAY,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnC,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CACvC,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CACtD,CAAC;IACF,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,2BAA2B,EAAE,CAC3B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,eAAe,EACxB,YAAY,CAAC,EAAE,MAAM,KAClB,IAAI,CAAC;IACV,sBAAsB,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAClD,cAAc,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;CAC9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"withCollapsibleContext.d.ts","sourceRoot":"","sources":["../../src/withCollapsibleContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAgC,EAAE,EAAE,MAAM,OAAO,CAAC;AAOhE,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WACjD,CAAC,uBAoJjB"}
1
+ {"version":3,"file":"withCollapsibleContext.d.ts","sourceRoot":"","sources":["../../src/withCollapsibleContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAgC,EAAE,EAAE,MAAM,OAAO,CAAC;AAOhE,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WACjD,CAAC,uBA+IjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@r0b0t3d/react-native-collapsible",
3
- "version": "1.5.0-alpha.2",
3
+ "version": "1.5.0-alpha.4",
4
4
  "description": "Fully customizable collapsible views",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -53,9 +53,10 @@
53
53
  "devDependencies": {
54
54
  "@commitlint/config-conventional": "^17.0.2",
55
55
  "@evilmartians/lefthook": "^1.2.2",
56
+ "@legendapp/list": "^1.0.7",
56
57
  "@react-native-community/eslint-config": "^3.0.2",
57
58
  "@release-it/conventional-changelog": "^5.0.0",
58
- "@shopify/flash-list": "^1.6.1",
59
+ "@shopify/flash-list": "^1.8.0",
59
60
  "@types/jest": "^28.1.2",
60
61
  "@types/react": "~17.0.21",
61
62
  "@types/react-native": "0.70.0",
@@ -78,7 +79,6 @@
78
79
  "@types/react": "17.0.21"
79
80
  },
80
81
  "peerDependencies": {
81
- "@shopify/flash-list": "*",
82
82
  "react": "*",
83
83
  "react-native": "*",
84
84
  "react-native-gesture-handler": "*",
@@ -87,7 +87,6 @@
87
87
  "engines": {
88
88
  "node": ">= 16.0.0"
89
89
  },
90
- "packageManager": "^yarn@1.22.15",
91
90
  "jest": {
92
91
  "preset": "react-native",
93
92
  "modulePathIgnorePatterns": [
@@ -1,9 +1,8 @@
1
1
  /* eslint-disable react-hooks/exhaustive-deps */
2
- import React, { useCallback, useRef } from 'react';
2
+ import React, { useLayoutEffect } from 'react';
3
3
  import {
4
4
  KeyboardAvoidingView,
5
5
  KeyboardAvoidingViewProps,
6
- LayoutChangeEvent,
7
6
  StyleSheet,
8
7
  View,
9
8
  ViewProps,
@@ -25,12 +24,9 @@ export default function CollapsibleContainer({
25
24
  textInputRefs = [],
26
25
  ...props
27
26
  }: Props) {
28
- const { handleContainerHeight, containerRef } =
29
- useInternalCollapsibleContext();
27
+ const { containerHeight, containerRef } = useInternalCollapsibleContext();
30
28
  const { scrollY, scrollTo } = useCollapsibleContext();
31
29
 
32
- const containerHeight = useRef(0);
33
-
34
30
  useKeyboardShowEvent(() => {
35
31
  textInputRefs.some((ref) => {
36
32
  const isFocusedFunc = ref.current.isFocused;
@@ -43,10 +39,10 @@ export default function CollapsibleContainer({
43
39
  // @ts-ignore
44
40
  containerRef.current,
45
41
  (_left: number, top: number, _width: number, height: number) => {
46
- if (top + height - scrollY.value > containerHeight.current) {
42
+ if (top + height - scrollY.value > containerHeight.value) {
47
43
  const extraOffset =
48
44
  keyboardAvoidingViewProps?.keyboardVerticalOffset ?? 20;
49
- scrollTo(top + height + extraOffset - containerHeight.current);
45
+ scrollTo(top + height + extraOffset - containerHeight.value);
50
46
  }
51
47
  },
52
48
  () => {}
@@ -56,10 +52,9 @@ export default function CollapsibleContainer({
56
52
  });
57
53
  });
58
54
 
59
- const handleContainerLayout = useCallback((layout: LayoutChangeEvent) => {
60
- const height = layout.nativeEvent.layout.height;
61
- containerHeight.current = height;
62
- handleContainerHeight(height);
55
+ useLayoutEffect(() => {
56
+ const { height } = containerRef.current.unstable_getBoundingClientRect();
57
+ containerHeight.value = height;
63
58
  }, []);
64
59
 
65
60
  return (
@@ -72,7 +67,6 @@ export default function CollapsibleContainer({
72
67
  {...props}
73
68
  ref={containerRef}
74
69
  style={[styles.container, props.style]}
75
- onLayout={handleContainerLayout}
76
70
  collapsable={false}
77
71
  >
78
72
  <CollapsibleHeaderConsumer>{children}</CollapsibleHeaderConsumer>
package/src/index.tsx CHANGED
@@ -3,7 +3,6 @@ export { default as useCollapsibleContext } from './hooks/useCollapsibleContext'
3
3
 
4
4
  export { default as CollapsibleContainer } from './components/CollapsibleContainer';
5
5
  export { default as CollapsibleFlatList } from './components/scrollable/CollapsibleFlatList';
6
- export { default as CollapsibleFlashList } from './components/scrollable/CollapsibleFlashList';
7
6
  export { default as CollapsibleScrollView } from './components/scrollable/CollapsibleScrollView';
8
7
  export { default as CollapsibleSectionList } from './components/scrollable/CollapsibleSectionList';
9
8
  export { default as CollapsibleHeaderContainer } from './components/header/CollapsibleHeaderContainer';
@@ -4,27 +4,24 @@ import { View, StyleSheet } from 'react-native';
4
4
  import Animated, {
5
5
  runOnJS,
6
6
  useAnimatedReaction,
7
- useDerivedValue,
8
7
  } from 'react-native-reanimated';
8
+ import useAnimatedScroll from '../components/scrollable/useAnimatedScroll';
9
+ import useInternalCollapsibleContext from '../hooks/useInternalCollapsibleContext';
10
+ import type { CollapsibleProps } from '../types';
11
+ import AnimatedTopView from '../components/header/AnimatedTopView';
12
+ import useCollapsibleContext from '../hooks/useCollapsibleContext';
9
13
  import { FlashList, FlashListProps } from '@shopify/flash-list';
10
- import useAnimatedScroll from './useAnimatedScroll';
11
- import useInternalCollapsibleContext from '../../hooks/useInternalCollapsibleContext';
12
- import type { CollapsibleProps } from '../../types';
13
- import AnimatedTopView from '../header/AnimatedTopView';
14
- import useCollapsibleContext from '../../hooks/useCollapsibleContext';
15
14
 
16
15
  const AnimatedFlashList = Animated.createAnimatedComponent(FlashList);
17
16
 
18
- type Props<Data> = Omit<FlashListProps<Data>, 'scrollEnabled'> &
19
- CollapsibleProps;
17
+ type Props<Data> = FlashListProps<Data> & CollapsibleProps;
20
18
 
21
- export default function CollapsibleFlatList<Data>({
19
+ export default function CollapsibleFlashList<Data>({
22
20
  headerSnappable = true,
23
21
  ...props
24
22
  }: Props<Data>) {
25
23
  const { headerHeight } = useCollapsibleContext();
26
- const { scrollViewRef, fixedHeaderHeight, contentMinHeight } =
27
- useInternalCollapsibleContext();
24
+ const { scrollViewRef, fixedHeaderHeight } = useInternalCollapsibleContext();
28
25
  const mounted = useRef(true);
29
26
  const [internalProgressViewOffset, setInternalProgressViewOffset] =
30
27
  useState(0);
@@ -63,10 +60,6 @@ export default function CollapsibleFlatList<Data>({
63
60
  }
64
61
  }, []);
65
62
 
66
- const additionalBottomHeight = useDerivedValue(() => {
67
- return contentMinHeight.value - fixedHeaderHeight.value;
68
- });
69
-
70
63
  useAnimatedReaction(
71
64
  () => {
72
65
  return fixedHeaderHeight.value;
@@ -89,15 +82,6 @@ export default function CollapsibleFlatList<Data>({
89
82
  );
90
83
  }
91
84
 
92
- function renderListFooter() {
93
- return (
94
- <View>
95
- {props.ListFooterComponent}
96
- <AnimatedTopView height={additionalBottomHeight} />
97
- </View>
98
- );
99
- }
100
-
101
85
  return (
102
86
  <View style={[styles.container, props.style]}>
103
87
  <AnimatedFlashList
@@ -107,9 +91,9 @@ export default function CollapsibleFlatList<Data>({
107
91
  scrollEventThrottle={1}
108
92
  onScrollToIndexFailed={handleScrollToIndexFailed}
109
93
  {...props}
94
+ // @ts-ignore
110
95
  onScroll={scrollHandler}
111
96
  ListHeaderComponent={renderListHeader()}
112
- ListFooterComponent={renderListFooter()}
113
97
  //@ts-ignore
114
98
  simultaneousHandlers={[]}
115
99
  progressViewOffset={internalProgressViewOffset}
@@ -0,0 +1,123 @@
1
+ /* eslint-disable react-hooks/exhaustive-deps */
2
+ import React, { useCallback, useEffect, useRef } from 'react';
3
+ import { View, StyleSheet, FlatListProps } from 'react-native';
4
+ import {
5
+ runOnJS,
6
+ useAnimatedProps,
7
+ useAnimatedReaction,
8
+ useSharedValue,
9
+ } from 'react-native-reanimated';
10
+ import useAnimatedScroll from '../components/scrollable/useAnimatedScroll';
11
+ import useInternalCollapsibleContext from '../hooks/useInternalCollapsibleContext';
12
+ import type { CollapsibleProps } from '../types';
13
+ import AnimatedTopView from '../components/header/AnimatedTopView';
14
+ import useCollapsibleContext from '../hooks/useCollapsibleContext';
15
+ import { AnimatedLegendList } from '@legendapp/list/reanimated';
16
+
17
+ type Props<Data> = FlatListProps<Data> & CollapsibleProps;
18
+
19
+ export default function CollapsibleLegendList<Data>({
20
+ headerSnappable = true,
21
+ ...props
22
+ }: Props<Data>) {
23
+ const { headerHeight } = useCollapsibleContext();
24
+ const { scrollViewRef, fixedHeaderHeight } = useInternalCollapsibleContext();
25
+ const mounted = useRef(true);
26
+ const internalProgressViewOffset = useSharedValue(0);
27
+
28
+ useEffect(() => {
29
+ return () => {
30
+ mounted.current = false;
31
+ };
32
+ }, []);
33
+
34
+ const scrollTo = useCallback((yValue: number, animated = true) => {
35
+ scrollViewRef.current?.scrollToOffset({
36
+ offset: yValue,
37
+ animated,
38
+ });
39
+ }, []);
40
+
41
+ const scrollToIndex = useCallback((params) => {
42
+ scrollViewRef.current?.scrollToIndex(params);
43
+ }, []);
44
+
45
+ const scrollToLocation = useCallback(() => {
46
+ console.warn('CollapsibleLegendList does not support scrollToLocation');
47
+ }, []);
48
+
49
+ const { scrollHandler } = useAnimatedScroll({
50
+ headerSnappable,
51
+ scrollTo,
52
+ scrollToIndex,
53
+ scrollToLocation,
54
+ });
55
+
56
+ const handleInternalProgressViewOffset = useCallback((value: number) => {
57
+ if (mounted.current) {
58
+ internalProgressViewOffset.value = value;
59
+ }
60
+ }, []);
61
+
62
+ useAnimatedReaction(
63
+ () => {
64
+ return fixedHeaderHeight.value;
65
+ },
66
+ (result, previous) => {
67
+ if (result !== previous) {
68
+ runOnJS(handleInternalProgressViewOffset)(result);
69
+ }
70
+ }
71
+ );
72
+
73
+ const handleScrollToIndexFailed = useCallback(() => {}, []);
74
+
75
+ function renderListHeader() {
76
+ return (
77
+ <View>
78
+ <AnimatedTopView height={headerHeight} />
79
+ {props.ListHeaderComponent}
80
+ </View>
81
+ );
82
+ }
83
+
84
+ const animatedProps = useAnimatedProps(() => {
85
+ return {
86
+ progressViewOffset: internalProgressViewOffset.value,
87
+ };
88
+ });
89
+
90
+ return (
91
+ <View style={[styles.container, props.style]}>
92
+ {/* @ts-ignore */}
93
+ <AnimatedLegendList
94
+ ref={scrollViewRef}
95
+ keyboardDismissMode="on-drag"
96
+ keyboardShouldPersistTaps="handled"
97
+ scrollEventThrottle={1}
98
+ onScrollToIndexFailed={handleScrollToIndexFailed}
99
+ {...props}
100
+ onScroll={scrollHandler}
101
+ ListHeaderComponent={renderListHeader()}
102
+ //@ts-ignore
103
+ simultaneousHandlers={[]}
104
+ animatedProps={animatedProps}
105
+ />
106
+ </View>
107
+ );
108
+ }
109
+
110
+ const styles = StyleSheet.create({
111
+ container: {
112
+ ...StyleSheet.absoluteFillObject,
113
+ },
114
+ contentContainer: {
115
+ flexGrow: 1,
116
+ },
117
+ topView: {
118
+ position: 'absolute',
119
+ top: 0,
120
+ left: 0,
121
+ right: 0,
122
+ },
123
+ });
package/src/types.ts CHANGED
@@ -49,13 +49,13 @@ export type LayoutParams = {
49
49
  export type CollapsibleContextInternalType = {
50
50
  scrollViewRef: React.RefObject<any>;
51
51
  containerRef: React.RefObject<any>;
52
+ containerHeight: Animated.SharedValue<number>;
52
53
  contentMinHeight: Animated.SharedValue<number>;
53
54
  headerViewPositions: Animated.SharedValue<
54
55
  Record<string, { top: number; stickyHeight: number }>
55
56
  >;
56
57
  fixedHeaderHeight: Animated.SharedValue<number>;
57
58
  headerHeight: Animated.SharedValue<number>;
58
- handleContainerHeight: (height: number) => void;
59
59
  handleHeaderContainerLayout: (
60
60
  key: string,
61
61
  layout?: LayoutRectangle,
@@ -68,10 +68,6 @@ export default function withCollapsibleContext<T>(Component: FC<T>) {
68
68
  []
69
69
  );
70
70
 
71
- const handleContainerHeight = useCallback((height: number) => {
72
- containerHeight.value = height;
73
- }, []);
74
-
75
71
  const handleScrollToView = useCallback(
76
72
  (ref: React.RefObject<any>, animated?: boolean) => {
77
73
  if (!ref.current) {
@@ -126,10 +122,10 @@ export default function withCollapsibleContext<T>(Component: FC<T>) {
126
122
  const internalContext = useMemo(
127
123
  () => ({
128
124
  containerRef,
125
+ containerHeight,
129
126
  scrollViewRef,
130
127
  handleHeaderContainerLayout,
131
128
  setCollapsibleHandlers,
132
- handleContainerHeight,
133
129
  headerHeight,
134
130
  fixedHeaderHeight,
135
131
  contentMinHeight,
@@ -138,7 +134,6 @@ export default function withCollapsibleContext<T>(Component: FC<T>) {
138
134
  [
139
135
  setCollapsibleHandlers,
140
136
  handleHeaderContainerLayout,
141
- handleContainerHeight,
142
137
  headerHeight,
143
138
  fixedHeaderHeight,
144
139
  contentMinHeight,
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_flashList","_useAnimatedScroll","_interopRequireDefault","_useInternalCollapsibleContext","_AnimatedTopView","_useCollapsibleContext","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","AnimatedFlashList","Animated","createAnimatedComponent","FlashList","CollapsibleFlatList","_ref","headerSnappable","props","headerHeight","useCollapsibleContext","scrollViewRef","fixedHeaderHeight","contentMinHeight","useInternalCollapsibleContext","mounted","useRef","internalProgressViewOffset","setInternalProgressViewOffset","useState","useEffect","current","scrollTo","useCallback","yValue","_scrollViewRef$curren","animated","undefined","scrollToOffset","offset","scrollToIndex","params","_scrollViewRef$curren2","scrollToLocation","console","warn","scrollHandler","useAnimatedScroll","handleInternalProgressViewOffset","value","additionalBottomHeight","useDerivedValue","useAnimatedReaction","result","previous","runOnJS","handleScrollToIndexFailed","renderListHeader","createElement","View","height","ListHeaderComponent","renderListFooter","ListFooterComponent","style","styles","container","ref","keyboardDismissMode","keyboardShouldPersistTaps","scrollEventThrottle","onScrollToIndexFailed","onScroll","simultaneousHandlers","progressViewOffset","StyleSheet","create","absoluteFillObject","contentContainer","flexGrow","topView","position","top","left","right"],"sourceRoot":"../../../../src","sources":["components/scrollable/CollapsibleFlashList.tsx"],"mappings":"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"}