@r0b0t3d/react-native-collapsible 1.3.5-beta.0 → 1.3.5-beta.2

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 (142) hide show
  1. package/LICENSE +1 -2
  2. package/lib/commonjs/components/CollapsibleContainer.js +11 -25
  3. package/lib/commonjs/components/CollapsibleContainer.js.map +1 -1
  4. package/lib/commonjs/components/CollapsibleView.js +39 -44
  5. package/lib/commonjs/components/CollapsibleView.js.map +1 -1
  6. package/lib/commonjs/components/header/AnimatedTopView.js +4 -9
  7. package/lib/commonjs/components/header/AnimatedTopView.js.map +1 -1
  8. package/lib/commonjs/components/header/CollapsibleHeaderConsumer.js +12 -20
  9. package/lib/commonjs/components/header/CollapsibleHeaderConsumer.js.map +1 -1
  10. package/lib/commonjs/components/header/CollapsibleHeaderContainer.js +6 -12
  11. package/lib/commonjs/components/header/CollapsibleHeaderContainer.js.map +1 -1
  12. package/lib/commonjs/components/header/CollapsibleHeaderProvider.js +7 -11
  13. package/lib/commonjs/components/header/CollapsibleHeaderProvider.js.map +1 -1
  14. package/lib/commonjs/components/header/StickyView.js +11 -20
  15. package/lib/commonjs/components/header/StickyView.js.map +1 -1
  16. package/lib/commonjs/components/scrollable/CollapsibleFlatList.js +12 -26
  17. package/lib/commonjs/components/scrollable/CollapsibleFlatList.js.map +1 -1
  18. package/lib/commonjs/components/scrollable/CollapsibleScrollView.js +13 -24
  19. package/lib/commonjs/components/scrollable/CollapsibleScrollView.js.map +1 -1
  20. package/lib/commonjs/components/scrollable/useAnimatedScroll.js +9 -18
  21. package/lib/commonjs/components/scrollable/useAnimatedScroll.js.map +1 -1
  22. package/lib/commonjs/hooks/useCollapsibleContext.js +1 -6
  23. package/lib/commonjs/hooks/useCollapsibleContext.js.map +1 -1
  24. package/lib/commonjs/hooks/useCollapsibleHeaderContext.js +1 -6
  25. package/lib/commonjs/hooks/useCollapsibleHeaderContext.js.map +1 -1
  26. package/lib/commonjs/hooks/useInternalCollapsibleContext.js +1 -6
  27. package/lib/commonjs/hooks/useInternalCollapsibleContext.js.map +1 -1
  28. package/lib/commonjs/hooks/useKeyboardShowEvent.js +0 -4
  29. package/lib/commonjs/hooks/useKeyboardShowEvent.js.map +1 -1
  30. package/lib/commonjs/index.js +12 -33
  31. package/lib/commonjs/index.js.map +1 -1
  32. package/lib/commonjs/types.js.map +1 -1
  33. package/lib/commonjs/utils/debounce.js +8 -7
  34. package/lib/commonjs/utils/debounce.js.map +1 -1
  35. package/lib/commonjs/withCollapsibleContext.js +31 -44
  36. package/lib/commonjs/withCollapsibleContext.js.map +1 -1
  37. package/lib/module/components/CollapsibleContainer.js +11 -14
  38. package/lib/module/components/CollapsibleContainer.js.map +1 -1
  39. package/lib/module/components/CollapsibleView.js +38 -35
  40. package/lib/module/components/CollapsibleView.js.map +1 -1
  41. package/lib/module/components/header/AnimatedTopView.js +4 -3
  42. package/lib/module/components/header/AnimatedTopView.js.map +1 -1
  43. package/lib/module/components/header/CollapsibleHeaderConsumer.js +12 -9
  44. package/lib/module/components/header/CollapsibleHeaderConsumer.js.map +1 -1
  45. package/lib/module/components/header/CollapsibleHeaderContainer.js +5 -4
  46. package/lib/module/components/header/CollapsibleHeaderContainer.js.map +1 -1
  47. package/lib/module/components/header/CollapsibleHeaderProvider.js +6 -6
  48. package/lib/module/components/header/CollapsibleHeaderProvider.js.map +1 -1
  49. package/lib/module/components/header/StickyView.js +11 -10
  50. package/lib/module/components/header/StickyView.js.map +1 -1
  51. package/lib/module/components/scrollable/CollapsibleFlatList.js +12 -13
  52. package/lib/module/components/scrollable/CollapsibleFlatList.js.map +1 -1
  53. package/lib/module/components/scrollable/CollapsibleScrollView.js +13 -12
  54. package/lib/module/components/scrollable/CollapsibleScrollView.js.map +1 -1
  55. package/lib/module/components/scrollable/useAnimatedScroll.js +8 -10
  56. package/lib/module/components/scrollable/useAnimatedScroll.js.map +1 -1
  57. package/lib/module/hooks/useCollapsibleContext.js +0 -2
  58. package/lib/module/hooks/useCollapsibleContext.js.map +1 -1
  59. package/lib/module/hooks/useCollapsibleHeaderContext.js +0 -2
  60. package/lib/module/hooks/useCollapsibleHeaderContext.js.map +1 -1
  61. package/lib/module/hooks/useInternalCollapsibleContext.js +0 -2
  62. package/lib/module/hooks/useInternalCollapsibleContext.js.map +1 -1
  63. package/lib/module/hooks/useKeyboardShowEvent.js.map +1 -1
  64. package/lib/module/index.js +0 -1
  65. package/lib/module/index.js.map +1 -1
  66. package/lib/module/types.js.map +1 -1
  67. package/lib/module/utils/debounce.js +8 -6
  68. package/lib/module/utils/debounce.js.map +1 -1
  69. package/lib/module/withCollapsibleContext.js +30 -34
  70. package/lib/module/withCollapsibleContext.js.map +1 -1
  71. package/lib/typescript/components/CollapsibleContainer.d.ts +4 -2
  72. package/lib/typescript/components/CollapsibleContainer.d.ts.map +1 -0
  73. package/lib/typescript/components/CollapsibleView.d.ts +6 -5
  74. package/lib/typescript/components/CollapsibleView.d.ts.map +1 -0
  75. package/lib/typescript/components/header/AnimatedTopView.d.ts +4 -2
  76. package/lib/typescript/components/header/AnimatedTopView.d.ts.map +1 -0
  77. package/lib/typescript/components/header/CollapsibleHeaderConsumer.d.ts +3 -1
  78. package/lib/typescript/components/header/CollapsibleHeaderConsumer.d.ts.map +1 -0
  79. package/lib/typescript/components/header/CollapsibleHeaderContainer.d.ts +2 -1
  80. package/lib/typescript/components/header/CollapsibleHeaderContainer.d.ts.map +1 -0
  81. package/lib/typescript/components/header/CollapsibleHeaderProvider.d.ts +3 -2
  82. package/lib/typescript/components/header/CollapsibleHeaderProvider.d.ts.map +1 -0
  83. package/lib/typescript/components/header/StickyView.d.ts +4 -2
  84. package/lib/typescript/components/header/StickyView.d.ts.map +1 -0
  85. package/lib/typescript/components/scrollable/CollapsibleFlatList.d.ts +4 -2
  86. package/lib/typescript/components/scrollable/CollapsibleFlatList.d.ts.map +1 -0
  87. package/lib/typescript/components/scrollable/CollapsibleScrollView.d.ts +4 -3
  88. package/lib/typescript/components/scrollable/CollapsibleScrollView.d.ts.map +1 -0
  89. package/lib/typescript/components/scrollable/useAnimatedScroll.d.ts +2 -1
  90. package/lib/typescript/components/scrollable/useAnimatedScroll.d.ts.map +1 -0
  91. package/lib/typescript/hooks/useCollapsibleContext.d.ts +1 -0
  92. package/lib/typescript/hooks/useCollapsibleContext.d.ts.map +1 -0
  93. package/lib/typescript/hooks/useCollapsibleHeaderContext.d.ts +3 -2
  94. package/lib/typescript/hooks/useCollapsibleHeaderContext.d.ts.map +1 -0
  95. package/lib/typescript/hooks/useInternalCollapsibleContext.d.ts +1 -0
  96. package/lib/typescript/hooks/useInternalCollapsibleContext.d.ts.map +1 -0
  97. package/lib/typescript/hooks/useKeyboardShowEvent.d.ts +1 -0
  98. package/lib/typescript/hooks/useKeyboardShowEvent.d.ts.map +1 -0
  99. package/lib/typescript/index.d.ts +1 -1
  100. package/lib/typescript/index.d.ts.map +1 -0
  101. package/lib/typescript/types.d.ts +8 -7
  102. package/lib/typescript/types.d.ts.map +1 -0
  103. package/lib/typescript/utils/debounce.d.ts +1 -0
  104. package/lib/typescript/utils/debounce.d.ts.map +1 -0
  105. package/lib/typescript/withCollapsibleContext.d.ts +3 -2
  106. package/lib/typescript/withCollapsibleContext.d.ts.map +1 -0
  107. package/package.json +39 -34
  108. package/src/components/CollapsibleView.tsx +13 -6
  109. package/src/components/header/CollapsibleHeaderConsumer.tsx +2 -1
  110. package/src/components/header/StickyView.tsx +3 -4
  111. package/src/index.tsx +0 -1
  112. package/src/withCollapsibleContext.tsx +30 -26
  113. package/lib/commonjs/components/pullToRefresh/PullToRefreshContainer.js +0 -75
  114. package/lib/commonjs/components/pullToRefresh/PullToRefreshContainer.js.map +0 -1
  115. package/lib/commonjs/components/pullToRefresh/PullToRefreshProvider.js +0 -35
  116. package/lib/commonjs/components/pullToRefresh/PullToRefreshProvider.js.map +0 -1
  117. package/lib/commonjs/components/pullToRefresh/RefreshControl.js +0 -91
  118. package/lib/commonjs/components/pullToRefresh/RefreshControl.js.map +0 -1
  119. package/lib/commonjs/components/pullToRefresh/usePullToRefreshContext.js +0 -24
  120. package/lib/commonjs/components/pullToRefresh/usePullToRefreshContext.js.map +0 -1
  121. package/lib/commonjs/components/pullToRefresh/utils.js +0 -59
  122. package/lib/commonjs/components/pullToRefresh/utils.js.map +0 -1
  123. package/lib/module/components/pullToRefresh/PullToRefreshContainer.js +0 -56
  124. package/lib/module/components/pullToRefresh/PullToRefreshContainer.js.map +0 -1
  125. package/lib/module/components/pullToRefresh/PullToRefreshProvider.js +0 -21
  126. package/lib/module/components/pullToRefresh/PullToRefreshProvider.js.map +0 -1
  127. package/lib/module/components/pullToRefresh/RefreshControl.js +0 -73
  128. package/lib/module/components/pullToRefresh/RefreshControl.js.map +0 -1
  129. package/lib/module/components/pullToRefresh/usePullToRefreshContext.js +0 -13
  130. package/lib/module/components/pullToRefresh/usePullToRefreshContext.js.map +0 -1
  131. package/lib/module/components/pullToRefresh/utils.js +0 -42
  132. package/lib/module/components/pullToRefresh/utils.js.map +0 -1
  133. package/lib/typescript/components/pullToRefresh/PullToRefreshContainer.d.ts +0 -8
  134. package/lib/typescript/components/pullToRefresh/PullToRefreshProvider.d.ts +0 -6
  135. package/lib/typescript/components/pullToRefresh/RefreshControl.d.ts +0 -9
  136. package/lib/typescript/components/pullToRefresh/usePullToRefreshContext.d.ts +0 -4
  137. package/lib/typescript/components/pullToRefresh/utils.d.ts +0 -20
  138. package/src/components/pullToRefresh/PullToRefreshContainer.tsx +0 -66
  139. package/src/components/pullToRefresh/PullToRefreshProvider.tsx +0 -27
  140. package/src/components/pullToRefresh/RefreshControl.tsx +0 -100
  141. package/src/components/pullToRefresh/usePullToRefreshContext.ts +0 -13
  142. package/src/components/pullToRefresh/utils.ts +0 -49
