@fountain-ui/lab 1.21.1 → 2.0.0-beta.11

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 (191) hide show
  1. package/build/commonjs/AnimatedY/AnimatedY.js +10 -14
  2. package/build/commonjs/AnimatedY/AnimatedY.js.map +1 -1
  3. package/build/commonjs/AnimatedY/AnimatedYProps.js.map +1 -1
  4. package/build/commonjs/AnimatedY/index.js.map +1 -1
  5. package/build/commonjs/BottomSheet/BottomSheetNative.js +8 -2
  6. package/build/commonjs/BottomSheet/BottomSheetNative.js.map +1 -1
  7. package/build/commonjs/BottomSheet/BottomSheetProps.js.map +1 -1
  8. package/build/commonjs/BottomSheet/BottomSheetWeb.js +2 -6
  9. package/build/commonjs/BottomSheet/BottomSheetWeb.js.map +1 -1
  10. package/build/commonjs/BottomSheet/TransparentBackdrop.js +1 -1
  11. package/build/commonjs/BottomSheet/TransparentBackdrop.js.map +1 -1
  12. package/build/commonjs/BottomSheet/index.js.map +1 -1
  13. package/build/commonjs/BottomSheet/index.native.js.map +1 -1
  14. package/build/commonjs/Carousel/CarouselNative.js.map +1 -1
  15. package/build/commonjs/Carousel/CarouselProps.js.map +1 -1
  16. package/build/commonjs/Carousel/CarouselWeb.js +1 -1
  17. package/build/commonjs/Carousel/CarouselWeb.js.map +1 -1
  18. package/build/commonjs/Carousel/index.js.map +1 -1
  19. package/build/commonjs/Carousel/index.native.js.map +1 -1
  20. package/build/commonjs/Carousel/utils.js +1 -1
  21. package/build/commonjs/Carousel/utils.js.map +1 -1
  22. package/build/commonjs/ComicViewer/ComicViewer.js +168 -0
  23. package/build/commonjs/ComicViewer/ComicViewer.js.map +1 -0
  24. package/build/commonjs/ComicViewer/ComicViewerItemProps.js +6 -0
  25. package/build/commonjs/ComicViewer/ComicViewerItemProps.js.map +1 -0
  26. package/build/commonjs/ComicViewer/ComicViewerProps.js +2 -0
  27. package/build/commonjs/ComicViewer/ComicViewerProps.js.map +1 -0
  28. package/build/commonjs/ComicViewer/ViewerItem.js +88 -0
  29. package/build/commonjs/ComicViewer/ViewerItem.js.map +1 -0
  30. package/build/commonjs/ComicViewer/index.js +16 -0
  31. package/build/commonjs/ComicViewer/index.js.map +1 -0
  32. package/build/commonjs/DateTimePicker/DateTimePicker.js +7 -1
  33. package/build/commonjs/DateTimePicker/DateTimePicker.js.map +1 -1
  34. package/build/commonjs/DateTimePicker/DateTimePickerProps.js.map +1 -1
  35. package/build/commonjs/DateTimePicker/DateTimePickerProvider.js.map +1 -1
  36. package/build/commonjs/DateTimePicker/YearPicker.js +22 -17
  37. package/build/commonjs/DateTimePicker/YearPicker.js.map +1 -1
  38. package/build/commonjs/DateTimePicker/index.js +4 -4
  39. package/build/commonjs/DateTimePicker/index.js.map +1 -1
  40. package/build/commonjs/DateTimePicker/utils.js +2 -1
  41. package/build/commonjs/DateTimePicker/utils.js.map +1 -1
  42. package/build/commonjs/FlipCard/FlipCard.js +7 -13
  43. package/build/commonjs/FlipCard/FlipCard.js.map +1 -1
  44. package/build/commonjs/FlipCard/FlipCardProps.js.map +1 -1
  45. package/build/commonjs/FlipCard/index.js.map +1 -1
  46. package/build/commonjs/StatusBarProvider/Provider.js +1 -1
  47. package/build/commonjs/StatusBarProvider/Provider.js.map +1 -1
  48. package/build/commonjs/StatusBarProvider/StatusBarProvider.js.map +1 -1
  49. package/build/commonjs/StatusBarProvider/StatusBarProviderProps.js.map +1 -1
  50. package/build/commonjs/StatusBarProvider/index.js.map +1 -1
  51. package/build/commonjs/ViewPager/ChildrenMemoizedPage.js +90 -22
  52. package/build/commonjs/ViewPager/ChildrenMemoizedPage.js.map +1 -1
  53. package/build/commonjs/ViewPager/ViewPagerNative.js +46 -36
  54. package/build/commonjs/ViewPager/ViewPagerNative.js.map +1 -1
  55. package/build/commonjs/ViewPager/ViewPagerProps.js.map +1 -1
  56. package/build/commonjs/ViewPager/ViewPagerWeb.js +32 -25
  57. package/build/commonjs/ViewPager/ViewPagerWeb.js.map +1 -1
  58. package/build/commonjs/ViewPager/index.js.map +1 -1
  59. package/build/commonjs/ViewPager/index.native.js.map +1 -1
  60. package/build/commonjs/ViewPager/utils.js +3 -39
  61. package/build/commonjs/ViewPager/utils.js.map +1 -1
  62. package/build/commonjs/hooks/index.js.map +1 -1
  63. package/build/commonjs/hooks/useAppbarStyles.js.map +1 -1
  64. package/build/commonjs/hooks/useElevationStyle.js.map +1 -1
  65. package/build/commonjs/hooks/useHeight.js +5 -4
  66. package/build/commonjs/hooks/useHeight.js.map +1 -1
  67. package/build/commonjs/hooks/useUnstableCollapsibleAppBar.js +56 -57
  68. package/build/commonjs/hooks/useUnstableCollapsibleAppBar.js.map +1 -1
  69. package/build/commonjs/hooks/useUnstableToggleDisplayStyle.js +9 -11
  70. package/build/commonjs/hooks/useUnstableToggleDisplayStyle.js.map +1 -1
  71. package/build/commonjs/index.js +25 -4
  72. package/build/commonjs/index.js.map +1 -1
  73. package/build/module/AnimatedY/AnimatedY.js +11 -10
  74. package/build/module/AnimatedY/AnimatedY.js.map +1 -1
  75. package/build/module/AnimatedY/AnimatedYProps.js.map +1 -1
  76. package/build/module/AnimatedY/index.js.map +1 -1
  77. package/build/module/BottomSheet/BottomSheetNative.js +8 -2
  78. package/build/module/BottomSheet/BottomSheetNative.js.map +1 -1
  79. package/build/module/BottomSheet/BottomSheetProps.js.map +1 -1
  80. package/build/module/BottomSheet/BottomSheetWeb.js +2 -6
  81. package/build/module/BottomSheet/BottomSheetWeb.js.map +1 -1
  82. package/build/module/BottomSheet/TransparentBackdrop.js +1 -1
  83. package/build/module/BottomSheet/TransparentBackdrop.js.map +1 -1
  84. package/build/module/BottomSheet/index.js.map +1 -1
  85. package/build/module/BottomSheet/index.native.js.map +1 -1
  86. package/build/module/Carousel/CarouselNative.js.map +1 -1
  87. package/build/module/Carousel/CarouselProps.js.map +1 -1
  88. package/build/module/Carousel/CarouselWeb.js +1 -1
  89. package/build/module/Carousel/CarouselWeb.js.map +1 -1
  90. package/build/module/Carousel/index.js.map +1 -1
  91. package/build/module/Carousel/index.native.js.map +1 -1
  92. package/build/module/Carousel/utils.js.map +1 -1
  93. package/build/module/ComicViewer/ComicViewer.js +151 -0
  94. package/build/module/ComicViewer/ComicViewer.js.map +1 -0
  95. package/build/module/ComicViewer/ComicViewerItemProps.js +2 -0
  96. package/build/module/ComicViewer/ComicViewerItemProps.js.map +1 -0
  97. package/build/module/ComicViewer/ComicViewerProps.js +2 -0
  98. package/build/module/ComicViewer/ComicViewerProps.js.map +1 -0
  99. package/build/module/ComicViewer/ViewerItem.js +72 -0
  100. package/build/module/ComicViewer/ViewerItem.js.map +1 -0
  101. package/build/module/ComicViewer/index.js +2 -0
  102. package/build/module/ComicViewer/index.js.map +1 -0
  103. package/build/module/DateTimePicker/DateTimePicker.js +7 -1
  104. package/build/module/DateTimePicker/DateTimePicker.js.map +1 -1
  105. package/build/module/DateTimePicker/DateTimePickerProps.js.map +1 -1
  106. package/build/module/DateTimePicker/DateTimePickerProvider.js.map +1 -1
  107. package/build/module/DateTimePicker/YearPicker.js +22 -17
  108. package/build/module/DateTimePicker/YearPicker.js.map +1 -1
  109. package/build/module/DateTimePicker/index.js.map +1 -1
  110. package/build/module/DateTimePicker/utils.js +2 -1
  111. package/build/module/DateTimePicker/utils.js.map +1 -1
  112. package/build/module/FlipCard/FlipCard.js +7 -7
  113. package/build/module/FlipCard/FlipCard.js.map +1 -1
  114. package/build/module/FlipCard/FlipCardProps.js.map +1 -1
  115. package/build/module/FlipCard/index.js.map +1 -1
  116. package/build/module/StatusBarProvider/Provider.js.map +1 -1
  117. package/build/module/StatusBarProvider/StatusBarProvider.js.map +1 -1
  118. package/build/module/StatusBarProvider/StatusBarProviderProps.js.map +1 -1
  119. package/build/module/StatusBarProvider/index.js.map +1 -1
  120. package/build/module/ViewPager/ChildrenMemoizedPage.js +85 -23
  121. package/build/module/ViewPager/ChildrenMemoizedPage.js.map +1 -1
  122. package/build/module/ViewPager/ViewPagerNative.js +43 -32
  123. package/build/module/ViewPager/ViewPagerNative.js.map +1 -1
  124. package/build/module/ViewPager/ViewPagerProps.js.map +1 -1
  125. package/build/module/ViewPager/ViewPagerWeb.js +26 -23
  126. package/build/module/ViewPager/ViewPagerWeb.js.map +1 -1
  127. package/build/module/ViewPager/index.js.map +1 -1
  128. package/build/module/ViewPager/index.native.js.map +1 -1
  129. package/build/module/ViewPager/utils.js +1 -31
  130. package/build/module/ViewPager/utils.js.map +1 -1
  131. package/build/module/hooks/index.js.map +1 -1
  132. package/build/module/hooks/useAppbarStyles.js.map +1 -1
  133. package/build/module/hooks/useElevationStyle.js.map +1 -1
  134. package/build/module/hooks/useHeight.js +4 -3
  135. package/build/module/hooks/useHeight.js.map +1 -1
  136. package/build/module/hooks/useUnstableCollapsibleAppBar.js +58 -43
  137. package/build/module/hooks/useUnstableCollapsibleAppBar.js.map +1 -1
  138. package/build/module/hooks/useUnstableToggleDisplayStyle.js +9 -7
  139. package/build/module/hooks/useUnstableToggleDisplayStyle.js.map +1 -1
  140. package/build/module/index.js +2 -0
  141. package/build/module/index.js.map +1 -1
  142. package/build/typescript/AnimatedY/AnimatedY.d.ts +0 -1
  143. package/build/typescript/BottomSheet/BottomSheetNative.d.ts +0 -1
  144. package/build/typescript/BottomSheet/BottomSheetWeb.d.ts +0 -1
  145. package/build/typescript/BottomSheet/TransparentBackdrop.d.ts +0 -1
  146. package/build/typescript/Carousel/CarouselNative.d.ts +0 -1
  147. package/build/typescript/ComicViewer/ComicViewer.d.ts +2 -0
  148. package/build/typescript/ComicViewer/ComicViewerItemProps.d.ts +12 -0
  149. package/build/typescript/ComicViewer/ComicViewerProps.d.ts +76 -0
  150. package/build/typescript/ComicViewer/ViewerItem.d.ts +7 -0
  151. package/build/typescript/ComicViewer/index.d.ts +3 -0
  152. package/build/typescript/DateTimePicker/DateTimePicker.d.ts +0 -1
  153. package/build/typescript/DateTimePicker/YearPicker.d.ts +0 -1
  154. package/build/typescript/FlipCard/FlipCard.d.ts +0 -1
  155. package/build/typescript/StatusBarProvider/StatusBarProvider.d.ts +0 -1
  156. package/build/typescript/ViewPager/ChildrenMemoizedPage.d.ts +2 -1
  157. package/build/typescript/ViewPager/ViewPagerNative.d.ts +4 -2
  158. package/build/typescript/ViewPager/ViewPagerProps.d.ts +20 -19
  159. package/build/typescript/ViewPager/ViewPagerWeb.d.ts +4 -2
  160. package/build/typescript/ViewPager/index.d.ts +1 -1
  161. package/build/typescript/ViewPager/utils.d.ts +2 -19
  162. package/build/typescript/hooks/useUnstableCollapsibleAppBar.d.ts +2 -3
  163. package/build/typescript/hooks/useUnstableToggleDisplayStyle.d.ts +2 -2
  164. package/build/typescript/index.d.ts +2 -0
  165. package/package.json +13 -13
  166. package/src/AnimatedY/AnimatedY.tsx +13 -10
  167. package/src/BottomSheet/BottomSheetNative.tsx +6 -0
  168. package/src/ComicViewer/ComicViewer.tsx +162 -0
  169. package/src/ComicViewer/ComicViewerItemProps.ts +15 -0
  170. package/src/ComicViewer/ComicViewerProps.ts +90 -0
  171. package/src/ComicViewer/ViewerItem.tsx +76 -0
  172. package/src/ComicViewer/index.ts +3 -0
  173. package/src/DateTimePicker/DateTimePicker.tsx +6 -0
  174. package/src/DateTimePicker/YearPicker.tsx +2 -1
  175. package/src/FlipCard/FlipCard.tsx +8 -8
  176. package/src/ViewPager/ChildrenMemoizedPage.tsx +91 -22
  177. package/src/ViewPager/ViewPagerNative.tsx +47 -35
  178. package/src/ViewPager/ViewPagerProps.ts +20 -19
  179. package/src/ViewPager/ViewPagerWeb.tsx +34 -29
  180. package/src/ViewPager/index.ts +1 -1
  181. package/src/ViewPager/utils.tsx +2 -55
  182. package/src/hooks/useHeight.ts +2 -2
  183. package/src/hooks/useUnstableCollapsibleAppBar.ts +59 -42
  184. package/src/hooks/useUnstableToggleDisplayStyle.ts +8 -6
  185. package/src/index.ts +3 -0
  186. package/build/commonjs/hooks/useWidth.js +0 -29
  187. package/build/commonjs/hooks/useWidth.js.map +0 -1
  188. package/build/module/hooks/useWidth.js +0 -15
  189. package/build/module/hooks/useWidth.js.map +0 -1
  190. package/build/typescript/hooks/useWidth.d.ts +0 -2
  191. package/src/hooks/useWidth.ts +0 -17
