@r0b0t3d/react-native-collapsible 1.3.5-beta.5 → 1.3.5-beta.7

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 (49) hide show
  1. package/lib/commonjs/components/header/CollapsibleHeaderContainer.js +6 -4
  2. package/lib/commonjs/components/header/CollapsibleHeaderContainer.js.map +1 -1
  3. package/lib/commonjs/components/scrollable/CollapsibleFlatList.js +5 -1
  4. package/lib/commonjs/components/scrollable/CollapsibleFlatList.js.map +1 -1
  5. package/lib/commonjs/components/scrollable/CollapsibleScrollView.js +5 -1
  6. package/lib/commonjs/components/scrollable/CollapsibleScrollView.js.map +1 -1
  7. package/lib/commonjs/components/scrollable/CollapsibleSectionList.js +129 -0
  8. package/lib/commonjs/components/scrollable/CollapsibleSectionList.js.map +1 -0
  9. package/lib/commonjs/components/scrollable/useAnimatedScroll.js +5 -3
  10. package/lib/commonjs/components/scrollable/useAnimatedScroll.js.map +1 -1
  11. package/lib/commonjs/index.js +8 -0
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/withCollapsibleContext.js +4 -0
  14. package/lib/commonjs/withCollapsibleContext.js.map +1 -1
  15. package/lib/module/components/header/CollapsibleHeaderContainer.js +6 -4
  16. package/lib/module/components/header/CollapsibleHeaderContainer.js.map +1 -1
  17. package/lib/module/components/scrollable/CollapsibleFlatList.js +5 -1
  18. package/lib/module/components/scrollable/CollapsibleFlatList.js.map +1 -1
  19. package/lib/module/components/scrollable/CollapsibleScrollView.js +5 -1
  20. package/lib/module/components/scrollable/CollapsibleScrollView.js.map +1 -1
  21. package/lib/module/components/scrollable/CollapsibleSectionList.js +120 -0
  22. package/lib/module/components/scrollable/CollapsibleSectionList.js.map +1 -0
  23. package/lib/module/components/scrollable/useAnimatedScroll.js +5 -3
  24. package/lib/module/components/scrollable/useAnimatedScroll.js.map +1 -1
  25. package/lib/module/index.js +1 -0
  26. package/lib/module/index.js.map +1 -1
  27. package/lib/module/withCollapsibleContext.js +4 -0
  28. package/lib/module/withCollapsibleContext.js.map +1 -1
  29. package/lib/typescript/components/header/CollapsibleHeaderContainer.d.ts.map +1 -1
  30. package/lib/typescript/components/scrollable/CollapsibleFlatList.d.ts.map +1 -1
  31. package/lib/typescript/components/scrollable/CollapsibleScrollView.d.ts.map +1 -1
  32. package/lib/typescript/components/scrollable/CollapsibleSectionList.d.ts +7 -0
  33. package/lib/typescript/components/scrollable/CollapsibleSectionList.d.ts.map +1 -0
  34. package/lib/typescript/components/scrollable/useAnimatedScroll.d.ts +3 -1
  35. package/lib/typescript/components/scrollable/useAnimatedScroll.d.ts.map +1 -1
  36. package/lib/typescript/index.d.ts +1 -0
  37. package/lib/typescript/index.d.ts.map +1 -1
  38. package/lib/typescript/types.d.ts +2 -1
  39. package/lib/typescript/types.d.ts.map +1 -1
  40. package/lib/typescript/withCollapsibleContext.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/src/components/header/CollapsibleHeaderContainer.tsx +9 -4
  43. package/src/components/scrollable/CollapsibleFlatList.tsx +5 -0
  44. package/src/components/scrollable/CollapsibleScrollView.tsx +5 -0
  45. package/src/components/scrollable/CollapsibleSectionList.tsx +169 -0
  46. package/src/components/scrollable/useAnimatedScroll.ts +12 -2
  47. package/src/index.tsx +1 -0
  48. package/src/types.ts +2 -1
  49. package/src/withCollapsibleContext.tsx +2 -0