@@ -1 +1 @@
1
- {"version":3,"sources":["useKeyboardShowEvent.ts"],"names":["useKeyboardShowEvent","callback","savedCallback","current","subscription","Keyboard","addListener","remove"],"mappings":";;;;;;;AAAA;;AACA;;AAEe,SAASA,oBAAT,CAA8BC,QAA9B,EAAoD;AACjE,QAAMC,aAAa,GAAG,mBAAOD,QAAP,CAAtB;AAEA,wBAAU,MAAM;AACdC,IAAAA,aAAa,CAACC,OAAd,GAAwBF,QAAxB;AACD,GAFD,EAEG,CAACA,QAAD,CAFH;AAIA,wBAAU,MAAM;AACd,UAAMG,YAAY,GAAGC,sBAASC,WAAT,CAAqB,iBAArB,EAAwC,MAAM;AACjE,UAAIJ,aAAa,CAACC,OAAlB,EAA2B;AACzBD,QAAAA,aAAa,CAACC,OAAd;AACD;AACF,KAJoB,CAArB;;AAMA,WAAO,MAAM;AACXC,MAAAA,YAAY,CAACG,MAAb;AACD,KAFD;AAGD,GAVD,EAUG,EAVH;AAWD","sourcesContent":["import { useEffect, useRef } from 'react';\nimport { Keyboard } from 'react-native';\n\nexport default function useKeyboardShowEvent(callback: () => void) {\n const savedCallback = useRef(callback);\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n const subscription = Keyboard.addListener('keyboardDidShow', () => {\n if (savedCallback.current) {\n savedCallback.current();\n }\n });\n\n return () => {\n subscription.remove();\n };\n }, []);\n}\n"]}
1
+ {"version":3,"names":["_react","require","_reactNative","useKeyboardShowEvent","callback","savedCallback","useRef","useEffect","current","subscription","Keyboard","addListener","remove"],"sourceRoot":"../../../src","sources":["hooks/useKeyboardShowEvent.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEe,SAASE,oBAAoBA,CAACC,QAAoB,EAAE;EACjE,MAAMC,aAAa,GAAG,IAAAC,aAAM,EAACF,QAAQ,CAAC;EAEtC,IAAAG,gBAAS,EAAC,MAAM;IACdF,aAAa,CAACG,OAAO,GAAGJ,QAAQ;EAClC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAAG,gBAAS,EAAC,MAAM;IACd,MAAME,YAAY,GAAGC,qBAAQ,CAACC,WAAW,CAAC,iBAAiB,EAAE,MAAM;MACjE,IAAIN,aAAa,CAACG,OAAO,EAAE;QACzBH,aAAa,CAACG,OAAO,CAAC,CAAC;MACzB;IACF,CAAC,CAAC;IAEF,OAAO,MAAM;MACXC,YAAY,CAACG,MAAM,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR"}
@@ -11,21 +11,8 @@ var _exportNames = {
11
11
  CollapsibleScrollView: true,
12
12
  CollapsibleHeaderContainer: true,
13
13
  StickyView: true,
14
- RefreshControl: true,
15
14
  CollapsibleView: true
16
15
  };
17
- Object.defineProperty(exports, "withCollapsibleContext", {
18
- enumerable: true,
19
- get: function () {
20
- return _withCollapsibleContext.default;
21
- }
22
- });
23
- Object.defineProperty(exports, "useCollapsibleContext", {
24
- enumerable: true,
25
- get: function () {
26
- return _useCollapsibleContext.default;
27
- }
28
- });
29
16
  Object.defineProperty(exports, "CollapsibleContainer", {
30
17
  enumerable: true,
31
18
  get: function () {
@@ -38,16 +25,22 @@ Object.defineProperty(exports, "CollapsibleFlatList", {
38
25
  return _CollapsibleFlatList.default;
39
26
  }
40
27
  });
28
+ Object.defineProperty(exports, "CollapsibleHeaderContainer", {
29
+ enumerable: true,
30
+ get: function () {
31
+ return _CollapsibleHeaderContainer.default;
32
+ }
33
+ });
41
34
  Object.defineProperty(exports, "CollapsibleScrollView", {
42
35
  enumerable: true,
43
36
  get: function () {
44
37
  return _CollapsibleScrollView.default;
45
38
  }
46
39
  });
47
- Object.defineProperty(exports, "CollapsibleHeaderContainer", {
40
+ Object.defineProperty(exports, "CollapsibleView", {
48
41
  enumerable: true,
49
42
  get: function () {
50
- return _CollapsibleHeaderContainer.default;
43
+ return _CollapsibleView.default;
51
44
  }
52
45
  });
53
46
  Object.defineProperty(exports, "StickyView", {
@@ -56,37 +49,26 @@ Object.defineProperty(exports, "StickyView", {
56
49
  return _StickyView.default;
57
50
  }
58
51
  });
59
- Object.defineProperty(exports, "RefreshControl", {
52
+ Object.defineProperty(exports, "useCollapsibleContext", {
60
53
  enumerable: true,
61
54
  get: function () {
62
- return _RefreshControl.default;
55
+ return _useCollapsibleContext.default;
63
56
  }
64
57
  });
65
- Object.defineProperty(exports, "CollapsibleView", {
58
+ Object.defineProperty(exports, "withCollapsibleContext", {
66
59
  enumerable: true,
67
60
  get: function () {
68
- return _CollapsibleView.default;
61
+ return _withCollapsibleContext.default;
69
62
  }
70
63
  });
71
-
72
64
  var _withCollapsibleContext = _interopRequireDefault(require("./withCollapsibleContext"));
73
-
74
65
  var _useCollapsibleContext = _interopRequireDefault(require("./hooks/useCollapsibleContext"));
75
-
76
66
  var _CollapsibleContainer = _interopRequireDefault(require("./components/CollapsibleContainer"));
77
-
78
67
  var _CollapsibleFlatList = _interopRequireDefault(require("./components/scrollable/CollapsibleFlatList"));
79
-
80
68
  var _CollapsibleScrollView = _interopRequireDefault(require("./components/scrollable/CollapsibleScrollView"));
81
-
82
69
  var _CollapsibleHeaderContainer = _interopRequireDefault(require("./components/header/CollapsibleHeaderContainer"));
83
-
84
70
  var _StickyView = _interopRequireDefault(require("./components/header/StickyView"));
85
-
86
- var _RefreshControl = _interopRequireDefault(require("./components/pullToRefresh/RefreshControl"));
87
-
88
71
  var _CollapsibleView = _interopRequireWildcard(require("./components/CollapsibleView"));
89
-
90
72
  Object.keys(_CollapsibleView).forEach(function (key) {
91
73
  if (key === "default" || key === "__esModule") return;
92
74
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -98,10 +80,7 @@ Object.keys(_CollapsibleView).forEach(function (key) {
98
80
  }
99
81
  });
100
82
  });
101
-
102
83
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
103
-
104
84
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
105
-
106
85
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
107
86
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export { default as withCollapsibleContext } from './withCollapsibleContext';\nexport { default as useCollapsibleContext } from './hooks/useCollapsibleContext';\n\nexport { default as CollapsibleContainer } from './components/CollapsibleContainer';\nexport { default as CollapsibleFlatList } from './components/scrollable/CollapsibleFlatList';\nexport { default as CollapsibleScrollView } from './components/scrollable/CollapsibleScrollView';\nexport { default as CollapsibleHeaderContainer } from './components/header/CollapsibleHeaderContainer';\nexport { default as StickyView } from './components/header/StickyView';\nexport { default as RefreshControl } from './components/pullToRefresh/RefreshControl';\nexport { default as CollapsibleView } from './components/CollapsibleView';\nexport * from './components/CollapsibleView';\n"]}
1
+ {"version":3,"names":["_withCollapsibleContext","_interopRequireDefault","require","_useCollapsibleContext","_CollapsibleContainer","_CollapsibleFlatList","_CollapsibleScrollView","_CollapsibleHeaderContainer","_StickyView","_CollapsibleView","_interopRequireWildcard","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,qBAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,oBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,sBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,2BAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,WAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,gBAAA,GAAAC,uBAAA,CAAAR,OAAA;AACAS,MAAA,CAAAC,IAAA,CAAAH,gBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,gBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,gBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AAA6C,SAAAS,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAd,wBAAAkB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAT,GAAA,CAAAM,GAAA,SAAAK,MAAA,WAAAC,qBAAA,GAAAvB,MAAA,CAAAS,cAAA,IAAAT,MAAA,CAAAwB,wBAAA,WAAArB,GAAA,IAAAc,GAAA,QAAAd,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAW,GAAA,EAAAd,GAAA,SAAAsB,IAAA,GAAAF,qBAAA,GAAAvB,MAAA,CAAAwB,wBAAA,CAAAP,GAAA,EAAAd,GAAA,cAAAsB,IAAA,KAAAA,IAAA,CAAAd,GAAA,IAAAc,IAAA,CAAAC,GAAA,KAAA1B,MAAA,CAAAS,cAAA,CAAAa,MAAA,EAAAnB,GAAA,EAAAsB,IAAA,YAAAH,MAAA,CAAAnB,GAAA,IAAAc,GAAA,CAAAd,GAAA,SAAAmB,MAAA,CAAAH,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAM,GAAA,CAAAT,GAAA,EAAAK,MAAA,YAAAA,MAAA;AAAA,SAAAhC,uBAAA2B,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":""}
@@ -4,17 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.debounce = debounce;
7
-
8
7
  // https://gist.github.com/ca0v/73a31f57b397606c9813472f7493a940
9
- function debounce(cb, wait = 20) {
8
+ function debounce(cb) {
9
+ let wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;
10
10
  let h = 0;
11
-
12
- let callable = (...args) => {
13
- clearTimeout(h); // @ts-ignore
14
-
11
+ let callable = function () {
12
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13
+ args[_key] = arguments[_key];
14
+ }
15
+ clearTimeout(h);
16
+ // @ts-ignore
15
17
  h = setTimeout(() => cb(...args), wait);
16
18
  };
17
-
18
19
  return callable;
19
20
  }
20
21
  //# sourceMappingURL=debounce.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["debounce.ts"],"names":["debounce","cb","wait","h","callable","args","clearTimeout","setTimeout"],"mappings":";;;;;;;AAAA;AACO,SAASA,QAAT,CAAsCC,EAAtC,EAA6CC,IAAI,GAAG,EAApD,EAAwD;AAC7D,MAAIC,CAAC,GAAG,CAAR;;AACA,MAAIC,QAAQ,GAAG,CAAC,GAAGC,IAAJ,KAAkB;AAC/BC,IAAAA,YAAY,CAACH,CAAD,CAAZ,CAD+B,CAE/B;;AACAA,IAAAA,CAAC,GAAGI,UAAU,CAAC,MAAMN,EAAE,CAAC,GAAGI,IAAJ,CAAT,EAAoBH,IAApB,CAAd;AACD,GAJD;;AAKA,SAAgBE,QAAhB;AACD","sourcesContent":["// https://gist.github.com/ca0v/73a31f57b397606c9813472f7493a940\nexport function debounce<T extends Function>(cb: T, wait = 20) {\n let h = 0;\n let callable = (...args: any) => {\n clearTimeout(h);\n // @ts-ignore\n h = setTimeout(() => cb(...args), wait);\n };\n return <T>(<any>callable);\n}\n"]}
1
+ {"version":3,"names":["debounce","cb","wait","arguments","length","undefined","h","callable","_len","args","Array","_key","clearTimeout","setTimeout"],"sourceRoot":"../../../src","sources":["utils/debounce.ts"],"mappings":";;;;;;AAAA;AACO,SAASA,QAAQA,CAAqBC,EAAK,EAAa;EAAA,IAAXC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAC3D,IAAIG,CAAC,GAAG,CAAC;EACT,IAAIC,QAAQ,GAAG,SAAAA,CAAA,EAAkB;IAAA,SAAAC,IAAA,GAAAL,SAAA,CAAAC,MAAA,EAAdK,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;MAAJF,IAAI,CAAAE,IAAA,IAAAR,SAAA,CAAAQ,IAAA;IAAA;IACrBC,YAAY,CAACN,CAAC,CAAC;IACf;IACAA,CAAC,GAAGO,UAAU,CAAC,MAAMZ,EAAE,CAAC,GAAGQ,IAAI,CAAC,EAAEP,IAAI,CAAC;EACzC,CAAC;EACD,OAAgBK,QAAQ;AAC1B"}
@@ -4,28 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = withCollapsibleContext;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _useCollapsibleContext = require("./hooks/useCollapsibleContext");
11
-
12
9
  var _useInternalCollapsibleContext = require("./hooks/useInternalCollapsibleContext");
13
-
14
10
  var _reactNativeReanimated = require("react-native-reanimated");
15
-
16
11
  var _debounce = require("./utils/debounce");
17
-
18
12
  var _CollapsibleHeaderProvider = _interopRequireDefault(require("./components/header/CollapsibleHeaderProvider"));
19
-
20
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
-
24
15
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
-
26
- /* eslint-disable no-shadow */
27
-
28
16
  /* eslint-disable react-hooks/exhaustive-deps */
17
+
29
18
  function withCollapsibleContext(Component) {
30
19
  return props => {
31
20
  const collapsibleHandlers = (0, _react.useRef)();
@@ -36,7 +25,6 @@ function withCollapsibleContext(Component) {
36
25
  const stickyViewPositionsRef = (0, _react.useRef)({});
37
26
  const stickyViewPositions = (0, _reactNativeReanimated.useSharedValue)({});
38
27
  const fixedHeaderHeight = (0, _reactNativeReanimated.useSharedValue)(0);
39
- const stickyHeaderHeight = (0, _reactNativeReanimated.useSharedValue)(0);
40
28
  const containerHeight = (0, _reactNativeReanimated.useSharedValue)(0);
41
29
  const firstStickyViewY = (0, _reactNativeReanimated.useSharedValue)(1000000);
42
30
  const containerRef = (0, _react.useRef)(null);
@@ -49,51 +37,47 @@ function withCollapsibleContext(Component) {
49
37
  return scrollY.value >= maxY;
50
38
  }, []);
51
39
  const contentMinHeight = (0, _reactNativeReanimated.useDerivedValue)(() => {
52
- return containerHeight.value + fixedHeaderHeight.value - stickyHeaderHeight.value;
40
+ return containerHeight.value + fixedHeaderHeight.value;
53
41
  }, []);
54
42
  (0, _reactNativeReanimated.useAnimatedReaction)(() => {
55
43
  const totalHeight = Object.keys(stickyViewPositions.value).reduce((acc, item) => {
56
- return acc + stickyViewPositions.value[item].top;
44
+ const value = stickyViewPositions.value[item];
45
+ if (value) {
46
+ return acc + value.top;
47
+ }
48
+ return acc;
57
49
  }, 0);
58
50
  return totalHeight - fixedHeaderHeight.value;
59
51
  }, (result, previous) => {
60
52
  if (result !== previous) {
61
53
  var _viewPositions$sorted;
62
-
63
54
  const viewPositions = stickyViewPositions.value;
64
- const headerHeight = fixedHeaderHeight.value;
65
- const sortedKeys = Object.keys(viewPositions).sort((a, b) => viewPositions[a].top - viewPositions[b].top);
55
+ const sortedKeys = Object.keys(viewPositions).filter(v => !!viewPositions[v])
56
+ // @ts-ignore
57
+ .sort((a, b) => viewPositions[a].top - viewPositions[b].top);
66
58
  let totalTop = 0;
67
59
  const values = {};
68
-
69
60
  for (let i = 0; i < sortedKeys.length; i++) {
70
- values[sortedKeys[i]] = totalTop; // Try minus 1 make it filled when scrolling up.
61
+ // @ts-ignore
62
+ values[sortedKeys[i]] = totalTop;
63
+ // Try minus 1 make it filled when scrolling up.
71
64
  // Otherwise, we can see a small space between the persits views
72
-
65
+ // @ts-ignore
73
66
  totalTop += viewPositions[sortedKeys[i]].height - 1;
74
67
  }
75
-
76
68
  stickyViewTops.value = values;
69
+ // @ts-ignore
77
70
  firstStickyViewY.value = ((_viewPositions$sorted = viewPositions[sortedKeys[0]]) === null || _viewPositions$sorted === void 0 ? void 0 : _viewPositions$sorted.top) || 0;
78
- const stickyHeader = sortedKeys.reduce((acc, key) => {
79
- const data = viewPositions[key];
80
- const isInsideHeader = data.top < headerHeight;
81
-
82
- if (isInsideHeader) {
83
- return acc + data.height;
84
- }
85
-
86
- return acc;
87
- }, 0);
88
- stickyHeaderHeight.value = stickyHeader;
89
71
  }
90
72
  });
91
73
  const handleStickyViewLayout = (0, _react.useCallback)((viewKey, viewRef) => {
92
74
  if (viewRef && viewRef.current && containerRef.current) {
93
75
  stickyViewRefs.current[viewKey] = viewRef;
94
- viewRef.current.measureLayout( // @ts-ignore
76
+ viewRef.current.measureLayout(
77
+ // @ts-ignore
95
78
  containerRef.current, (left, top, width, height) => {
96
- stickyViewPositionsRef.current = { ...stickyViewPositionsRef.current,
79
+ stickyViewPositionsRef.current = {
80
+ ...stickyViewPositionsRef.current,
97
81
  [viewKey]: {
98
82
  left,
99
83
  top,
@@ -101,11 +85,19 @@ function withCollapsibleContext(Component) {
101
85
  height
102
86
  }
103
87
  };
88
+ // @ts-ignore
104
89
  stickyViewPositions.value = stickyViewPositionsRef.current;
105
90
  }, () => {});
106
91
  } else {
107
- delete stickyViewRefs.current[viewKey];
108
- delete stickyViewPositionsRef.current[viewKey];
92
+ stickyViewRefs.current = {
93
+ ...stickyViewRefs.current,
94
+ [viewKey]: undefined
95
+ };
96
+ stickyViewPositionsRef.current = {
97
+ ...stickyViewPositionsRef.current,
98
+ [viewKey]: undefined
99
+ };
100
+ // @ts-ignore
109
101
  stickyViewPositions.value = stickyViewPositionsRef.current;
110
102
  }
111
103
  }, []);
@@ -113,7 +105,6 @@ function withCollapsibleContext(Component) {
113
105
  return (0, _debounce.debounce)(() => {
114
106
  Object.keys(stickyViewRefs.current).forEach(key => {
115
107
  const viewRef = stickyViewRefs.current[key];
116
-
117
108
  if (viewRef) {
118
109
  handleStickyViewLayout(key, viewRef);
119
110
  }
@@ -124,8 +115,8 @@ function withCollapsibleContext(Component) {
124
115
  headerHeight.value = (0, _reactNativeReanimated.withTiming)(height, {
125
116
  duration: fixedHeaderHeight.value === 0 ? 0 : 10
126
117
  });
127
- fixedHeaderHeight.value = height; // Try refresh sticky positions
128
-
118
+ fixedHeaderHeight.value = height;
119
+ // Try refresh sticky positions
129
120
  debounceRefreshStickyPositions();
130
121
  }, []);
131
122
  const handleContainerHeight = (0, _react.useCallback)(height => {
@@ -135,22 +126,18 @@ function withCollapsibleContext(Component) {
135
126
  return {
136
127
  collapse: animated => {
137
128
  var _collapsibleHandlers$;
138
-
139
129
  return (_collapsibleHandlers$ = collapsibleHandlers.current) === null || _collapsibleHandlers$ === void 0 ? void 0 : _collapsibleHandlers$.collapse(animated);
140
130
  },
141
131
  expand: () => {
142
132
  var _collapsibleHandlers$2;
143
-
144
133
  return (_collapsibleHandlers$2 = collapsibleHandlers.current) === null || _collapsibleHandlers$2 === void 0 ? void 0 : _collapsibleHandlers$2.expand();
145
134
  },
146
135
  scrollTo: (offset, animate) => {
147
136
  var _collapsibleHandlers$3;
148
-
149
137
  return (_collapsibleHandlers$3 = collapsibleHandlers.current) === null || _collapsibleHandlers$3 === void 0 ? void 0 : _collapsibleHandlers$3.scrollTo(offset, animate);
150
138
  },
151
139
  scrollToIndex: params => {
152
140
  var _collapsibleHandlers$4;
153
-
154
141
  return (_collapsibleHandlers$4 = collapsibleHandlers.current) === null || _collapsibleHandlers$4 === void 0 ? void 0 : _collapsibleHandlers$4.scrollToIndex(params);
155
142
  },
156
143
  headerHeight,
@@ -1 +1 @@
1
- {"version":3,"sources":["withCollapsibleContext.tsx"],"names":["withCollapsibleContext","Component","props","collapsibleHandlers","headerHeight","scrollY","stickyViewRefs","stickyViewTops","stickyViewPositionsRef","stickyViewPositions","fixedHeaderHeight","stickyHeaderHeight","containerHeight","firstStickyViewY","containerRef","scrollViewRef","setCollapsibleHandlers","handlers","current","headerCollapsed","maxY","value","contentMinHeight","totalHeight","Object","keys","reduce","acc","item","top","result","previous","viewPositions","sortedKeys","sort","a","b","totalTop","values","i","length","height","stickyHeader","key","data","isInsideHeader","handleStickyViewLayout","viewKey","viewRef","measureLayout","left","width","debounceRefreshStickyPositions","forEach","handleHeaderContainerLayout","duration","handleContainerHeight","context","collapse","animated","expand","scrollTo","offset","animate","scrollToIndex","params","internalContext"],"mappings":"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","sourcesContent":["/* eslint-disable no-shadow */\n/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { FC, useCallback, useMemo, useRef } from 'react';\nimport type { CollapsibleHandles, LayoutParams } from './types';\nimport { CollapsibleContext } from './hooks/useCollapsibleContext';\nimport { InternalCollapsibleContext } from './hooks/useInternalCollapsibleContext';\nimport {\n useAnimatedReaction,\n useDerivedValue,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\nimport type { View } from 'react-native';\nimport { debounce } from './utils/debounce';\nimport CollapsibleHeaderProvider from './components/header/CollapsibleHeaderProvider';\n\nexport default function withCollapsibleContext<T>(Component: FC<T>) {\n return (props: T) => {\n const collapsibleHandlers = useRef<CollapsibleHandles>();\n const headerHeight = useSharedValue(0);\n const scrollY = useSharedValue(0);\n const stickyViewRefs = useRef<Record<string, React.RefObject<View>>>({});\n const stickyViewTops = useSharedValue<Record<string, number>>({});\n const stickyViewPositionsRef = useRef<Record<string, LayoutParams>>({});\n const stickyViewPositions = useSharedValue<Record<string, LayoutParams>>(\n {}\n );\n const fixedHeaderHeight = useSharedValue(0);\n const stickyHeaderHeight = useSharedValue(0);\n const containerHeight = useSharedValue(0);\n const firstStickyViewY = useSharedValue(1000000);\n const containerRef = useRef<View>(null);\n const scrollViewRef = useRef<View>(null);\n\n const setCollapsibleHandlers = useCallback((handlers) => {\n collapsibleHandlers.current = handlers;\n }, []);\n\n const headerCollapsed = useDerivedValue(() => {\n const maxY = fixedHeaderHeight.value - firstStickyViewY.value;\n return scrollY.value >= maxY;\n }, []);\n\n const contentMinHeight = useDerivedValue(() => {\n return (\n containerHeight.value +\n fixedHeaderHeight.value -\n stickyHeaderHeight.value\n );\n }, []);\n\n useAnimatedReaction(\n () => {\n const totalHeight = Object.keys(stickyViewPositions.value).reduce(\n (acc, item) => {\n return acc + stickyViewPositions.value[item].top;\n },\n 0\n );\n return totalHeight - fixedHeaderHeight.value;\n },\n (result, previous) => {\n if (result !== previous) {\n const viewPositions = stickyViewPositions.value;\n const headerHeight = fixedHeaderHeight.value;\n const sortedKeys = Object.keys(viewPositions).sort(\n (a, b) => viewPositions[a].top - viewPositions[b].top\n );\n let totalTop = 0;\n const values: any = {};\n for (let i = 0; i < sortedKeys.length; i++) {\n values[sortedKeys[i]] = totalTop;\n // Try minus 1 make it filled when scrolling up.\n // Otherwise, we can see a small space between the persits views\n totalTop += viewPositions[sortedKeys[i]].height - 1;\n }\n stickyViewTops.value = values;\n firstStickyViewY.value = viewPositions[sortedKeys[0]]?.top || 0;\n const stickyHeader = sortedKeys.reduce((acc, key) => {\n const data = viewPositions[key];\n const isInsideHeader = data.top < headerHeight;\n if (isInsideHeader) {\n return acc + data.height;\n }\n return acc;\n }, 0);\n stickyHeaderHeight.value = stickyHeader;\n }\n }\n );\n\n const handleStickyViewLayout = useCallback(\n (viewKey: string, viewRef?: React.RefObject<View>) => {\n if (viewRef && viewRef.current && containerRef.current) {\n stickyViewRefs.current[viewKey] = viewRef;\n viewRef.current.measureLayout(\n // @ts-ignore\n containerRef.current,\n (left, top, width, height) => {\n stickyViewPositionsRef.current = {\n ...stickyViewPositionsRef.current,\n [viewKey]: { left, top, width, height },\n };\n stickyViewPositions.value = stickyViewPositionsRef.current;\n },\n () => {}\n );\n } else {\n delete stickyViewRefs.current[viewKey];\n delete stickyViewPositionsRef.current[viewKey];\n stickyViewPositions.value = stickyViewPositionsRef.current;\n }\n },\n []\n );\n\n const debounceRefreshStickyPositions = useMemo(() => {\n return debounce(() => {\n Object.keys(stickyViewRefs.current).forEach((key) => {\n const viewRef = stickyViewRefs.current[key];\n if (viewRef) {\n handleStickyViewLayout(key, viewRef);\n }\n });\n }, 200);\n }, []);\n\n const handleHeaderContainerLayout = useCallback((height: number) => {\n headerHeight.value = withTiming(height, {\n duration: fixedHeaderHeight.value === 0 ? 0 : 10,\n });\n fixedHeaderHeight.value = height;\n // Try refresh sticky positions\n debounceRefreshStickyPositions();\n }, []);\n\n const handleContainerHeight = useCallback((height: number) => {\n containerHeight.value = height;\n }, []);\n\n const context = useMemo(() => {\n return {\n collapse: (animated?: boolean) =>\n collapsibleHandlers.current?.collapse(animated),\n expand: () => collapsibleHandlers.current?.expand(),\n scrollTo: (offset: number, animate?: boolean) =>\n collapsibleHandlers.current?.scrollTo(offset, animate),\n scrollToIndex: (params: any) =>\n collapsibleHandlers.current?.scrollToIndex(params),\n headerHeight,\n scrollY,\n headerCollapsed,\n };\n }, [scrollY, headerHeight, headerCollapsed]);\n\n const internalContext = useMemo(\n () => ({\n scrollViewRef,\n containerRef,\n handleStickyViewLayout,\n handleHeaderContainerLayout,\n setCollapsibleHandlers,\n handleContainerHeight,\n firstStickyViewY,\n stickyViewTops,\n stickyViewPositions,\n fixedHeaderHeight,\n contentMinHeight,\n }),\n [\n setCollapsibleHandlers,\n handleStickyViewLayout,\n handleHeaderContainerLayout,\n handleContainerHeight,\n firstStickyViewY,\n stickyViewTops,\n stickyViewPositions,\n fixedHeaderHeight,\n contentMinHeight,\n ]\n );\n\n return (\n <CollapsibleContext.Provider value={context}>\n <InternalCollapsibleContext.Provider value={internalContext}>\n <CollapsibleHeaderProvider>\n {/** @ts-ignore */}\n <Component {...props} />\n </CollapsibleHeaderProvider>\n </InternalCollapsibleContext.Provider>\n </CollapsibleContext.Provider>\n );\n };\n}\n"]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_useCollapsibleContext","_useInternalCollapsibleContext","_reactNativeReanimated","_debounce","_CollapsibleHeaderProvider","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","withCollapsibleContext","Component","props","collapsibleHandlers","useRef","headerHeight","useSharedValue","scrollY","stickyViewRefs","stickyViewTops","stickyViewPositionsRef","stickyViewPositions","fixedHeaderHeight","containerHeight","firstStickyViewY","containerRef","scrollViewRef","setCollapsibleHandlers","useCallback","handlers","current","headerCollapsed","useDerivedValue","maxY","value","contentMinHeight","useAnimatedReaction","totalHeight","keys","reduce","acc","item","top","result","previous","_viewPositions$sorted","viewPositions","sortedKeys","filter","v","sort","a","b","totalTop","values","i","length","height","handleStickyViewLayout","viewKey","viewRef","measureLayout","left","width","undefined","debounceRefreshStickyPositions","useMemo","debounce","forEach","handleHeaderContainerLayout","withTiming","duration","handleContainerHeight","context","collapse","animated","_collapsibleHandlers$","expand","_collapsibleHandlers$2","scrollTo","offset","animate","_collapsibleHandlers$3","scrollToIndex","params","_collapsibleHandlers$4","internalContext","createElement","CollapsibleContext","Provider","InternalCollapsibleContext"],"sourceRoot":"../../src","sources":["withCollapsibleContext.tsx"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- function _extends() { _extends = Object.assign || 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
-
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); }
3
2
  /* eslint-disable react-hooks/exhaustive-deps */
4
3
  import React, { useCallback, useRef } from 'react';
5
4
  import { KeyboardAvoidingView, StyleSheet, View } from 'react-native';
@@ -7,12 +6,13 @@ import useKeyboardShowEvent from '../hooks/useKeyboardShowEvent';
7
6
  import useInternalCollapsibleContext from '../hooks/useInternalCollapsibleContext';
8
7
  import useCollapsibleContext from '../hooks/useCollapsibleContext';
9
8
  import CollapsibleHeaderConsumer from './header/CollapsibleHeaderConsumer';
10
- export default function CollapsibleContainer({
11
- children,
12
- keyboardAvoidingViewProps,
13
- textInputRefs = [],
14
- ...props
15
- }) {
9
+ export default function CollapsibleContainer(_ref) {
10
+ let {
11
+ children,
12
+ keyboardAvoidingViewProps,
13
+ textInputRefs = [],
14
+ ...props
15
+ } = _ref;
16
16
  const {
17
17
  containerRef,
18
18
  handleContainerHeight
@@ -26,19 +26,16 @@ export default function CollapsibleContainer({
26
26
  textInputRefs.some(ref => {
27
27
  const isFocusedFunc = ref.current.isFocused;
28
28
  const isFocused = isFocusedFunc && typeof isFocusedFunc === 'function' ? isFocusedFunc() : isFocusedFunc;
29
-
30
29
  if (isFocused) {
31
- ref.current.measureLayout( // @ts-ignore
30
+ ref.current.measureLayout(
31
+ // @ts-ignore
32
32
  containerRef.current, (_left, top, _width, height) => {
33
33
  if (top + height - scrollY.value > containerHeight.current) {
34
- var _keyboardAvoidingView;
35
-
36
- const extraOffset = (_keyboardAvoidingView = keyboardAvoidingViewProps === null || keyboardAvoidingViewProps === void 0 ? void 0 : keyboardAvoidingViewProps.keyboardVerticalOffset) !== null && _keyboardAvoidingView !== void 0 ? _keyboardAvoidingView : 20;
34
+ const extraOffset = (keyboardAvoidingViewProps === null || keyboardAvoidingViewProps === void 0 ? void 0 : keyboardAvoidingViewProps.keyboardVerticalOffset) ?? 20;
37
35
  scrollTo(top + height + extraOffset - containerHeight.current);
38
36
  }
39
37
  }, () => {});
40
38
  }
41
-
42
39
  return isFocused;
43
40
  });
44
41
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["CollapsibleContainer.tsx"],"names":["React","useCallback","useRef","KeyboardAvoidingView","StyleSheet","View","useKeyboardShowEvent","useInternalCollapsibleContext","useCollapsibleContext","CollapsibleHeaderConsumer","CollapsibleContainer","children","keyboardAvoidingViewProps","textInputRefs","props","containerRef","handleContainerHeight","scrollY","scrollTo","containerHeight","some","ref","isFocusedFunc","current","isFocused","measureLayout","_left","top","_width","height","value","extraOffset","keyboardVerticalOffset","handleContainerLayout","layout","nativeEvent","styles","container","style","create","flex","overflow"],"mappings":";;AAAA;AACA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,MAA7B,QAA2C,OAA3C;AACA,SACEC,oBADF,EAIEC,UAJF,EAKEC,IALF,QAOO,cAPP;AAQA,OAAOC,oBAAP,MAAiC,+BAAjC;AACA,OAAOC,6BAAP,MAA0C,wCAA1C;AACA,OAAOC,qBAAP,MAAkC,gCAAlC;AACA,OAAOC,yBAAP,MAAsC,oCAAtC;AAQA,eAAe,SAASC,oBAAT,CAA8B;AAC3CC,EAAAA,QAD2C;AAE3CC,EAAAA,yBAF2C;AAG3CC,EAAAA,aAAa,GAAG,EAH2B;AAI3C,KAAGC;AAJwC,CAA9B,EAKL;AACR,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MACJT,6BAA6B,EAD/B;AAEA,QAAM;AAAEU,IAAAA,OAAF;AAAWC,IAAAA;AAAX,MAAwBV,qBAAqB,EAAnD;AAEA,QAAMW,eAAe,GAAGjB,MAAM,CAAC,CAAD,CAA9B;AAEAI,EAAAA,oBAAoB,CAAC,MAAM;AACzBO,IAAAA,aAAa,CAACO,IAAd,CAAoBC,GAAD,IAAS;AAC1B,YAAMC,aAAa,GAAGD,GAAG,CAACE,OAAJ,CAAYC,SAAlC;AACA,YAAMA,SAAS,GACbF,aAAa,IAAI,OAAOA,aAAP,KAAyB,UAA1C,GACIA,aAAa,EADjB,GAEIA,aAHN;;AAIA,UAAIE,SAAJ,EAAe;AACbH,QAAAA,GAAG,CAACE,OAAJ,CAAYE,aAAZ,EACE;AACAV,QAAAA,YAAY,CAACQ,OAFf,EAGE,CAACG,KAAD,EAAgBC,GAAhB,EAA6BC,MAA7B,EAA6CC,MAA7C,KAAgE;AAC9D,cAAIF,GAAG,GAAGE,MAAN,GAAeZ,OAAO,CAACa,KAAvB,GAA+BX,eAAe,CAACI,OAAnD,EAA4D;AAAA;;AAC1D,kBAAMQ,WAAW,4BACfnB,yBADe,aACfA,yBADe,uBACfA,yBAAyB,CAAEoB,sBADZ,yEACsC,EADvD;AAEAd,YAAAA,QAAQ,CAACS,GAAG,GAAGE,MAAN,GAAeE,WAAf,GAA6BZ,eAAe,CAACI,OAA9C,CAAR;AACD;AACF,SATH,EAUE,MAAM,CAAE,CAVV;AAYD;;AACD,aAAOC,SAAP;AACD,KArBD;AAsBD,GAvBmB,CAApB;AAyBA,QAAMS,qBAAqB,GAAGhC,WAAW,CAAEiC,MAAD,IAA+B;AACvE,UAAML,MAAM,GAAGK,MAAM,CAACC,WAAP,CAAmBD,MAAnB,CAA0BL,MAAzC;AACAV,IAAAA,eAAe,CAACI,OAAhB,GAA0BM,MAA1B;AACAb,IAAAA,qBAAqB,CAACa,MAAD,CAArB;AACD,GAJwC,EAItC,EAJsC,CAAzC;AAMA,sBACE,oBAAC,oBAAD;AACE,IAAA,KAAK,EAAEO,MAAM,CAACC,SADhB;AAEE,IAAA,QAAQ,EAAC;AAFX,KAGMzB,yBAHN,gBAKE,oBAAC,IAAD,eACME,KADN;AAEE,IAAA,GAAG,EAAEC,YAFP;AAGE,IAAA,KAAK,EAAE,CAACqB,MAAM,CAACC,SAAR,EAAmBvB,KAAK,CAACwB,KAAzB,CAHT;AAIE,IAAA,QAAQ,EAAEL,qBAJZ;AAKE,IAAA,WAAW,EAAE;AALf,MAOGtB,QAPH,eAQE,oBAAC,yBAAD,OARF,CALF,CADF;AAkBD;AAED,MAAMyB,MAAM,GAAGhC,UAAU,CAACmC,MAAX,CAAkB;AAC/BF,EAAAA,SAAS,EAAE;AACTG,IAAAA,IAAI,EAAE,CADG;AAETC,IAAAA,QAAQ,EAAE;AAFD;AADoB,CAAlB,CAAf","sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useCallback, useRef } from 'react';\nimport {\n KeyboardAvoidingView,\n KeyboardAvoidingViewProps,\n LayoutChangeEvent,\n StyleSheet,\n View,\n ViewProps,\n} from 'react-native';\nimport useKeyboardShowEvent from '../hooks/useKeyboardShowEvent';\nimport useInternalCollapsibleContext from '../hooks/useInternalCollapsibleContext';\nimport useCollapsibleContext from '../hooks/useCollapsibleContext';\nimport CollapsibleHeaderConsumer from './header/CollapsibleHeaderConsumer';\n\ntype Props = Omit<ViewProps, 'ref' | 'onLayout'> & {\n children: Element;\n keyboardAvoidingViewProps?: KeyboardAvoidingViewProps;\n textInputRefs?: any[];\n};\n\nexport default function CollapsibleContainer({\n children,\n keyboardAvoidingViewProps,\n textInputRefs = [],\n ...props\n}: Props) {\n const { containerRef, handleContainerHeight } =\n useInternalCollapsibleContext();\n const { scrollY, scrollTo } = useCollapsibleContext();\n\n const containerHeight = useRef(0);\n\n useKeyboardShowEvent(() => {\n textInputRefs.some((ref) => {\n const isFocusedFunc = ref.current.isFocused;\n const isFocused =\n isFocusedFunc && typeof isFocusedFunc === 'function'\n ? isFocusedFunc()\n : isFocusedFunc;\n if (isFocused) {\n ref.current.measureLayout(\n // @ts-ignore\n containerRef.current,\n (_left: number, top: number, _width: number, height: number) => {\n if (top + height - scrollY.value > containerHeight.current) {\n const extraOffset =\n keyboardAvoidingViewProps?.keyboardVerticalOffset ?? 20;\n scrollTo(top + height + extraOffset - containerHeight.current);\n }\n },\n () => {}\n );\n }\n return isFocused;\n });\n });\n\n const handleContainerLayout = useCallback((layout: LayoutChangeEvent) => {\n const height = layout.nativeEvent.layout.height;\n containerHeight.current = height;\n handleContainerHeight(height);\n }, []);\n\n return (\n <KeyboardAvoidingView\n style={styles.container}\n behavior=\"padding\"\n {...keyboardAvoidingViewProps}\n >\n <View\n {...props}\n ref={containerRef}\n style={[styles.container, props.style]}\n onLayout={handleContainerLayout}\n collapsable={false}\n >\n {children}\n <CollapsibleHeaderConsumer />\n </View>\n </KeyboardAvoidingView>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n overflow: 'hidden',\n },\n});\n"]}
1
+ {"version":3,"names":["React","useCallback","useRef","KeyboardAvoidingView","StyleSheet","View","useKeyboardShowEvent","useInternalCollapsibleContext","useCollapsibleContext","CollapsibleHeaderConsumer","CollapsibleContainer","_ref","children","keyboardAvoidingViewProps","textInputRefs","props","containerRef","handleContainerHeight","scrollY","scrollTo","containerHeight","some","ref","isFocusedFunc","current","isFocused","measureLayout","_left","top","_width","height","value","extraOffset","keyboardVerticalOffset","handleContainerLayout","layout","nativeEvent","createElement","_extends","style","styles","container","behavior","onLayout","collapsable","create","flex","overflow"],"sourceRoot":"../../../src","sources":["components/CollapsibleContainer.tsx"],"mappings":";AAAA;AACA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,MAAM,QAAQ,OAAO;AAClD,SACEC,oBAAoB,EAGpBC,UAAU,EACVC,IAAI,QAEC,cAAc;AACrB,OAAOC,oBAAoB,MAAM,+BAA+B;AAChE,OAAOC,6BAA6B,MAAM,wCAAwC;AAClF,OAAOC,qBAAqB,MAAM,gCAAgC;AAClE,OAAOC,yBAAyB,MAAM,oCAAoC;AAQ1E,eAAe,SAASC,oBAAoBA,CAAAC,IAAA,EAKlC;EAAA,IALmC;IAC3CC,QAAQ;IACRC,yBAAyB;IACzBC,aAAa,GAAG,EAAE;IAClB,GAAGC;EACE,CAAC,GAAAJ,IAAA;EACN,MAAM;IAAEK,YAAY;IAAEC;EAAsB,CAAC,GAC3CV,6BAA6B,CAAC,CAAC;EACjC,MAAM;IAAEW,OAAO;IAAEC;EAAS,CAAC,GAAGX,qBAAqB,CAAC,CAAC;EAErD,MAAMY,eAAe,GAAGlB,MAAM,CAAC,CAAC,CAAC;EAEjCI,oBAAoB,CAAC,MAAM;IACzBQ,aAAa,CAACO,IAAI,CAAEC,GAAG,IAAK;MAC1B,MAAMC,aAAa,GAAGD,GAAG,CAACE,OAAO,CAACC,SAAS;MAC3C,MAAMA,SAAS,GACbF,aAAa,IAAI,OAAOA,aAAa,KAAK,UAAU,GAChDA,aAAa,CAAC,CAAC,GACfA,aAAa;MACnB,IAAIE,SAAS,EAAE;QACbH,GAAG,CAACE,OAAO,CAACE,aAAa;QACvB;QACAV,YAAY,CAACQ,OAAO,EACpB,CAACG,KAAa,EAAEC,GAAW,EAAEC,MAAc,EAAEC,MAAc,KAAK;UAC9D,IAAIF,GAAG,GAAGE,MAAM,GAAGZ,OAAO,CAACa,KAAK,GAAGX,eAAe,CAACI,OAAO,EAAE;YAC1D,MAAMQ,WAAW,GACf,CAAAnB,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CAAEoB,sBAAsB,KAAI,EAAE;YACzDd,QAAQ,CAACS,GAAG,GAAGE,MAAM,GAAGE,WAAW,GAAGZ,eAAe,CAACI,OAAO,CAAC;UAChE;QACF,CAAC,EACD,MAAM,CAAC,CACT,CAAC;MACH;MACA,OAAOC,SAAS;IAClB,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMS,qBAAqB,GAAGjC,WAAW,CAAEkC,MAAyB,IAAK;IACvE,MAAML,MAAM,GAAGK,MAAM,CAACC,WAAW,CAACD,MAAM,CAACL,MAAM;IAC/CV,eAAe,CAACI,OAAO,GAAGM,MAAM;IAChCb,qBAAqB,CAACa,MAAM,CAAC;EAC/B,CAAC,EAAE,EAAE,CAAC;EAEN,oBACE9B,KAAA,CAAAqC,aAAA,CAAClC,oBAAoB,EAAAmC,QAAA;IACnBC,KAAK,EAAEC,MAAM,CAACC,SAAU;IACxBC,QAAQ,EAAC;EAAS,GACd7B,yBAAyB,gBAE7Bb,KAAA,CAAAqC,aAAA,CAAChC,IAAI,EAAAiC,QAAA,KACCvB,KAAK;IACTO,GAAG,EAAEN,YAAa;IAClBuB,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE1B,KAAK,CAACwB,KAAK,CAAE;IACvCI,QAAQ,EAAET,qBAAsB;IAChCU,WAAW,EAAE;EAAM,IAElBhC,QAAQ,eACTZ,KAAA,CAAAqC,aAAA,CAAC5B,yBAAyB,MAAE,CACxB,CACc,CAAC;AAE3B;AAEA,MAAM+B,MAAM,GAAGpC,UAAU,CAACyC,MAAM,CAAC;EAC/BJ,SAAS,EAAE;IACTK,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC"}
@@ -1,29 +1,27 @@
1
1
  /* eslint-disable react-hooks/exhaustive-deps */
2
-
3
2
  /* eslint-disable react-hooks/rules-of-hooks */
4
3
  import React, { useCallback, useEffect, useMemo } from 'react';
5
- import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
4
+ import { Pressable, StyleSheet, Text, View } from 'react-native';
6
5
  import Animated, { useAnimatedStyle, useSharedValue, withSpring, interpolateColor, interpolate, useAnimatedReaction, runOnJS } from 'react-native-reanimated';
7
6
  let key = 0;
8
- export default function CollapsibleView({
9
- initialState = 'collapsed',
10
- collapseState = useSharedValue(0),
11
- renderHeader,
12
- children,
13
- containerStyle,
14
- collapsedBackgroundColor,
15
- expandedBackgroundColor,
16
- onToggle
17
- }) {
7
+ export default function CollapsibleView(_ref) {
8
+ let {
9
+ initialState = 'collapsed',
10
+ collapseState = useSharedValue(0),
11
+ renderHeader,
12
+ children,
13
+ containerStyle,
14
+ collapsedBackgroundColor,
15
+ expandedBackgroundColor,
16
+ onToggle
17
+ } = _ref;
18
18
  const actualHeight = useSharedValue(11110);
19
19
  const contentKey = useMemo(() => `collapsible-view-${key++}`, []);
20
20
  useEffect(() => {
21
21
  const newValue = initialState === 'collapsed' ? 0 : 1;
22
-
23
22
  if (newValue === collapseState.value) {
24
23
  return;
25
24
  }
26
-
27
25
  collapseState.value = newValue;
28
26
  }, [initialState]);
29
27
  const handleToggle = useCallback(() => {
@@ -50,19 +48,18 @@ export default function CollapsibleView({
50
48
  if (result === prev) {
51
49
  return;
52
50
  }
53
-
54
51
  if (onToggle) {
55
52
  runOnJS(onToggle)(result === 1);
56
53
  }
57
- }); // @ts-ignore
54
+ });
58
55
 
56
+ // @ts-ignore
59
57
  const containerAnimatedStyle = useAnimatedStyle(() => {
60
58
  if (collapsedBackgroundColor && expandedBackgroundColor) {
61
59
  return {
62
60
  backgroundColor: interpolateColor(collapseState.value, [0, 1], [collapsedBackgroundColor, expandedBackgroundColor])
63
61
  };
64
62
  }
65
-
66
63
  return {};
67
64
  }, []);
68
65
  const headerProps = useMemo(() => ({
@@ -86,16 +83,17 @@ export default function CollapsibleView({
86
83
  pointerEvents: "box-none"
87
84
  }, children))));
88
85
  }
89
- export function CollapsibleHeaderText({
90
- title,
91
- collapsed,
92
- onToggle,
93
- style,
94
- titleStyle,
95
- icon,
96
- iconInitialAngle = 0,
97
- children
98
- }) {
86
+ export function CollapsibleHeaderText(_ref2) {
87
+ let {
88
+ title,
89
+ collapsed,
90
+ onToggle,
91
+ style,
92
+ titleStyle,
93
+ icon,
94
+ iconInitialAngle = 0,
95
+ children
96
+ } = _ref2;
99
97
  const iconStyle = useAnimatedStyle(() => {
100
98
  const rotate = interpolate(collapsed.value, [0, 1], [iconInitialAngle, 180]);
101
99
  return {
@@ -104,17 +102,21 @@ export function CollapsibleHeaderText({
104
102
  }]
105
103
  };
106
104
  }, [iconInitialAngle]);
107
- return /*#__PURE__*/React.createElement(TouchableOpacity, {
108
- activeOpacity: 0.9,
109
- onPress: onToggle,
110
- style: style
105
+ return /*#__PURE__*/React.createElement(View, {
106
+ style: style,
107
+ pointerEvents: "box-none"
111
108
  }, /*#__PURE__*/React.createElement(View, {
112
- style: styles.headerContainer
109
+ style: styles.headerContainer,
110
+ pointerEvents: "box-none"
111
+ }, /*#__PURE__*/React.createElement(Pressable, {
112
+ onPress: onToggle
113
113
  }, /*#__PURE__*/React.createElement(Text, {
114
114
  style: [styles.headerTitle, titleStyle]
115
- }, title), icon && /*#__PURE__*/React.createElement(Animated.View, {
115
+ }, title)), icon && /*#__PURE__*/React.createElement(Pressable, {
116
+ onPress: onToggle
117
+ }, /*#__PURE__*/React.createElement(Animated.View, {
116
118
  style: iconStyle
117
- }, icon)), children);
119
+ }, icon))), children);
118
120
  }
119
121
  const styles = StyleSheet.create({
120
122
  wrapper: {
@@ -123,7 +125,8 @@ const styles = StyleSheet.create({
123
125
  content: {},
124
126
  headerContainer: {
125
127
  flexDirection: 'row',
126
- alignItems: 'center'
128
+ alignItems: 'center',
129
+ justifyContent: 'space-between'
127
130
  },
128
131
  headerTitle: {
129
132
  flex: 1