@@ -3,70 +3,80 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = ViewPager;
6
+ exports.default = void 0;
7
7
 
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
- var _viewpager = _interopRequireDefault(require("@react-native-community/viewpager"));
10
+ var _reactNativePagerView = _interopRequireDefault(require("react-native-pager-view"));
11
+
12
+ var _reactNativeReanimated = require("react-native-reanimated");
11
13
 
12
14
  var _utils = require("./utils");
13
15
 
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
17
 
16
- function ViewPager(props) {
18
+ 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); }
19
+
20
+ 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; }
21
+
22
+ const ViewPager = /*#__PURE__*/(0, _react.forwardRef)(function ViewPager(props, ref) {
17
23
  const {
18
24
  children,
19
- enableVisibleHint = _utils.defaultEnableVisibleHint,
20
- index,
25
+ initialPage = _utils.defaultInitialPage,
21
26
  keyboardDismissMode = 'on-drag',
22
27
  loading = _utils.defaultLoading,
23
28
  onChange,
24
29
  pageComponent = _utils.defaultPageComponent,
25
- enableNeighborPageRerender = _utils.defaultEnableNeighborPageRerender,
26
30
  pageForceRerenderKey,
27
31
  scrollEnabled = true,
28
32
  style
29
33
  } = props;
34
+ const sharedIndex = (0, _reactNativeReanimated.useSharedValue)(initialPage);
35
+ const pagerRef = (0, _react.useRef)(null);
30
36
 
31
- const indexRef = _react.default.useRef(index);
32
-
33
- const pagerRef = _react.default.useRef(null);
37
+ const setPage = newIndex => {
38
+ requestAnimationFrame(() => {
39
+ var _pagerRef$current;
34
40
 
35
- const renderer = (0, _utils.usePageRenderer)({
36
- enableVisibleHint,
37
- index,
38
- loading,
39
- pageComponent,
40
- pageForceRerenderKey,
41
- enableNeighborPageRerender
42
- });
41
+ (_pagerRef$current = pagerRef.current) === null || _pagerRef$current === void 0 ? void 0 : _pagerRef$current.setPage(newIndex);
42
+ });
43
+ };
43
44
 
44
- const handlePageSelected = _react.default.useCallback(e => {
45
- indexRef.current = e.nativeEvent.position;
45
+ (0, _react.useImperativeHandle)(ref, () => ({
46
+ setPage
47
+ }), []);
48
+ const handlePageSelected = (0, _react.useCallback)(e => {
49
+ const currentIndex = sharedIndex.value;
50
+ const nextIndex = e.nativeEvent.position;
46
51
 
47
- if (onChange) {
48
- onChange(indexRef.current);
52
+ if (currentIndex === nextIndex) {
53
+ return;
49
54
  }
50
- }, [onChange]);
51
55
 
52
- _react.default.useEffect(() => {
53
- if (index !== indexRef.current) {
54
- var _pagerRef$current;
56
+ sharedIndex.value = nextIndex;
55
57
 
56
- (_pagerRef$current = pagerRef.current) === null || _pagerRef$current === void 0 ? void 0 : _pagerRef$current.setPage(index);
58
+ if (onChange) {
59
+ onChange(nextIndex);
57
60
  }
58
- }, [index]);
59
-
60
- return /*#__PURE__*/_react.default.createElement(_viewpager.default, {
61
- initialPage: index,
61
+ }, [onChange]);
62
+ const PageComponent = pageComponent;
63
+ return /*#__PURE__*/_react.default.createElement(_reactNativePagerView.default, {
64
+ ref: pagerRef,
65
+ initialPage: initialPage,
62
66
  keyboardDismissMode: keyboardDismissMode,
63
67
  onPageSelected: handlePageSelected,
64
68
  pageMargin: 8,
65
- ref: pagerRef,
66
69
  scrollEnabled: scrollEnabled,
67
70
  style: style
68
- }, renderer(children));
69
- }
70
-
71
- ;
71
+ }, _react.Children.map(children, (child, index) => /*#__PURE__*/_react.default.createElement(PageComponent, {
72
+ key: index,
73
+ children: child,
74
+ index: index,
75
+ loading: loading,
76
+ rerenderKey: pageForceRerenderKey,
77
+ sharedIndex: sharedIndex
78
+ })));
79
+ });
80
+ var _default = ViewPager;
81
+ exports.default = _default;
72
82
  //# sourceMappingURL=ViewPagerNative.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ViewPagerNative.tsx"],"names":["ViewPager","props","children","enableVisibleHint","defaultEnableVisibleHint","index","keyboardDismissMode","loading","defaultLoading","onChange","pageComponent","defaultPageComponent","enableNeighborPageRerender","defaultEnableNeighborPageRerender","pageForceRerenderKey","scrollEnabled","style","indexRef","React","useRef","pagerRef","renderer","handlePageSelected","useCallback","e","current","nativeEvent","position","useEffect","setPage"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;AAQe,SAASA,SAAT,CAAmBC,KAAnB,EAA0C;AACrD,QAAM;AACFC,IAAAA,QADE;AAEFC,IAAAA,iBAAiB,GAAGC,+BAFlB;AAGFC,IAAAA,KAHE;AAIFC,IAAAA,mBAAmB,GAAG,SAJpB;AAKFC,IAAAA,OAAO,GAAGC,qBALR;AAMFC,IAAAA,QANE;AAOFC,IAAAA,aAAa,GAAGC,2BAPd;AAQFC,IAAAA,0BAA0B,GAAGC,wCAR3B;AASFC,IAAAA,oBATE;AAUFC,IAAAA,aAAa,GAAG,IAVd;AAWFC,IAAAA;AAXE,MAYFf,KAZJ;;AAcA,QAAMgB,QAAQ,GAAGC,eAAMC,MAAN,CAAqBd,KAArB,CAAjB;;AACA,QAAMe,QAAQ,GAAGF,eAAMC,MAAN,CAAiC,IAAjC,CAAjB;;AAEA,QAAME,QAAQ,GAAG,4BAAgB;AAC7BlB,IAAAA,iBAD6B;AAE7BE,IAAAA,KAF6B;AAG7BE,IAAAA,OAH6B;AAI7BG,IAAAA,aAJ6B;AAK7BI,IAAAA,oBAL6B;AAM7BF,IAAAA;AAN6B,GAAhB,CAAjB;;AASA,QAAMU,kBAAkB,GAAGJ,eAAMK,WAAN,CAAmBC,CAAD,IAAqC;AAC9EP,IAAAA,QAAQ,CAACQ,OAAT,GAAmBD,CAAC,CAACE,WAAF,CAAcC,QAAjC;;AAEA,QAAIlB,QAAJ,EAAc;AACVA,MAAAA,QAAQ,CAACQ,QAAQ,CAACQ,OAAV,CAAR;AACH;AACJ,GAN0B,EAMxB,CAAChB,QAAD,CANwB,CAA3B;;AAQAS,iBAAMU,SAAN,CAAgB,MAAM;AAClB,QAAIvB,KAAK,KAAKY,QAAQ,CAACQ,OAAvB,EAAgC;AAAA;;AAC5B,2BAAAL,QAAQ,CAACK,OAAT,wEAAkBI,OAAlB,CAA0BxB,KAA1B;AACH;AACJ,GAJD,EAIG,CAACA,KAAD,CAJH;;AAMA,sBACI,6BAAC,kBAAD;AACI,IAAA,WAAW,EAAEA,KADjB;AAEI,IAAA,mBAAmB,EAAEC,mBAFzB;AAGI,IAAA,cAAc,EAAEgB,kBAHpB;AAII,IAAA,UAAU,EAAE,CAJhB;AAKI,IAAA,GAAG,EAAEF,QALT;AAMI,IAAA,aAAa,EAAEL,aANnB;AAOI,IAAA,KAAK,EAAEC;AAPX,KASKK,QAAQ,CAACnB,QAAD,CATb,CADJ;AAaH;;AAAA","sourcesContent":["import React from 'react';\nimport RNViewPager, { ViewPagerOnPageSelectedEvent } from '@react-native-community/viewpager';\nimport type ViewPagerProps from './ViewPagerProps';\nimport {\n defaultEnableNeighborPageRerender,\n defaultEnableVisibleHint,\n defaultLoading,\n defaultPageComponent,\n usePageRenderer,\n} from './utils';\n\nexport default function ViewPager(props: ViewPagerProps) {\n const {\n children,\n enableVisibleHint = defaultEnableVisibleHint,\n index,\n keyboardDismissMode = 'on-drag',\n loading = defaultLoading,\n onChange,\n pageComponent = defaultPageComponent,\n enableNeighborPageRerender = defaultEnableNeighborPageRerender,\n pageForceRerenderKey,\n scrollEnabled = true,\n style,\n } = props;\n\n const indexRef = React.useRef<number>(index);\n const pagerRef = React.useRef<RNViewPager | null>(null);\n\n const renderer = usePageRenderer({\n enableVisibleHint,\n index,\n loading,\n pageComponent,\n pageForceRerenderKey,\n enableNeighborPageRerender,\n });\n\n const handlePageSelected = React.useCallback((e: ViewPagerOnPageSelectedEvent) => {\n indexRef.current = e.nativeEvent.position;\n\n if (onChange) {\n onChange(indexRef.current);\n }\n }, [onChange]);\n\n React.useEffect(() => {\n if (index !== indexRef.current) {\n pagerRef.current?.setPage(index);\n }\n }, [index]);\n\n return (\n <RNViewPager\n initialPage={index}\n keyboardDismissMode={keyboardDismissMode}\n onPageSelected={handlePageSelected}\n pageMargin={8}\n ref={pagerRef}\n scrollEnabled={scrollEnabled}\n style={style}\n >\n {renderer(children)}\n </RNViewPager>\n );\n};\n"]}
1
+ {"version":3,"names":["ViewPager","forwardRef","props","ref","children","initialPage","defaultInitialPage","keyboardDismissMode","loading","defaultLoading","onChange","pageComponent","defaultPageComponent","pageForceRerenderKey","scrollEnabled","style","sharedIndex","useSharedValue","pagerRef","useRef","setPage","newIndex","requestAnimationFrame","current","useImperativeHandle","handlePageSelected","useCallback","e","currentIndex","value","nextIndex","nativeEvent","position","PageComponent","Children","map","child","index"],"sources":["ViewPagerNative.tsx"],"sourcesContent":["import React, { Children, forwardRef, useCallback, useImperativeHandle, useRef } from 'react';\nimport type { ViewPagerOnPageSelectedEvent } from 'react-native-pager-view';\nimport RNViewPager from 'react-native-pager-view';\nimport { useSharedValue } from 'react-native-reanimated';\nimport type ViewPagerProps from './ViewPagerProps';\nimport type { ViewPagerInstance } from './ViewPagerProps';\nimport { defaultInitialPage, defaultLoading, defaultPageComponent } from './utils';\n\nconst ViewPager = forwardRef<ViewPagerInstance, ViewPagerProps>(function ViewPager(props, ref) {\n const {\n children,\n initialPage = defaultInitialPage,\n keyboardDismissMode = 'on-drag',\n loading = defaultLoading,\n onChange,\n pageComponent = defaultPageComponent,\n pageForceRerenderKey,\n scrollEnabled = true,\n style,\n } = props;\n\n const sharedIndex = useSharedValue<number>(initialPage);\n const pagerRef = useRef<RNViewPager | null>(null);\n\n const setPage = (newIndex: number) => {\n requestAnimationFrame(() => {\n pagerRef.current?.setPage(newIndex);\n });\n };\n\n useImperativeHandle(\n ref,\n () => ({ setPage }),\n [],\n );\n\n const handlePageSelected = useCallback((e: ViewPagerOnPageSelectedEvent) => {\n const currentIndex = sharedIndex.value;\n const nextIndex = e.nativeEvent.position;\n\n if (currentIndex === nextIndex) {\n return;\n }\n\n sharedIndex.value = nextIndex;\n\n if (onChange) {\n onChange(nextIndex);\n }\n }, [onChange]);\n\n const PageComponent = pageComponent;\n\n return (\n <RNViewPager\n ref={pagerRef}\n initialPage={initialPage}\n keyboardDismissMode={keyboardDismissMode}\n onPageSelected={handlePageSelected}\n pageMargin={8}\n scrollEnabled={scrollEnabled}\n style={style}\n >\n {Children.map(children, (child, index) => (\n <PageComponent\n key={index}\n children={child}\n index={index}\n loading={loading}\n rerenderKey={pageForceRerenderKey}\n sharedIndex={sharedIndex}\n />\n ))}\n </RNViewPager>\n );\n});\n\nexport default ViewPager;\n"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AAGA;;;;;;;;AAEA,MAAMA,SAAS,gBAAG,IAAAC,iBAAA,EAA8C,SAASD,SAAT,CAAmBE,KAAnB,EAA0BC,GAA1B,EAA+B;EAC3F,MAAM;IACFC,QADE;IAEFC,WAAW,GAAGC,yBAFZ;IAGFC,mBAAmB,GAAG,SAHpB;IAIFC,OAAO,GAAGC,qBAJR;IAKFC,QALE;IAMFC,aAAa,GAAGC,2BANd;IAOFC,oBAPE;IAQFC,aAAa,GAAG,IARd;IASFC;EATE,IAUFb,KAVJ;EAYA,MAAMc,WAAW,GAAG,IAAAC,qCAAA,EAAuBZ,WAAvB,CAApB;EACA,MAAMa,QAAQ,GAAG,IAAAC,aAAA,EAA2B,IAA3B,CAAjB;;EAEA,MAAMC,OAAO,GAAIC,QAAD,IAAsB;IAClCC,qBAAqB,CAAC,MAAM;MAAA;;MACxB,qBAAAJ,QAAQ,CAACK,OAAT,wEAAkBH,OAAlB,CAA0BC,QAA1B;IACH,CAFoB,CAArB;EAGH,CAJD;;EAMA,IAAAG,0BAAA,EACIrB,GADJ,EAEI,OAAO;IAAEiB;EAAF,CAAP,CAFJ,EAGI,EAHJ;EAMA,MAAMK,kBAAkB,GAAG,IAAAC,kBAAA,EAAaC,CAAD,IAAqC;IACxE,MAAMC,YAAY,GAAGZ,WAAW,CAACa,KAAjC;IACA,MAAMC,SAAS,GAAGH,CAAC,CAACI,WAAF,CAAcC,QAAhC;;IAEA,IAAIJ,YAAY,KAAKE,SAArB,EAAgC;MAC5B;IACH;;IAEDd,WAAW,CAACa,KAAZ,GAAoBC,SAApB;;IAEA,IAAIpB,QAAJ,EAAc;MACVA,QAAQ,CAACoB,SAAD,CAAR;IACH;EACJ,CAb0B,EAaxB,CAACpB,QAAD,CAbwB,CAA3B;EAeA,MAAMuB,aAAa,GAAGtB,aAAtB;EAEA,oBACI,6BAAC,6BAAD;IACI,GAAG,EAAEO,QADT;IAEI,WAAW,EAAEb,WAFjB;IAGI,mBAAmB,EAAEE,mBAHzB;IAII,cAAc,EAAEkB,kBAJpB;IAKI,UAAU,EAAE,CALhB;IAMI,aAAa,EAAEX,aANnB;IAOI,KAAK,EAAEC;EAPX,GASKmB,eAAA,CAASC,GAAT,CAAa/B,QAAb,EAAuB,CAACgC,KAAD,EAAQC,KAAR,kBACpB,6BAAC,aAAD;IACI,GAAG,EAAEA,KADT;IAEI,QAAQ,EAAED,KAFd;IAGI,KAAK,EAAEC,KAHX;IAII,OAAO,EAAE7B,OAJb;IAKI,WAAW,EAAEK,oBALjB;IAMI,WAAW,EAAEG;EANjB,EADH,CATL,CADJ;AAsBH,CAnEiB,CAAlB;eAqEehB,S"}
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
1
+ {"version":3,"names":[],"sources":["ViewPagerProps.ts"],"sourcesContent":["import type { ComponentType, PropsWithChildren, ReactNode, Ref } from 'react';\nimport type { ViewProps } from 'react-native';\nimport type { SharedValue } from 'react-native-reanimated';\nimport type { ComponentProps } from '@fountain-ui/core';\n\nexport type KeyboardDismissMode = 'none' | 'on-drag';\n\nexport type PageProps = PropsWithChildren<ViewProps> & {\n index: number;\n loading: ViewPagerProps['loading'];\n sharedIndex: SharedValue<number>;\n rerenderKey?: ViewPagerProps['pageForceRerenderKey'];\n};\n\nexport type PageComponent = ComponentType<PageProps>;\n\nexport type Loading = 'lazy' | 'eager';\n\nexport interface ViewPagerInstance {\n /**\n * Function to scroll to a specific page in the ViewPager. Invalid index is ignored.\n * @param index\n */\n setPage: (index: number) => void;\n}\n\nexport default interface ViewPagerProps extends ComponentProps<{\n ref?: Ref<ViewPagerInstance>;\n\n /**\n * Collection of ViewPager components.\n */\n children?: ReactNode;\n\n /**\n * Index of initial page that should be selected.\n * @default 0\n */\n initialPage?: number;\n\n /**\n * Whether to load the page immediately (`eager`) or on an as-needed basis (`lazy`).\n * @default 'lazy'\n */\n loading?: Loading;\n\n /**\n * Callback fired when an index is changed.\n */\n onChange?: (newIndex: number) => void,\n\n /**\n * The component used to render the wrapper of the page.\n * @default 'ChildrenMemoizedPage'\n */\n pageComponent?: PageComponent,\n\n /**\n * When this value is changed, page will be rerender.\n */\n pageForceRerenderKey?: any;\n\n /**\n * Mobile only. Should pager view scroll, when scroll enabled.\n * @default true\n */\n scrollEnabled?: boolean;\n\n /**\n * Mobile only. Determines whether the keyboard gets dismissed in response to a drag.\n * @default 'on-drag'\n */\n keyboardDismissMode?: KeyboardDismissMode;\n}> {}\n"],"mappings":""}
@@ -3,53 +3,60 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = ViewPager;
6
+ exports.default = void 0;
7
7
 
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _reactNative = require("react-native");
11
11
 
12
+ var _reactNativeReanimated = require("react-native-reanimated");
13
+
14
+ var _core = require("@fountain-ui/core");
15
+
12
16
  var _utils = require("./utils");
13
17
 
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ 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); }
15
19
 
16
- const styles = _reactNative.StyleSheet.create({
20
+ 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; }
21
+
22
+ const styles = _core.StyleSheet.create({
17
23
  root: {
18
24
  // @ts-ignore
19
25
  overflow: 'auto',
20
26
  position: 'relative'
21
- },
22
- none: {
23
- display: 'none'
24
27
  }
25
28
  });
26
29
 
27
- function ViewPager(props) {
30
+ const ViewPager = /*#__PURE__*/(0, _react.forwardRef)(function ViewPager(props, ref) {
28
31
  const {
29
32
  children,
30
- enableVisibleHint = _utils.defaultEnableVisibleHint,
31
- enableNeighborPageRerender = _utils.defaultEnableNeighborPageRerender,
32
- index,
33
+ initialPage = _utils.defaultInitialPage,
33
34
  loading = _utils.defaultLoading,
34
35
  pageComponent = _utils.defaultPageComponent,
35
36
  pageForceRerenderKey,
36
37
  style
37
38
  } = props;
38
- const renderer = (0, _utils.usePageRenderer)({
39
- enableVisibleHint,
40
- enableNeighborPageRerender,
41
- index,
42
- loading,
43
- pageComponent,
44
- pageForceRerenderKey
45
- });
39
+ const sharedIndex = (0, _reactNativeReanimated.useSharedValue)(initialPage);
40
+
41
+ const setPage = newIndex => {
42
+ sharedIndex.value = newIndex;
43
+ };
44
+
45
+ (0, _react.useImperativeHandle)(ref, () => ({
46
+ setPage
47
+ }), []);
48
+ const PageComponent = pageComponent;
46
49
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
47
50
  style: [styles.root, style]
48
- }, _react.default.Children.map(renderer(children), (child, i) => /*#__PURE__*/_react.default.cloneElement(child, {
49
- isVisible: i === index,
50
- style: i !== index ? styles.none : _reactNative.StyleSheet.absoluteFill
51
+ }, _react.Children.map(children, (child, index) => /*#__PURE__*/_react.default.createElement(PageComponent, {
52
+ key: index,
53
+ children: child,
54
+ index: index,
55
+ loading: loading,
56
+ rerenderKey: pageForceRerenderKey,
57
+ sharedIndex: sharedIndex
51
58
  })));
52
- }
53
-
54
- ;
59
+ });
60
+ var _default = ViewPager;
61
+ exports.default = _default;
55
62
  //# sourceMappingURL=ViewPagerWeb.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ViewPagerWeb.tsx"],"names":["styles","StyleSheet","create","root","overflow","position","none","display","ViewPager","props","children","enableVisibleHint","defaultEnableVisibleHint","enableNeighborPageRerender","defaultEnableNeighborPageRerender","index","loading","defaultLoading","pageComponent","defaultPageComponent","pageForceRerenderKey","style","renderer","React","Children","map","child","i","cloneElement","isVisible","absoluteFill"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;AAQA,MAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC7BC,EAAAA,IAAI,EAAE;AACF;AACAC,IAAAA,QAAQ,EAAE,MAFR;AAGFC,IAAAA,QAAQ,EAAE;AAHR,GADuB;AAM7BC,EAAAA,IAAI,EAAE;AAAEC,IAAAA,OAAO,EAAE;AAAX;AANuB,CAAlB,CAAf;;AASe,SAASC,SAAT,CAAmBC,KAAnB,EAA0C;AACrD,QAAM;AACFC,IAAAA,QADE;AAEFC,IAAAA,iBAAiB,GAAGC,+BAFlB;AAGFC,IAAAA,0BAA0B,GAAGC,wCAH3B;AAIFC,IAAAA,KAJE;AAKFC,IAAAA,OAAO,GAAGC,qBALR;AAMFC,IAAAA,aAAa,GAAGC,2BANd;AAOFC,IAAAA,oBAPE;AAQFC,IAAAA;AARE,MASFZ,KATJ;AAWA,QAAMa,QAAQ,GAAG,4BAAgB;AAC7BX,IAAAA,iBAD6B;AAE7BE,IAAAA,0BAF6B;AAG7BE,IAAAA,KAH6B;AAI7BC,IAAAA,OAJ6B;AAK7BE,IAAAA,aAL6B;AAM7BE,IAAAA;AAN6B,GAAhB,CAAjB;AASA,sBACI,6BAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACpB,MAAM,CAACG,IAAR,EAAckB,KAAd;AAAb,KACKE,eAAMC,QAAN,CAAeC,GAAf,CAAmBH,QAAQ,CAACZ,QAAD,CAA3B,EAAuC,CAACgB,KAAD,EAAQC,CAAR,kBACpCJ,eAAMK,YAAN,CAAmBF,KAAnB,EAAgD;AAC5CG,IAAAA,SAAS,EAAEF,CAAC,KAAKZ,KAD2B;AAE5CM,IAAAA,KAAK,EAAEM,CAAC,KAAKZ,KAAN,GAAcf,MAAM,CAACM,IAArB,GAA4BL,wBAAW6B;AAFF,GAAhD,CADH,CADL,CADJ;AAUH;;AAAA","sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport type ViewPagerProps from './ViewPagerProps';\nimport {\n defaultEnableNeighborPageRerender,\n defaultEnableVisibleHint,\n defaultLoading,\n defaultPageComponent,\n usePageRenderer,\n} from './utils';\n\nconst styles = StyleSheet.create({\n root: {\n // @ts-ignore\n overflow: 'auto',\n position: 'relative',\n },\n none: { display: 'none' },\n});\n\nexport default function ViewPager(props: ViewPagerProps) {\n const {\n children,\n enableVisibleHint = defaultEnableVisibleHint,\n enableNeighborPageRerender = defaultEnableNeighborPageRerender,\n index,\n loading = defaultLoading,\n pageComponent = defaultPageComponent,\n pageForceRerenderKey,\n style,\n } = props;\n\n const renderer = usePageRenderer({\n enableVisibleHint,\n enableNeighborPageRerender,\n index,\n loading,\n pageComponent,\n pageForceRerenderKey,\n });\n\n return (\n <View style={[styles.root, style]}>\n {React.Children.map(renderer(children), (child, i) =>\n React.cloneElement(child as React.ReactElement, {\n isVisible: i === index,\n style: i !== index ? styles.none : StyleSheet.absoluteFill,\n }),\n )}\n </View>\n );\n};\n"]}
1
+ {"version":3,"names":["styles","StyleSheet","create","root","overflow","position","ViewPager","forwardRef","props","ref","children","initialPage","defaultInitialPage","loading","defaultLoading","pageComponent","defaultPageComponent","pageForceRerenderKey","style","sharedIndex","useSharedValue","setPage","newIndex","value","useImperativeHandle","PageComponent","Children","map","child","index"],"sources":["ViewPagerWeb.tsx"],"sourcesContent":["import React, { Children, forwardRef, useImperativeHandle } from 'react';\nimport { View } from 'react-native';\nimport { useSharedValue } from 'react-native-reanimated';\nimport { StyleSheet } from '@fountain-ui/core';\nimport type ViewPagerProps from './ViewPagerProps';\nimport type { ViewPagerInstance } from './ViewPagerProps';\nimport { defaultInitialPage, defaultLoading, defaultPageComponent } from './utils';\n\nconst styles = StyleSheet.create({\n root: {\n // @ts-ignore\n overflow: 'auto',\n position: 'relative',\n },\n});\n\nconst ViewPager = forwardRef<ViewPagerInstance, ViewPagerProps>(function ViewPager(props, ref) {\n const {\n children,\n initialPage = defaultInitialPage,\n loading = defaultLoading,\n pageComponent = defaultPageComponent,\n pageForceRerenderKey,\n style,\n } = props;\n\n const sharedIndex = useSharedValue<number>(initialPage);\n\n const setPage = (newIndex: number) => {\n sharedIndex.value = newIndex;\n };\n\n useImperativeHandle(\n ref,\n () => ({ setPage }),\n [],\n );\n\n const PageComponent = pageComponent;\n\n return (\n <View style={[styles.root, style]}>\n {Children.map(children, (child, index) => (\n <PageComponent\n key={index}\n children={child}\n index={index}\n loading={loading}\n rerenderKey={pageForceRerenderKey}\n sharedIndex={sharedIndex}\n />\n ))}\n </View>\n );\n});\n\nexport default ViewPager;\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAGA;;;;;;AAEA,MAAMA,MAAM,GAAGC,gBAAA,CAAWC,MAAX,CAAkB;EAC7BC,IAAI,EAAE;IACF;IACAC,QAAQ,EAAE,MAFR;IAGFC,QAAQ,EAAE;EAHR;AADuB,CAAlB,CAAf;;AAQA,MAAMC,SAAS,gBAAG,IAAAC,iBAAA,EAA8C,SAASD,SAAT,CAAmBE,KAAnB,EAA0BC,GAA1B,EAA+B;EAC3F,MAAM;IACFC,QADE;IAEFC,WAAW,GAAGC,yBAFZ;IAGFC,OAAO,GAAGC,qBAHR;IAIFC,aAAa,GAAGC,2BAJd;IAKFC,oBALE;IAMFC;EANE,IAOFV,KAPJ;EASA,MAAMW,WAAW,GAAG,IAAAC,qCAAA,EAAuBT,WAAvB,CAApB;;EAEA,MAAMU,OAAO,GAAIC,QAAD,IAAsB;IAClCH,WAAW,CAACI,KAAZ,GAAoBD,QAApB;EACH,CAFD;;EAIA,IAAAE,0BAAA,EACIf,GADJ,EAEI,OAAO;IAAEY;EAAF,CAAP,CAFJ,EAGI,EAHJ;EAMA,MAAMI,aAAa,GAAGV,aAAtB;EAEA,oBACI,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAACf,MAAM,CAACG,IAAR,EAAce,KAAd;EAAb,GACKQ,eAAA,CAASC,GAAT,CAAajB,QAAb,EAAuB,CAACkB,KAAD,EAAQC,KAAR,kBACpB,6BAAC,aAAD;IACI,GAAG,EAAEA,KADT;IAEI,QAAQ,EAAED,KAFd;IAGI,KAAK,EAAEC,KAHX;IAII,OAAO,EAAEhB,OAJb;IAKI,WAAW,EAAEI,oBALjB;IAMI,WAAW,EAAEE;EANjB,EADH,CADL,CADJ;AAcH,CAtCiB,CAAlB;eAwCeb,S"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA","sourcesContent":["export { default } from './ViewPagerWeb';\nexport type { default as ViewPagerProps } from './ViewPagerProps';"]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { default } from './ViewPagerWeb';\nexport type { default as ViewPagerProps, ViewPagerInstance } from './ViewPagerProps';\n"],"mappings":";;;;;;;;;;;;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.native.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA","sourcesContent":["export { default } from './ViewPagerNative';\n"]}
1
+ {"version":3,"names":[],"sources":["index.native.ts"],"sourcesContent":["export { default } from './ViewPagerNative';\n"],"mappings":";;;;;;;;;;;;AAAA"}
@@ -3,52 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.usePageRenderer = exports.defaultPageComponent = exports.defaultLoading = exports.defaultEnableNeighborPageRerender = exports.defaultEnableVisibleHint = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
6
+ exports.defaultPageComponent = exports.defaultLoading = exports.defaultInitialPage = void 0;
9
7
 
10
8
  var _ChildrenMemoizedPage = _interopRequireDefault(require("./ChildrenMemoizedPage"));
11
9
 
12
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
11
 
14
- const defaultEnableVisibleHint = false;
15
- exports.defaultEnableVisibleHint = defaultEnableVisibleHint;
16
- const defaultEnableNeighborPageRerender = false;
17
- exports.defaultEnableNeighborPageRerender = defaultEnableNeighborPageRerender;
12
+ const defaultInitialPage = 0;
13
+ exports.defaultInitialPage = defaultInitialPage;
18
14
  const defaultLoading = 'lazy';
19
15
  exports.defaultLoading = defaultLoading;
20
16
  const defaultPageComponent = _ChildrenMemoizedPage.default;
21
17
  exports.defaultPageComponent = defaultPageComponent;
22
-
23
- const usePageRenderer = ({
24
- enableVisibleHint,
25
- index: currentIndex,
26
- loading,
27
- pageComponent: PageComponent,
28
- pageForceRerenderKey,
29
- enableNeighborPageRerender
30
- }) => {
31
- const pagesStateRef = _react.default.useRef([]);
32
-
33
- pagesStateRef.current[currentIndex] = { ...pagesStateRef.current[currentIndex],
34
- visited: true
35
- };
36
- return children => _react.default.Children.map(children, (child, index) => {
37
- var _pagesStateRef$curren, _pagesStateRef$curren2;
38
-
39
- const visited = (_pagesStateRef$curren = (_pagesStateRef$curren2 = pagesStateRef.current[index]) === null || _pagesStateRef$curren2 === void 0 ? void 0 : _pagesStateRef$curren2.visited) !== null && _pagesStateRef$curren !== void 0 ? _pagesStateRef$curren : false;
40
- const content = loading === 'eager' || visited ? child : null;
41
- const isVisible = enableVisibleHint ? index === currentIndex : false;
42
- const isNeighborIndex = index === currentIndex - 1 || index === currentIndex + 1;
43
- return /*#__PURE__*/_react.default.createElement(PageComponent, {
44
- key: index,
45
- children: content,
46
- isNeighbor: enableNeighborPageRerender && isNeighborIndex,
47
- isVisible: isVisible,
48
- rerenderKey: pageForceRerenderKey
49
- });
50
- });
51
- };
52
-
53
- exports.usePageRenderer = usePageRenderer;
54
18
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["utils.tsx"],"names":["defaultEnableVisibleHint","defaultEnableNeighborPageRerender","defaultLoading","defaultPageComponent","ChildrenMemoizedPage","usePageRenderer","enableVisibleHint","index","currentIndex","loading","pageComponent","PageComponent","pageForceRerenderKey","enableNeighborPageRerender","pagesStateRef","React","useRef","current","visited","children","Children","map","child","content","isVisible","isNeighborIndex"],"mappings":";;;;;;;AAAA;;AAEA;;;;AAmBO,MAAMA,wBAAiC,GAAG,KAA1C;;AAEA,MAAMC,iCAA0C,GAAG,KAAnD;;AAEA,MAAMC,cAAuB,GAAG,MAAhC;;AAEA,MAAMC,oBAAmC,GAAGC,6BAA5C;;;AAEA,MAAMC,eAAe,GAAG,CAAC;AAC5BC,EAAAA,iBAD4B;AAE5BC,EAAAA,KAAK,EAAEC,YAFqB;AAG5BC,EAAAA,OAH4B;AAI5BC,EAAAA,aAAa,EAAEC,aAJa;AAK5BC,EAAAA,oBAL4B;AAM5BC,EAAAA;AAN4B,CAAD,KAOO;AAClC,QAAMC,aAAa,GAAGC,eAAMC,MAAN,CAA+B,EAA/B,CAAtB;;AAEAF,EAAAA,aAAa,CAACG,OAAd,CAAsBT,YAAtB,IAAsC,EAClC,GAAGM,aAAa,CAACG,OAAd,CAAsBT,YAAtB,CAD+B;AAElCU,IAAAA,OAAO,EAAE;AAFyB,GAAtC;AAKA,SAAQC,QAAQ,IAAIJ,eAAMK,QAAN,CAAeC,GAAf,CAAmBF,QAAnB,EAA6B,CAACG,KAAD,EAAQf,KAAR,KAAkB;AAAA;;AAC/D,UAAMW,OAAO,sDAAGJ,aAAa,CAACG,OAAd,CAAsBV,KAAtB,CAAH,2DAAG,uBAA8BW,OAAjC,yEAA4C,KAAzD;AACA,UAAMK,OAAO,GAAId,OAAO,KAAK,OAAZ,IAAuBS,OAAxB,GAAmCI,KAAnC,GAA2C,IAA3D;AAEA,UAAME,SAAS,GAAGlB,iBAAiB,GAAIC,KAAK,KAAKC,YAAd,GAA8B,KAAjE;AACA,UAAMiB,eAAe,GAAGlB,KAAK,KAAKC,YAAY,GAAG,CAAzB,IAA8BD,KAAK,KAAKC,YAAY,GAAG,CAA/E;AAEA,wBACI,6BAAC,aAAD;AACI,MAAA,GAAG,EAAED,KADT;AAEI,MAAA,QAAQ,EAAEgB,OAFd;AAGI,MAAA,UAAU,EAAEV,0BAA0B,IAAIY,eAH9C;AAII,MAAA,SAAS,EAAED,SAJf;AAKI,MAAA,WAAW,EAAEZ;AALjB,MADJ;AASH,GAhBmB,CAApB;AAiBH,CAhCM","sourcesContent":["import React from 'react';\nimport ViewPagerProps, { Loading, PageComponent } from './ViewPagerProps';\nimport ChildrenMemoizedPage from './ChildrenMemoizedPage';\n\nexport interface PageState {\n visited?: boolean;\n}\n\nexport interface PageRenderOption {\n enableVisibleHint: boolean;\n enableNeighborPageRerender: boolean;\n index: number;\n loading: Loading;\n pageComponent: PageComponent;\n pageForceRerenderKey?: any;\n}\n\nexport interface PageRenderer {\n (children: ViewPagerProps['children']): React.ReactNode;\n}\n\nexport const defaultEnableVisibleHint: boolean = false;\n\nexport const defaultEnableNeighborPageRerender: boolean = false;\n\nexport const defaultLoading: Loading = 'lazy';\n\nexport const defaultPageComponent: PageComponent = ChildrenMemoizedPage;\n\nexport const usePageRenderer = ({\n enableVisibleHint,\n index: currentIndex,\n loading,\n pageComponent: PageComponent,\n pageForceRerenderKey,\n enableNeighborPageRerender,\n}: PageRenderOption): PageRenderer => {\n const pagesStateRef = React.useRef<Array<PageState>>([]);\n\n pagesStateRef.current[currentIndex] = {\n ...pagesStateRef.current[currentIndex],\n visited: true,\n };\n\n return (children => React.Children.map(children, (child, index) => {\n const visited = pagesStateRef.current[index]?.visited ?? false;\n const content = (loading === 'eager' || visited) ? child : null;\n\n const isVisible = enableVisibleHint ? (index === currentIndex) : false;\n const isNeighborIndex = index === currentIndex - 1 || index === currentIndex + 1;\n\n return (\n <PageComponent\n key={index}\n children={content}\n isNeighbor={enableNeighborPageRerender && isNeighborIndex}\n isVisible={isVisible}\n rerenderKey={pageForceRerenderKey}\n />\n );\n }));\n};\n"]}
1
+ {"version":3,"names":["defaultInitialPage","defaultLoading","defaultPageComponent","ChildrenMemoizedPage"],"sources":["utils.tsx"],"sourcesContent":["import React from 'react';\nimport { Loading, PageComponent } from './ViewPagerProps';\nimport ChildrenMemoizedPage from './ChildrenMemoizedPage';\n\nexport const defaultInitialPage: number = 0;\n\nexport const defaultLoading: Loading = 'lazy';\n\nexport const defaultPageComponent: PageComponent = ChildrenMemoizedPage;\n"],"mappings":";;;;;;;AAEA;;;;AAEO,MAAMA,kBAA0B,GAAG,CAAnC;;AAEA,MAAMC,cAAuB,GAAG,MAAhC;;AAEA,MAAMC,oBAAmC,GAAGC,6BAA5C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;AACA","sourcesContent":["export { default as useUnstableCollapsibleAppBar } from './useUnstableCollapsibleAppBar';\nexport { default as useUnstableToggleDisplayStyle } from './useUnstableToggleDisplayStyle';\n\n"]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { default as useUnstableCollapsibleAppBar } from './useUnstableCollapsibleAppBar';\nexport { default as useUnstableToggleDisplayStyle } from './useUnstableToggleDisplayStyle';\n\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;AACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["useAppbarStyles.ts"],"names":["useAppBarStyles","floating","position","top","left","right"],"mappings":";;;;;;;AAIA,MAAMA,eAAwC,GAAG,YAA0B;AACvE,SAAO;AACHC,IAAAA,QAAQ,EAAE;AACNC,MAAAA,QAAQ,EAAE,UADJ;AAENC,MAAAA,GAAG,EAAE,CAFC;AAGNC,MAAAA,IAAI,EAAE,CAHA;AAINC,MAAAA,KAAK,EAAE;AAJD;AADP,GAAP;AAQH,CATD;;eAWeL,e","sourcesContent":["import { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\n\ntype AppBarStyles = NamedStylesStringUnion<'floating'>;\n\nconst useAppBarStyles: UseStyles<AppBarStyles> = function (): AppBarStyles {\n return {\n floating: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n };\n};\n\nexport default useAppBarStyles;"]}
1
+ {"version":3,"names":["useAppBarStyles","floating","position","top","left","right"],"sources":["useAppbarStyles.ts"],"sourcesContent":["import { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\n\ntype AppBarStyles = NamedStylesStringUnion<'floating'>;\n\nconst useAppBarStyles: UseStyles<AppBarStyles> = function (): AppBarStyles {\n return {\n floating: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n };\n};\n\nexport default useAppBarStyles;"],"mappings":";;;;;;;AAIA,MAAMA,eAAwC,GAAG,YAA0B;EACvE,OAAO;IACHC,QAAQ,EAAE;MACNC,QAAQ,EAAE,UADJ;MAENC,GAAG,EAAE,CAFC;MAGNC,IAAI,EAAE,CAHA;MAINC,KAAK,EAAE;IAJD;EADP,CAAP;AAQH,CATD;;eAWeL,e"}
@@ -1 +1 @@
1
- {"version":3,"sources":["useElevationStyle.ts"],"names":["useElevationStyle","elevation","theme","shadow","Platform","select","android","ios","web","boxShadow"],"mappings":";;;;;;;AAAA;;AAEA;;AAEe,SAASA,iBAAT,CAA2BC,SAA3B,EAAiD;AAC5D,QAAMC,KAAK,GAAG,uBAAd;AACA,QAAMC,MAAM,GAAGD,KAAK,CAACC,MAAN,CAAaF,SAAb,CAAf;AAEA,SAAOG,sBAASC,MAAT,CAAqB;AACxBC,IAAAA,OAAO,EAAEH,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEF,SADO;AAExBM,IAAAA,GAAG,EAAEJ,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEA,MAFW;AAGxBK,IAAAA,GAAG,EAAEL,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEM;AAHW,GAArB,CAAP;AAKH;;AAAA","sourcesContent":["import { Platform } from 'react-native';\nimport type { Elevation } from '@fountain-ui/styles';\nimport { useTheme } from '@fountain-ui/styles';\n\nexport default function useElevationStyle(elevation: Elevation) {\n const theme = useTheme();\n const shadow = theme.shadow[elevation];\n\n return Platform.select<any>({\n android: shadow?.elevation,\n ios: shadow?.shadow,\n web: shadow?.boxShadow,\n });\n};\n"]}
1
+ {"version":3,"names":["useElevationStyle","elevation","theme","useTheme","shadow","Platform","select","android","ios","web","boxShadow"],"sources":["useElevationStyle.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport type { Elevation } from '@fountain-ui/styles';\nimport { useTheme } from '@fountain-ui/styles';\n\nexport default function useElevationStyle(elevation: Elevation) {\n const theme = useTheme();\n const shadow = theme.shadow[elevation];\n\n return Platform.select<any>({\n android: shadow?.elevation,\n ios: shadow?.shadow,\n web: shadow?.boxShadow,\n });\n};\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEe,SAASA,iBAAT,CAA2BC,SAA3B,EAAiD;EAC5D,MAAMC,KAAK,GAAG,IAAAC,gBAAA,GAAd;EACA,MAAMC,MAAM,GAAGF,KAAK,CAACE,MAAN,CAAaH,SAAb,CAAf;EAEA,OAAOI,qBAAA,CAASC,MAAT,CAAqB;IACxBC,OAAO,EAAEH,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEH,SADO;IAExBO,GAAG,EAAEJ,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEA,MAFW;IAGxBK,GAAG,EAAEL,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEM;EAHW,CAArB,CAAP;AAKH;;AAAA"}
@@ -7,17 +7,18 @@ exports.default = useHeight;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
- var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
10
+ var _reactNativeReanimated = require("react-native-reanimated");
11
11
 
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
14
- function useHeight(initialHeight = 0) {
14
+ function useHeight() {
15
+ let initialHeight = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
16
+
15
17
  const [height, setHeight] = _react.default.useState(initialHeight);
16
18
 
17
- const onLayout = _reactNativeReanimated.default.useWorkletCallback(e => {
19
+ const onLayout = (0, _reactNativeReanimated.useWorkletCallback)(e => {
18
20
  setHeight(e.nativeEvent.layout.height);
19
21
  }, []);
20
-
21
22
  return [height, onLayout];
22
23
  }
23
24
 
@@ -1 +1 @@
1
- {"version":3,"sources":["useHeight.ts"],"names":["useHeight","initialHeight","height","setHeight","React","useState","onLayout","Animated","useWorkletCallback","e","nativeEvent","layout"],"mappings":";;;;;;;AAAA;;AAEA;;;;AAIe,SAASA,SAAT,CAAmBC,aAAa,GAAG,CAAnC,EAAkE;AAC7E,QAAM,CAACC,MAAD,EAASC,SAAT,IAAsBC,eAAMC,QAAN,CAAuBJ,aAAvB,CAA5B;;AAEA,QAAMK,QAAQ,GAAGC,+BAASC,kBAAT,CAA6BC,CAAD,IAAO;AAChDN,IAAAA,SAAS,CAACM,CAAC,CAACC,WAAF,CAAcC,MAAd,CAAqBT,MAAtB,CAAT;AACH,GAFgB,EAEd,EAFc,CAAjB;;AAIA,SAAO,CAACA,MAAD,EAASI,QAAT,CAAP;AACH;;AAAA","sourcesContent":["import React from 'react';\nimport { ViewProps } from 'react-native';\nimport Animated from 'react-native-reanimated';\n\ntype OnLayoutCallback = ViewProps['onLayout'];\n\nexport default function useHeight(initialHeight = 0): [number, OnLayoutCallback] {\n const [height, setHeight] = React.useState<number>(initialHeight);\n\n const onLayout = Animated.useWorkletCallback((e) => {\n setHeight(e.nativeEvent.layout.height);\n }, []);\n\n return [height, onLayout];\n};\n"]}
1
+ {"version":3,"names":["useHeight","initialHeight","height","setHeight","React","useState","onLayout","useWorkletCallback","e","nativeEvent","layout"],"sources":["useHeight.ts"],"sourcesContent":["import React from 'react';\nimport { ViewProps } from 'react-native';\nimport { useWorkletCallback } from 'react-native-reanimated';\n\ntype OnLayoutCallback = ViewProps['onLayout'];\n\nexport default function useHeight(initialHeight = 0): [number, OnLayoutCallback] {\n const [height, setHeight] = React.useState<number>(initialHeight);\n\n const onLayout = useWorkletCallback((e) => {\n setHeight(e.nativeEvent.layout.height);\n }, []);\n\n return [height, onLayout];\n};\n"],"mappings":";;;;;;;AAAA;;AAEA;;;;AAIe,SAASA,SAAT,GAAkE;EAAA,IAA/CC,aAA+C,uEAA/B,CAA+B;;EAC7E,MAAM,CAACC,MAAD,EAASC,SAAT,IAAsBC,cAAA,CAAMC,QAAN,CAAuBJ,aAAvB,CAA5B;;EAEA,MAAMK,QAAQ,GAAG,IAAAC,yCAAA,EAAoBC,CAAD,IAAO;IACvCL,SAAS,CAACK,CAAC,CAACC,WAAF,CAAcC,MAAd,CAAqBR,MAAtB,CAAT;EACH,CAFgB,EAEd,EAFc,CAAjB;EAIA,OAAO,CAACA,MAAD,EAASI,QAAT,CAAP;AACH;;AAAA"}
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = useUnstableCollapsibleAppBar;
7
7
 
8
- var _react = _interopRequireWildcard(require("react"));
8
+ var _react = require("react");
9
9
 
10
10
  var _reactNative = require("react-native");
11
11
 
12
- var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
12
+ var _reactNativeReanimated = require("react-native-reanimated");
13
13
 
14
14
  var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
15
15
 
@@ -21,12 +21,7 @@ var _useHeight = _interopRequireDefault(require("./useHeight"));
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
24
- 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); }
25
-
26
- 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; }
27
-
28
24
  const defaultOptions = {
29
- translucent: false,
30
25
  shouldTranslateYReset: false
31
26
  };
32
27
  const ANIMATION_DURATION_MILLIS = 100;
@@ -39,9 +34,9 @@ function useLargerValueOfLastTwoValues(value) {
39
34
  return Math.max(...refLatestTwoValues.current);
40
35
  }
41
36
 
42
- function useUnstableCollapsibleAppBar(userOptions = defaultOptions) {
37
+ function useUnstableCollapsibleAppBar() {
38
+ let userOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultOptions;
43
39
  const {
44
- translucent,
45
40
  shouldTranslateYReset
46
41
  } = { ...defaultOptions,
47
42
  ...userOptions
@@ -51,53 +46,58 @@ function useUnstableCollapsibleAppBar(userOptions = defaultOptions) {
51
46
  const [appBarHeight, onAppBarLayout] = (0, _useHeight.default)();
52
47
  const appBarMaxHeight = useLargerValueOfLastTwoValues(appBarHeight);
53
48
  const [collapsibleToolbarHeight, onCollapsibleToolbarLayout] = (0, _useHeight.default)();
49
+ const maxTranslateY = (0, _reactNativeReanimated.useDerivedValue)(() => -collapsibleToolbarHeight, [collapsibleToolbarHeight]);
50
+ const translateY = (0, _reactNativeReanimated.useSharedValue)(0);
51
+ const lastTranslateY = (0, _reactNativeReanimated.useSharedValue)(0);
52
+ const lastOffsetY = (0, _reactNativeReanimated.useSharedValue)(0);
53
+ const prevOffsetY = (0, _reactNativeReanimated.useSharedValue)(0);
54
+ const overlapped = (0, _reactNativeReanimated.useSharedValue)(false);
55
+ const vectorY = (0, _reactNativeReanimated.useSharedValue)(0);
56
+ const elevationStyle = (0, _useElevationStyle.default)(4);
57
+ const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
58
+ const transform = [{
59
+ translateY: translateY.value
60
+ }];
61
+
62
+ if (_reactNative.Platform.OS === 'web') {
63
+ return {
64
+ transform,
65
+ boxShadow: overlapped.value ? elevationStyle === null || elevationStyle === void 0 ? void 0 : elevationStyle.boxShadow : 0
66
+ };
67
+ }
54
68
 
55
- const maxTranslateY = _reactNativeReanimated.default.useDerivedValue(() => -collapsibleToolbarHeight);
56
-
57
- const translateY = _reactNativeReanimated.default.useSharedValue(0);
58
-
59
- const lastTranslateY = _reactNativeReanimated.default.useSharedValue(0);
60
-
61
- const lastOffsetY = _reactNativeReanimated.default.useSharedValue(0);
62
-
63
- const prevOffsetY = _reactNativeReanimated.default.useSharedValue(0);
64
-
65
- const overlapped = _reactNativeReanimated.default.useSharedValue(false);
66
-
67
- const vectorY = _reactNativeReanimated.default.useSharedValue(0);
69
+ if (_reactNative.Platform.OS === 'android') {
70
+ return {
71
+ transform,
72
+ elevation: overlapped.value ? elevationStyle === null || elevationStyle === void 0 ? void 0 : elevationStyle.elevation : 0
73
+ };
74
+ }
68
75
 
69
- const elevationStyle = (0, _useElevationStyle.default)(4);
76
+ if (_reactNative.Platform.OS === 'ios') {
77
+ return {
78
+ transform,
79
+ shadowColor: elevationStyle === null || elevationStyle === void 0 ? void 0 : elevationStyle.shadowColor,
80
+ shadowOffset: elevationStyle === null || elevationStyle === void 0 ? void 0 : elevationStyle.shadowOffset,
81
+ shadowRadius: elevationStyle === null || elevationStyle === void 0 ? void 0 : elevationStyle.shadowRadius,
82
+ shadowOpacity: overlapped.value ? elevationStyle === null || elevationStyle === void 0 ? void 0 : elevationStyle.shadowOpacity : 0
83
+ };
84
+ }
70
85
 
71
- const animatedStyle = _reactNativeReanimated.default.useAnimatedStyle(() => {
72
- return _reactNative.Platform.OS === 'web' ? {
73
- transform: [{
74
- translateY: translateY.value
75
- }],
76
- boxShadow: overlapped.value ? elevationStyle === null || elevationStyle === void 0 ? void 0 : elevationStyle.boxShadow : 0
77
- } : {
78
- transform: [{
79
- translateY: translateY.value
80
- }],
81
- elevation: overlapped.value ? elevationStyle === null || elevationStyle === void 0 ? void 0 : elevationStyle.elevation : 0,
82
- shadowColor: elevationStyle === null || elevationStyle === void 0 ? void 0 : elevationStyle.shadowColor,
83
- shadowOffset: elevationStyle === null || elevationStyle === void 0 ? void 0 : elevationStyle.shadowOffset,
84
- shadowRadius: elevationStyle === null || elevationStyle === void 0 ? void 0 : elevationStyle.shadowRadius,
85
- shadowOpacity: overlapped.value ? elevationStyle === null || elevationStyle === void 0 ? void 0 : elevationStyle.shadowOpacity : 0
86
- };
87
- });
88
-
89
- const indexRef = _react.default.useRef(0);
90
-
91
- const offsetsRef = _react.default.useRef([]);
86
+ return {};
87
+ }, [
88
+ /**
89
+ * FIXME: Consider add `elevationStyle` to dependencies.
90
+ */
91
+ ]);
92
+ const indexRef = (0, _react.useRef)(0);
93
+ const offsetsRef = (0, _react.useRef)([]);
92
94
 
93
95
  const onScrollViewChanged = nextIndex => {
94
- var _offsetsRef$current$n;
95
-
96
96
  const prevIndex = indexRef.current;
97
97
 
98
98
  if (prevIndex === nextIndex) {
99
99
  if (shouldTranslateYReset) {
100
- translateY.value = _reactNativeReanimated.default.withTiming(0, {
100
+ translateY.value = (0, _reactNativeReanimated.withTiming)(0, {
101
101
  duration: ANIMATION_DURATION_MILLIS
102
102
  });
103
103
  vectorY.value = 0;
@@ -109,21 +109,21 @@ function useUnstableCollapsibleAppBar(userOptions = defaultOptions) {
109
109
  }
110
110
 
111
111
  offsetsRef.current[prevIndex] = lastOffsetY.value;
112
- const savedOffsetY = (_offsetsRef$current$n = offsetsRef.current[nextIndex]) !== null && _offsetsRef$current$n !== void 0 ? _offsetsRef$current$n : 0;
112
+ const savedOffsetY = offsetsRef.current[nextIndex] ?? 0;
113
113
  lastOffsetY.value = savedOffsetY;
114
114
  indexRef.current = nextIndex; // Determine whether to overlap every time index is changed.
115
115
 
116
116
  overlapped.value = savedOffsetY > 0; // If next ScrollView's offset is too short, expand app bar.
117
117
 
118
118
  if (translateY.value < 0 && savedOffsetY < appBarHeight) {
119
- translateY.value = _reactNativeReanimated.default.withTiming(0, {
119
+ translateY.value = (0, _reactNativeReanimated.withTiming)(0, {
120
120
  duration: ANIMATION_DURATION_MILLIS
121
121
  });
122
122
  vectorY.value = 0;
123
123
  }
124
124
  };
125
125
 
126
- const scrollHandler = _reactNativeReanimated.default.useAnimatedScrollHandler({
126
+ const scrollHandler = (0, _reactNativeReanimated.useAnimatedScrollHandler)({
127
127
  onBeginDrag: () => {
128
128
  lastTranslateY.value = translateY.value;
129
129
  },
@@ -145,13 +145,13 @@ function useUnstableCollapsibleAppBar(userOptions = defaultOptions) {
145
145
  } else {
146
146
  if (offsetY > -maxTy) {
147
147
  if (ty === 0) {
148
- translateY.value = _reactNativeReanimated.default.withTiming(Math.min(Math.max(-offsetY, maxTy), 0), {
148
+ translateY.value = (0, _reactNativeReanimated.withTiming)(Math.min(Math.max(-offsetY, maxTy), 0), {
149
149
  duration: ANIMATION_DURATION_MILLIS
150
150
  });
151
151
  }
152
152
  } else {
153
153
  if (ty === maxTy) {
154
- translateY.value = _reactNativeReanimated.default.withTiming(0, {
154
+ translateY.value = (0, _reactNativeReanimated.withTiming)(0, {
155
155
  duration: ANIMATION_DURATION_MILLIS
156
156
  });
157
157
  }
@@ -177,16 +177,15 @@ function useUnstableCollapsibleAppBar(userOptions = defaultOptions) {
177
177
  const threshold = maxTy * 0.5;
178
178
  const nextTranslateY = ty > threshold || offsetY < appBarHeight ? 0 : maxTy;
179
179
  overlapped.value = offsetY + nextTranslateY > 0;
180
- translateY.value = _reactNativeReanimated.default.withTiming(nextTranslateY, {
180
+ translateY.value = (0, _reactNativeReanimated.withTiming)(nextTranslateY, {
181
181
  duration: ANIMATION_DURATION_MILLIS
182
182
  });
183
183
  }
184
- });
185
-
184
+ }, []);
186
185
  const hasCollapsible = collapsibleToolbarHeight > 0;
187
- const appBarStyle = [animatedStyle, translucent ? {
186
+ const appBarStyle = [animatedStyle, {
188
187
  paddingTop: safeAreaInsets.top
189
- } : undefined, hasCollapsible ? styles.floating : undefined];
188
+ }, hasCollapsible ? styles.floating : undefined];
190
189
  return {
191
190
  appBarStyle,
192
191
  vectorY,