@@ -0,0 +1,120 @@
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
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
+ import { View, StyleSheet, SectionList } from 'react-native';
4
+ import Animated, { runOnJS, useAnimatedReaction } from 'react-native-reanimated';
5
+ import useAnimatedScroll from './useAnimatedScroll';
6
+ import useInternalCollapsibleContext from '../../hooks/useInternalCollapsibleContext';
7
+ import AnimatedTopView from '../header/AnimatedTopView';
8
+ import useCollapsibleContext from '../../hooks/useCollapsibleContext';
9
+ const AnimatedSectionList = Animated.createAnimatedComponent(SectionList);
10
+ export default function CollapsibleSectionList(_ref) {
11
+ let {
12
+ headerSnappable = true,
13
+ ...props
14
+ } = _ref;
15
+ const {
16
+ headerHeight
17
+ } = useCollapsibleContext();
18
+ const {
19
+ contentMinHeight,
20
+ scrollViewRef,
21
+ fixedHeaderHeight
22
+ } = useInternalCollapsibleContext();
23
+ const mounted = useRef(true);
24
+ const contentHeight = useRef(0);
25
+ const [internalContentMinHeight, setInternalContentMinHeight] = useState(contentMinHeight.value);
26
+ const [internalProgressViewOffset, setInternalProgressViewOffset] = useState(0);
27
+ useEffect(() => {
28
+ return () => {
29
+ mounted.current = false;
30
+ };
31
+ }, []);
32
+ const scrollTo = useCallback(() => {
33
+ console.warn('Not supported');
34
+ }, []);
35
+ const scrollToIndex = useCallback(() => {
36
+ console.warn('Not supported');
37
+ }, []);
38
+ const scrollToLocation = useCallback(params => {
39
+ var _scrollViewRef$curren;
40
+ (_scrollViewRef$curren = scrollViewRef.current) === null || _scrollViewRef$curren === void 0 ? void 0 : _scrollViewRef$curren.scrollToLocation(params);
41
+ }, [scrollViewRef]);
42
+ const {
43
+ scrollHandler
44
+ } = useAnimatedScroll({
45
+ headerSnappable,
46
+ scrollTo,
47
+ scrollToIndex,
48
+ scrollToLocation
49
+ });
50
+ const handleInternalContentHeight = useCallback(value => {
51
+ if (mounted.current) {
52
+ setInternalContentMinHeight(value);
53
+ }
54
+ }, []);
55
+ const handleInternalProgressViewOffset = useCallback(value => {
56
+ if (mounted.current) {
57
+ setInternalProgressViewOffset(value);
58
+ }
59
+ }, []);
60
+ useAnimatedReaction(() => {
61
+ return contentMinHeight.value;
62
+ }, (result, previous) => {
63
+ if (result !== previous) {
64
+ if (contentHeight.current < result && internalContentMinHeight !== result) {
65
+ runOnJS(handleInternalContentHeight)(result);
66
+ }
67
+ }
68
+ });
69
+ useAnimatedReaction(() => {
70
+ return fixedHeaderHeight.value;
71
+ }, (result, previous) => {
72
+ if (result !== previous) {
73
+ runOnJS(handleInternalProgressViewOffset)(result);
74
+ }
75
+ });
76
+ const contentContainerStyle = useMemo(() => [styles.contentContainer, {
77
+ minHeight: internalContentMinHeight
78
+ }, props.contentContainerStyle], [props.contentContainerStyle, internalContentMinHeight]);
79
+ const handleContentSizeChange = useCallback((_, height) => {
80
+ contentHeight.current = height;
81
+ }, []);
82
+ const handleScrollToIndexFailed = useCallback(() => {}, []);
83
+ function renderListHeader() {
84
+ return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(AnimatedTopView, {
85
+ height: headerHeight
86
+ }), props.ListHeaderComponent);
87
+ }
88
+ return /*#__PURE__*/React.createElement(AnimatedSectionList, _extends({
89
+ ref: scrollViewRef,
90
+ keyboardDismissMode: "on-drag",
91
+ keyboardShouldPersistTaps: "handled",
92
+ scrollEventThrottle: 1,
93
+ onScrollToIndexFailed: handleScrollToIndexFailed
94
+ }, props, {
95
+ style: [styles.container, props.style],
96
+ contentContainerStyle: contentContainerStyle,
97
+ onScroll: scrollHandler,
98
+ ListHeaderComponent: renderListHeader(),
99
+ onContentSizeChange: handleContentSizeChange
100
+ //@ts-ignore
101
+ ,
102
+ simultaneousHandlers: [],
103
+ progressViewOffset: internalProgressViewOffset
104
+ }));
105
+ }
106
+ const styles = StyleSheet.create({
107
+ container: {
108
+ ...StyleSheet.absoluteFillObject
109
+ },
110
+ contentContainer: {
111
+ flexGrow: 1
112
+ },
113
+ topView: {
114
+ position: 'absolute',
115
+ top: 0,
116
+ left: 0,
117
+ right: 0
118
+ }
119
+ });
120
+ //# sourceMappingURL=CollapsibleSectionList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","View","StyleSheet","SectionList","Animated","runOnJS","useAnimatedReaction","useAnimatedScroll","useInternalCollapsibleContext","AnimatedTopView","useCollapsibleContext","AnimatedSectionList","createAnimatedComponent","CollapsibleSectionList","_ref","headerSnappable","props","headerHeight","contentMinHeight","scrollViewRef","fixedHeaderHeight","mounted","contentHeight","internalContentMinHeight","setInternalContentMinHeight","value","internalProgressViewOffset","setInternalProgressViewOffset","current","scrollTo","console","warn","scrollToIndex","scrollToLocation","params","_scrollViewRef$curren","scrollHandler","handleInternalContentHeight","handleInternalProgressViewOffset","result","previous","contentContainerStyle","styles","contentContainer","minHeight","handleContentSizeChange","_","height","handleScrollToIndexFailed","renderListHeader","createElement","ListHeaderComponent","_extends","ref","keyboardDismissMode","keyboardShouldPersistTaps","scrollEventThrottle","onScrollToIndexFailed","style","container","onScroll","onContentSizeChange","simultaneousHandlers","progressViewOffset","create","absoluteFillObject","flexGrow","topView","position","top","left","right"],"sourceRoot":"../../../../src","sources":["components/scrollable/CollapsibleSectionList.tsx"],"mappings":"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"}
@@ -11,7 +11,8 @@ export default function useAnimatedScroll(_ref) {
11
11
  let {
12
12
  headerSnappable,
13
13
  scrollTo,
14
- scrollToIndex
14
+ scrollToIndex,
15
+ scrollToLocation
15
16
  } = _ref;
16
17
  const scrollDirection = useSharedValue('unknown');
17
18
  const {
@@ -36,9 +37,10 @@ export default function useAnimatedScroll(_ref) {
36
37
  collapse,
37
38
  expand,
38
39
  scrollTo,
39
- scrollToIndex
40
+ scrollToIndex,
41
+ scrollToLocation
40
42
  });
41
- }, [setCollapsibleHandlers, collapse, expand, scrollTo, scrollToIndex]);
43
+ }, [setCollapsibleHandlers, collapse, expand, scrollTo, scrollToIndex, scrollToLocation]);
42
44
  const scrollHandler = useAnimatedScrollHandler({
43
45
  onScroll: event => {
44
46
  const offset = event.contentOffset.y;
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","Dimensions","runOnJS","useAnimatedScrollHandler","useSharedValue","useCollapsibleContext","useInternalCollapsibleContext","height","wHeight","get","useAnimatedScroll","_ref","headerSnappable","scrollTo","scrollToIndex","scrollDirection","scrollY","setCollapsibleHandlers","fixedHeaderHeight","value","requestAnimationFrame","collapse","animated","arguments","length","undefined","expand","scrollHandler","onScroll","event","offset","contentOffset","y","diff","onEndDrag","maxY","delta","Math","abs","yValue"],"sourceRoot":"../../../../src","sources":["components/scrollable/useAnimatedScroll.ts"],"mappings":"AAAA;AACA,SAASA,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAC9C,SAASC,UAAU,QAAQ,cAAc;AACzC,SACEC,OAAO,EACPC,wBAAwB,EACxBC,cAAc,QACT,yBAAyB;AAEhC,OAAOC,qBAAqB,MAAM,mCAAmC;AACrE,OAAOC,6BAA6B,MAAM,2CAA2C;AAErF,MAAM;EAAEC,MAAM,EAAEC;AAAQ,CAAC,GAAGP,UAAU,CAACQ,GAAG,CAAC,QAAQ,CAAC;AAQpD,eAAe,SAASC,iBAAiBA,CAAAC,IAAA,EAI/B;EAAA,IAJgC;IACxCC,eAAe;IACfC,QAAQ;IACRC;EACK,CAAC,GAAAH,IAAA;EACN,MAAMI,eAAe,GAAGX,cAAc,CAAC,SAAS,CAAC;EACjD,MAAM;IAAEY;EAAQ,CAAC,GAAGX,qBAAqB,CAAC,CAAC;EAC3C,MAAM;IAAEY,sBAAsB;IAAEC;EAAkB,CAAC,GACjDZ,6BAA6B,CAAC,CAAC;EAEjCN,SAAS,CAAC,MAAM;IACd,IAAIgB,OAAO,CAACG,KAAK,GAAG,CAAC,EAAE;MACrBC,qBAAqB,CAAC,MAAMP,QAAQ,CAACG,OAAO,CAACG,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7D;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,QAAQ,GAAGtB,WAAW,CAC1B,YAAqB;IAAA,IAApBuB,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IACdV,QAAQ,CAACK,iBAAiB,CAACC,KAAK,EAAEG,QAAQ,CAAC;EAC7C,CAAC,EACD,CAACT,QAAQ,CACX,CAAC;EAED,MAAMa,MAAM,GAAG3B,WAAW,CAAC,MAAMc,QAAQ,CAAC,CAAC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEzDb,SAAS,CAAC,MAAM;IACdiB,sBAAsB,CAAC;MACrBI,QAAQ;MACRK,MAAM;MACNb,QAAQ;MACRC;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACG,sBAAsB,EAAEI,QAAQ,EAAEK,MAAM,EAAEb,QAAQ,EAAEC,aAAa,CAAC,CAAC;EAEvE,MAAMa,aAAa,GAAGxB,wBAAwB,CAC5C;IACEyB,QAAQ,EAAGC,KAAK,IAAK;MACnB,MAAMC,MAAM,GAAGD,KAAK,CAACE,aAAa,CAACC,CAAC;MACpC,MAAMC,IAAI,GAAGjB,OAAO,CAACG,KAAK,GAAGW,MAAM;MACnCf,eAAe,CAACI,KAAK,GAAGc,IAAI,GAAG,CAAC,GAAG,MAAM,GAAGA,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS;MACvEjB,OAAO,CAACG,KAAK,GAAGW,MAAM;IACxB,CAAC;IACDI,SAAS,EAAEA,CAAA,KAAM;MACf,IAAI,CAACtB,eAAe,EAAE;MACtB,MAAMuB,IAAI,GAAGjB,iBAAiB,CAACC,KAAK;MAEpC,IAAIH,OAAO,CAACG,KAAK,GAAGgB,IAAI,EAAE;QACxB,MAAMC,KAAK,GAAGC,IAAI,CAACC,GAAG,CAACtB,OAAO,CAACG,KAAK,GAAGgB,IAAI,CAAC;QAC5C,IAAIC,KAAK,GAAG5B,OAAO,GAAG,CAAC,EAAE;UACvB,IAAI+B,MAAM,GAAG,CAAC;UACd,IAAIxB,eAAe,CAACI,KAAK,KAAK,IAAI,EAAE;YAClCoB,MAAM,GAAGJ,IAAI;UACf;UACAjC,OAAO,CAACW,QAAQ,CAAC,CAAC0B,MAAM,CAAC;QAC3B;MACF;IACF;EACF,CAAC,EACD,CAAC1B,QAAQ,CACX,CAAC;EAED,OAAO;IACLc,aAAa;IACbN,QAAQ;IACRK;EACF,CAAC;AACH"}
1
+ {"version":3,"names":["useCallback","useEffect","Dimensions","runOnJS","useAnimatedScrollHandler","useSharedValue","useCollapsibleContext","useInternalCollapsibleContext","height","wHeight","get","useAnimatedScroll","_ref","headerSnappable","scrollTo","scrollToIndex","scrollToLocation","scrollDirection","scrollY","setCollapsibleHandlers","fixedHeaderHeight","value","requestAnimationFrame","collapse","animated","arguments","length","undefined","expand","scrollHandler","onScroll","event","offset","contentOffset","y","diff","onEndDrag","maxY","delta","Math","abs","yValue"],"sourceRoot":"../../../../src","sources":["components/scrollable/useAnimatedScroll.ts"],"mappings":"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"}
@@ -3,6 +3,7 @@ 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
5
  export { default as CollapsibleScrollView } from './components/scrollable/CollapsibleScrollView';
6
+ export { default as CollapsibleSectionList } from './components/scrollable/CollapsibleSectionList';
6
7
  export { default as CollapsibleHeaderContainer } from './components/header/CollapsibleHeaderContainer';
7
8
  export { default as StickyView } from './components/header/StickyView';
8
9
  export { default as CollapsibleView } from './components/CollapsibleView';
@@ -1 +1 @@
1
- {"version":3,"names":["default","withCollapsibleContext","useCollapsibleContext","CollapsibleContainer","CollapsibleFlatList","CollapsibleScrollView","CollapsibleHeaderContainer","StickyView","CollapsibleView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,OAAO,IAAIC,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASD,OAAO,IAAIE,qBAAqB,QAAQ,+BAA+B;AAEhF,SAASF,OAAO,IAAIG,oBAAoB,QAAQ,mCAAmC;AACnF,SAASH,OAAO,IAAII,mBAAmB,QAAQ,6CAA6C;AAC5F,SAASJ,OAAO,IAAIK,qBAAqB,QAAQ,+CAA+C;AAChG,SAASL,OAAO,IAAIM,0BAA0B,QAAQ,gDAAgD;AACtG,SAASN,OAAO,IAAIO,UAAU,QAAQ,gCAAgC;AACtE,SAASP,OAAO,IAAIQ,eAAe,QAAQ,8BAA8B;AACzE,cAAc,8BAA8B"}
1
+ {"version":3,"names":["default","withCollapsibleContext","useCollapsibleContext","CollapsibleContainer","CollapsibleFlatList","CollapsibleScrollView","CollapsibleSectionList","CollapsibleHeaderContainer","StickyView","CollapsibleView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,OAAO,IAAIC,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASD,OAAO,IAAIE,qBAAqB,QAAQ,+BAA+B;AAEhF,SAASF,OAAO,IAAIG,oBAAoB,QAAQ,mCAAmC;AACnF,SAASH,OAAO,IAAII,mBAAmB,QAAQ,6CAA6C;AAC5F,SAASJ,OAAO,IAAIK,qBAAqB,QAAQ,+CAA+C;AAChG,SAASL,OAAO,IAAIM,sBAAsB,QAAQ,gDAAgD;AAClG,SAASN,OAAO,IAAIO,0BAA0B,QAAQ,gDAAgD;AACtG,SAASP,OAAO,IAAIQ,UAAU,QAAQ,gCAAgC;AACtE,SAASR,OAAO,IAAIS,eAAe,QAAQ,8BAA8B;AACzE,cAAc,8BAA8B"}
@@ -78,6 +78,10 @@ export default function withCollapsibleContext(Component) {
78
78
  var _collapsibleHandlers$4;
79
79
  return (_collapsibleHandlers$4 = collapsibleHandlers.current) === null || _collapsibleHandlers$4 === void 0 ? void 0 : _collapsibleHandlers$4.scrollToIndex(params);
80
80
  },
81
+ scrollToLocation: params => {
82
+ var _collapsibleHandlers$5;
83
+ return (_collapsibleHandlers$5 = collapsibleHandlers.current) === null || _collapsibleHandlers$5 === void 0 ? void 0 : _collapsibleHandlers$5.scrollToLocation(params);
84
+ },
81
85
  headerHeight,
82
86
  scrollY,
83
87
  headerCollapsed
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","useRef","CollapsibleContext","InternalCollapsibleContext","useDerivedValue","useSharedValue","withTiming","withCollapsibleContext","Component","props","collapsibleHandlers","headerHeight","scrollY","fixedHeaderHeight","containerHeight","scrollViewRef","headerContainerLayouts","headerViewPositions","setCollapsibleHandlers","handlers","current","headerCollapsed","maxY","value","contentMinHeight","handleHeaderContainerLayout","key","layout","stickyHeight","undefined","headerContainers","Object","keys","filter","k","totalHeight","reduce","acc","_headerContainerLayou","height","duration","sortedHeaders","sort","a","b","_headerContainerLayou2","_headerContainerLayou3","y","values","aStickyHeight","index","length","_headerContainerLayou4","headerKey","sHeight","top","handleContainerHeight","context","collapse","animated","_collapsibleHandlers$","expand","_collapsibleHandlers$2","scrollTo","offset","animate","_collapsibleHandlers$3","scrollToIndex","params","_collapsibleHandlers$4","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","withTiming","withCollapsibleContext","Component","props","collapsibleHandlers","headerHeight","scrollY","fixedHeaderHeight","containerHeight","scrollViewRef","headerContainerLayouts","headerViewPositions","setCollapsibleHandlers","handlers","current","headerCollapsed","maxY","value","contentMinHeight","handleHeaderContainerLayout","key","layout","stickyHeight","undefined","headerContainers","Object","keys","filter","k","totalHeight","reduce","acc","_headerContainerLayou","height","duration","sortedHeaders","sort","a","b","_headerContainerLayou2","_headerContainerLayou3","y","values","aStickyHeight","index","length","_headerContainerLayou4","headerKey","sHeight","top","handleContainerHeight","context","collapse","animated","_collapsibleHandlers$","expand","_collapsibleHandlers$2","scrollTo","offset","animate","_collapsibleHandlers$3","scrollToIndex","params","_collapsibleHandlers$4","scrollToLocation","_collapsibleHandlers$5","internalContext","createElement","Provider"],"sourceRoot":"../../src","sources":["withCollapsibleContext.tsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsibleHeaderContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/header/CollapsibleHeaderContainer.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAsB,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpD,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,SAAS,CAAC;IACpB,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACvC,CAAC;AAIF,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAAC,EACjD,QAAQ,EACR,cAAc,GACf,EAAE,KAAK,QAqCP"}
1
+ {"version":3,"file":"CollapsibleHeaderContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/header/CollapsibleHeaderContainer.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAsB,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpD,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,SAAS,CAAC;IACpB,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACvC,CAAC;AAIF,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAAC,EACjD,QAAQ,EACR,cAAc,GACf,EAAE,KAAK,QA0CP"}
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsibleFlatList.d.ts","sourceRoot":"","sources":["../../../../src/components/scrollable/CollapsibleFlatList.tsx"],"names":[],"mappings":"AACA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,aAAa,EAA8B,MAAM,cAAc,CAAC;AAOzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMpD,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,GAC3D,gBAAgB,CAAC;AAEnB,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,IAAI,EAAE,EAChD,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,IAAI,CAAC,qBAoHb"}
1
+ {"version":3,"file":"CollapsibleFlatList.d.ts","sourceRoot":"","sources":["../../../../src/components/scrollable/CollapsibleFlatList.tsx"],"names":[],"mappings":"AACA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,aAAa,EAA8B,MAAM,cAAc,CAAC;AAOzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMpD,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,GAC3D,gBAAgB,CAAC;AAEnB,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,IAAI,EAAE,EAChD,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,IAAI,CAAC,qBAyHb"}
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsibleScrollView.d.ts","sourceRoot":"","sources":["../../../../src/components/scrollable/CollapsibleScrollView.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EACZ,SAAS,EAMV,MAAM,OAAO,CAAC;AACf,OAAO,EAAkB,eAAe,EAAc,MAAM,cAAc,CAAC;AAM3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,KAAK,KAAK,GAAG,eAAe,GAC1B,gBAAgB,GAAG;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEJ,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,eAAsB,EACtB,QAAQ,EACR,UAAkB,EAClB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,qBAkFP"}
1
+ {"version":3,"file":"CollapsibleScrollView.d.ts","sourceRoot":"","sources":["../../../../src/components/scrollable/CollapsibleScrollView.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EACZ,SAAS,EAMV,MAAM,OAAO,CAAC;AACf,OAAO,EAAkB,eAAe,EAAc,MAAM,cAAc,CAAC;AAM3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,KAAK,KAAK,GAAG,eAAe,GAC1B,gBAAgB,GAAG;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEJ,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,eAAsB,EACtB,QAAQ,EACR,UAAkB,EAClB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,qBAuFP"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { SectionListProps } from 'react-native';
3
+ import type { CollapsibleProps } from '../../types';
4
+ type Props<Data> = Omit<SectionListProps<Data>, 'scrollEnabled'> & CollapsibleProps;
5
+ export default function CollapsibleSectionList<Data>({ headerSnappable, ...props }: Props<Data>): React.JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=CollapsibleSectionList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsibleSectionList.d.ts","sourceRoot":"","sources":["../../../../src/components/scrollable/CollapsibleSectionList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,gBAAgB,EAEjB,MAAM,cAAc,CAAC;AAOtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMpD,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,GAC9D,gBAAgB,CAAC;AAEnB,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,IAAI,EAAE,EACnD,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,IAAI,CAAC,qBAyHb"}
@@ -1,10 +1,12 @@
1
+ import { SectionListScrollParams } from 'react-native';
1
2
  import type { ScrollToIndexParams } from '../../types';
2
3
  type Props = {
3
4
  headerSnappable: boolean;
4
5
  scrollTo: (yValue: number, animated?: boolean) => void;
5
6
  scrollToIndex: (params: ScrollToIndexParams) => void;
7
+ scrollToLocation: (params: SectionListScrollParams) => void;
6
8
  };
7
- export default function useAnimatedScroll({ headerSnappable, scrollTo, scrollToIndex, }: Props): {
9
+ export default function useAnimatedScroll({ headerSnappable, scrollTo, scrollToIndex, scrollToLocation, }: Props): {
8
10
  scrollHandler: (event: import("react-native").NativeSyntheticEvent<import("react-native").NativeScrollEvent>) => void;
9
11
  collapse: (animated?: any) => void;
10
12
  expand: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useAnimatedScroll.d.ts","sourceRoot":"","sources":["../../../../src/components/scrollable/useAnimatedScroll.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAMvD,KAAK,KAAK,GAAG;IACX,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,aAAa,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,eAAe,EACf,QAAQ,EACR,aAAa,GACd,EAAE,KAAK;;;;EA8DP"}
1
+ {"version":3,"file":"useAnimatedScroll.d.ts","sourceRoot":"","sources":["../../../../src/components/scrollable/useAnimatedScroll.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAMnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAMvD,KAAK,KAAK,GAAG;IACX,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,aAAa,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrD,gBAAgB,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,CAAC;CAC7D,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,eAAe,EACf,QAAQ,EACR,aAAa,EACb,gBAAgB,GACjB,EAAE,KAAK;;;;EAsEP"}
@@ -3,6 +3,7 @@ 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
5
  export { default as CollapsibleScrollView } from './components/scrollable/CollapsibleScrollView';
6
+ export { default as CollapsibleSectionList } from './components/scrollable/CollapsibleSectionList';
6
7
  export { default as CollapsibleHeaderContainer } from './components/header/CollapsibleHeaderContainer';
7
8
  export { default as StickyView } from './components/header/StickyView';
8
9
  export { default as CollapsibleView } from './components/CollapsibleView';
@@ -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,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACjG,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"}
@@ -1,5 +1,5 @@
1
1
  import type React from 'react';
2
- import type { LayoutRectangle } from 'react-native';
2
+ import type { LayoutRectangle, SectionListScrollParams } from 'react-native';
3
3
  import type Animated from 'react-native-reanimated';
4
4
  export type ScrollToIndexParams = {
5
5
  animated?: boolean | null;
@@ -12,6 +12,7 @@ export type CollapsibleHandles = {
12
12
  expand: () => void;
13
13
  scrollTo: (offset: number, animate?: boolean) => void;
14
14
  scrollToIndex: (params: ScrollToIndexParams) => void;
15
+ scrollToLocation: (params: SectionListScrollParams) => void;
15
16
  };
16
17
  export type CollapsibleContextType = CollapsibleHandles & {
17
18
  scrollY: Animated.SharedValue<number>;
@@ -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,MAAM,cAAc,CAAC;AACpD,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,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,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;CACtD,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;CAChD,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,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,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,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,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;CAChD,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,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,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 +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;AAWhE,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WACjD,CAAC,uBAsHjB"}
1
+ {"version":3,"file":"withCollapsibleContext.d.ts","sourceRoot":"","sources":["../../src/withCollapsibleContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAgC,EAAE,EAAE,MAAM,OAAO,CAAC;AAWhE,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WACjD,CAAC,uBAwHjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@r0b0t3d/react-native-collapsible",
3
- "version": "1.3.5-beta.5",
3
+ "version": "1.3.5-beta.7",
4
4
  "description": "Fully customizable collapsible views",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -14,19 +14,24 @@ export default function CollapsibleHeaderContainer({
14
14
  children,
15
15
  containerStyle,
16
16
  }: Props) {
17
- const contentKey = useMemo(() => `collapsible-header-${key++}`, []);
17
+ const originalKey = useMemo(() => key++, []);
18
+ const contentKey = useMemo(
19
+ () => `collapsible-header-${originalKey}`,
20
+ [originalKey]
21
+ );
18
22
  const { mount, unmount, update } = useCollapsibleHeaderConsumerContext();
19
23
 
20
24
  const internalStyle = useMemo(() => {
21
25
  return {
22
- zIndex: 100000 - key,
26
+ zIndex: 100000 - key - originalKey,
23
27
  };
24
- }, []);
28
+ // eslint-disable-next-line react-hooks/exhaustive-deps
29
+ }, [key, originalKey]);
25
30
 
26
31
  const content = useMemo(() => {
27
32
  return (
28
33
  <CollapsibleHeaderContainerProvider
29
- containerStyle={[containerStyle, internalStyle]}
34
+ containerStyle={[internalStyle, containerStyle]}
30
35
  contentKey={contentKey}
31
36
  key={contentKey}
32
37
  >
@@ -54,10 +54,15 @@ export default function CollapsibleFlatList<Data>({
54
54
  scrollViewRef.current?.scrollToIndex(params);
55
55
  }, []);
56
56
 
57
+ const scrollToLocation = useCallback(() => {
58
+ console.warn('CollapsibleFlatList does not support scrollToLocation');
59
+ }, []);
60
+
57
61
  const { scrollHandler } = useAnimatedScroll({
58
62
  headerSnappable,
59
63
  scrollTo,
60
64
  scrollToIndex,
65
+ scrollToLocation,
61
66
  });
62
67
 
63
68
  const handleInternalContentHeight = useCallback((value: number) => {
@@ -54,10 +54,15 @@ export default function CollapsibleScrollView({
54
54
  console.warn("CollapsibleScrollView doesn't support scrollToIndex");
55
55
  }, []);
56
56
 
57
+ const scrollToLocation = useCallback(() => {
58
+ console.warn('CollapsibleFlatList does not support scrollToLocation');
59
+ }, []);
60
+
57
61
  const { scrollHandler } = useAnimatedScroll({
58
62
  headerSnappable,
59
63
  scrollTo,
60
64
  scrollToIndex,
65
+ scrollToLocation,
61
66
  });
62
67
 
63
68
  const animatedStyle = useAnimatedStyle(() => {
@@ -0,0 +1,169 @@
1
+ import React, {
2
+ useCallback,
3
+ useEffect,
4
+ useMemo,
5
+ useRef,
6
+ useState,
7
+ } from 'react';
8
+ import {
9
+ View,
10
+ StyleSheet,
11
+ SectionList,
12
+ SectionListProps,
13
+ SectionListScrollParams,
14
+ } from 'react-native';
15
+ import Animated, {
16
+ runOnJS,
17
+ useAnimatedReaction,
18
+ } from 'react-native-reanimated';
19
+ import useAnimatedScroll from './useAnimatedScroll';
20
+ import useInternalCollapsibleContext from '../../hooks/useInternalCollapsibleContext';
21
+ import type { CollapsibleProps } from '../../types';
22
+ import AnimatedTopView from '../header/AnimatedTopView';
23
+ import useCollapsibleContext from '../../hooks/useCollapsibleContext';
24
+
25
+ const AnimatedSectionList = Animated.createAnimatedComponent(SectionList);
26
+
27
+ type Props<Data> = Omit<SectionListProps<Data>, 'scrollEnabled'> &
28
+ CollapsibleProps;
29
+
30
+ export default function CollapsibleSectionList<Data>({
31
+ headerSnappable = true,
32
+ ...props
33
+ }: Props<Data>) {
34
+ const { headerHeight } = useCollapsibleContext();
35
+ const { contentMinHeight, scrollViewRef, fixedHeaderHeight } =
36
+ useInternalCollapsibleContext();
37
+ const mounted = useRef(true);
38
+ const contentHeight = useRef(0);
39
+ const [internalContentMinHeight, setInternalContentMinHeight] = useState(
40
+ contentMinHeight.value
41
+ );
42
+ const [internalProgressViewOffset, setInternalProgressViewOffset] =
43
+ useState(0);
44
+
45
+ useEffect(() => {
46
+ return () => {
47
+ mounted.current = false;
48
+ };
49
+ }, []);
50
+
51
+ const scrollTo = useCallback(() => {
52
+ console.warn('Not supported');
53
+ }, []);
54
+
55
+ const scrollToIndex = useCallback(() => {
56
+ console.warn('Not supported');
57
+ }, []);
58
+
59
+ const scrollToLocation = useCallback(
60
+ (params: SectionListScrollParams) => {
61
+ scrollViewRef.current?.scrollToLocation(params);
62
+ },
63
+ [scrollViewRef]
64
+ );
65
+
66
+ const { scrollHandler } = useAnimatedScroll({
67
+ headerSnappable,
68
+ scrollTo,
69
+ scrollToIndex,
70
+ scrollToLocation,
71
+ });
72
+
73
+ const handleInternalContentHeight = useCallback((value: number) => {
74
+ if (mounted.current) {
75
+ setInternalContentMinHeight(value);
76
+ }
77
+ }, []);
78
+
79
+ const handleInternalProgressViewOffset = useCallback((value: number) => {
80
+ if (mounted.current) {
81
+ setInternalProgressViewOffset(value);
82
+ }
83
+ }, []);
84
+
85
+ useAnimatedReaction(
86
+ () => {
87
+ return contentMinHeight.value;
88
+ },
89
+ (result, previous) => {
90
+ if (result !== previous) {
91
+ if (
92
+ contentHeight.current < result &&
93
+ internalContentMinHeight !== result
94
+ ) {
95
+ runOnJS(handleInternalContentHeight)(result);
96
+ }
97
+ }
98
+ }
99
+ );
100
+
101
+ useAnimatedReaction(
102
+ () => {
103
+ return fixedHeaderHeight.value;
104
+ },
105
+ (result, previous) => {
106
+ if (result !== previous) {
107
+ runOnJS(handleInternalProgressViewOffset)(result);
108
+ }
109
+ }
110
+ );
111
+
112
+ const contentContainerStyle = useMemo(
113
+ () => [
114
+ styles.contentContainer,
115
+ { minHeight: internalContentMinHeight },
116
+ props.contentContainerStyle,
117
+ ],
118
+ [props.contentContainerStyle, internalContentMinHeight]
119
+ );
120
+
121
+ const handleContentSizeChange = useCallback((_, height) => {
122
+ contentHeight.current = height;
123
+ }, []);
124
+
125
+ const handleScrollToIndexFailed = useCallback(() => {}, []);
126
+
127
+ function renderListHeader() {
128
+ return (
129
+ <View>
130
+ <AnimatedTopView height={headerHeight} />
131
+ {props.ListHeaderComponent}
132
+ </View>
133
+ );
134
+ }
135
+
136
+ return (
137
+ <AnimatedSectionList
138
+ ref={scrollViewRef}
139
+ keyboardDismissMode="on-drag"
140
+ keyboardShouldPersistTaps="handled"
141
+ scrollEventThrottle={1}
142
+ onScrollToIndexFailed={handleScrollToIndexFailed}
143
+ {...props}
144
+ style={[styles.container, props.style]}
145
+ contentContainerStyle={contentContainerStyle}
146
+ onScroll={scrollHandler}
147
+ ListHeaderComponent={renderListHeader()}
148
+ onContentSizeChange={handleContentSizeChange}
149
+ //@ts-ignore
150
+ simultaneousHandlers={[]}
151
+ progressViewOffset={internalProgressViewOffset}
152
+ />
153
+ );
154
+ }
155
+
156
+ const styles = StyleSheet.create({
157
+ container: {
158
+ ...StyleSheet.absoluteFillObject,
159
+ },
160
+ contentContainer: {
161
+ flexGrow: 1,
162
+ },
163
+ topView: {
164
+ position: 'absolute',
165
+ top: 0,
166
+ left: 0,
167
+ right: 0,
168
+ },
169
+ });
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable react-hooks/exhaustive-deps */
2
2
  import { useCallback, useEffect } from 'react';
3
- import { Dimensions } from 'react-native';
3
+ import { Dimensions, SectionListScrollParams } from 'react-native';
4
4
  import {
5
5
  runOnJS,
6
6
  useAnimatedScrollHandler,
@@ -16,12 +16,14 @@ type Props = {
16
16
  headerSnappable: boolean;
17
17
  scrollTo: (yValue: number, animated?: boolean) => void;
18
18
  scrollToIndex: (params: ScrollToIndexParams) => void;
19
+ scrollToLocation: (params: SectionListScrollParams) => void;
19
20
  };
20
21
 
21
22
  export default function useAnimatedScroll({
22
23
  headerSnappable,
23
24
  scrollTo,
24
25
  scrollToIndex,
26
+ scrollToLocation,
25
27
  }: Props) {
26
28
  const scrollDirection = useSharedValue('unknown');
27
29
  const { scrollY } = useCollapsibleContext();
@@ -49,8 +51,16 @@ export default function useAnimatedScroll({
49
51
  expand,
50
52
  scrollTo,
51
53
  scrollToIndex,
54
+ scrollToLocation,
52
55
  });
53
- }, [setCollapsibleHandlers, collapse, expand, scrollTo, scrollToIndex]);
56
+ }, [
57
+ setCollapsibleHandlers,
58
+ collapse,
59
+ expand,
60
+ scrollTo,
61
+ scrollToIndex,
62
+ scrollToLocation,
63
+ ]);
54
64
 
55
65
  const scrollHandler = useAnimatedScrollHandler(
56
66
  {
package/src/index.tsx CHANGED
@@ -4,6 +4,7 @@ export { default as useCollapsibleContext } from './hooks/useCollapsibleContext'
4
4
  export { default as CollapsibleContainer } from './components/CollapsibleContainer';
5
5
  export { default as CollapsibleFlatList } from './components/scrollable/CollapsibleFlatList';
6
6
  export { default as CollapsibleScrollView } from './components/scrollable/CollapsibleScrollView';
7
+ export { default as CollapsibleSectionList } from './components/scrollable/CollapsibleSectionList';
7
8
  export { default as CollapsibleHeaderContainer } from './components/header/CollapsibleHeaderContainer';
8
9
  export { default as StickyView } from './components/header/StickyView';
9
10
  export { default as CollapsibleView } from './components/CollapsibleView';
package/src/types.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type React from 'react';
2
- import type { LayoutRectangle } from 'react-native';
2
+ import type { LayoutRectangle, SectionListScrollParams } from 'react-native';
3
3
  import type Animated from 'react-native-reanimated';
4
4
 
5
5
  export type ScrollToIndexParams = {
@@ -14,6 +14,7 @@ export type CollapsibleHandles = {
14
14
  expand: () => void;
15
15
  scrollTo: (offset: number, animate?: boolean) => void;
16
16
  scrollToIndex: (params: ScrollToIndexParams) => void;
17
+ scrollToLocation: (params: SectionListScrollParams) => void;
17
18
  };
18
19
 
19
20
  export type CollapsibleContextType = CollapsibleHandles & {