@fountain-ui/lab 2.0.0-beta.18 → 2.0.0-beta.21

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 (120) hide show
  1. package/build/commonjs/ViewPager/FluxContext.js +13 -0
  2. package/build/commonjs/ViewPager/FluxContext.js.map +1 -0
  3. package/build/commonjs/ViewPager/PageStateContext.js +1 -7
  4. package/build/commonjs/ViewPager/PageStateContext.js.map +1 -1
  5. package/build/commonjs/ViewPager/{ViewPagerWeb.js → ViewPager.js} +10 -9
  6. package/build/commonjs/ViewPager/ViewPager.js.map +1 -0
  7. package/build/commonjs/ViewPager/{ViewPagerNative.js → ViewPager.native.js} +11 -10
  8. package/build/commonjs/ViewPager/ViewPager.native.js.map +1 -0
  9. package/build/commonjs/ViewPager/ViewPagerProps.js.map +1 -1
  10. package/build/commonjs/ViewPager/{ChildrenMemoizedPage.js → components/ChildrenMemoizedPage.js} +6 -4
  11. package/build/commonjs/ViewPager/components/ChildrenMemoizedPage.js.map +1 -0
  12. package/build/commonjs/ViewPager/components/FluxStoreProvider.js +37 -0
  13. package/build/commonjs/ViewPager/components/FluxStoreProvider.js.map +1 -0
  14. package/build/commonjs/ViewPager/components/index.js +24 -0
  15. package/build/commonjs/ViewPager/components/index.js.map +1 -0
  16. package/build/commonjs/ViewPager/hooks/index.js +56 -0
  17. package/build/commonjs/ViewPager/hooks/index.js.map +1 -0
  18. package/build/commonjs/ViewPager/hooks/useDispatch.js +22 -0
  19. package/build/commonjs/ViewPager/hooks/useDispatch.js.map +1 -0
  20. package/build/commonjs/ViewPager/hooks/useForceRender.js +16 -0
  21. package/build/commonjs/ViewPager/hooks/useForceRender.js.map +1 -0
  22. package/build/commonjs/ViewPager/hooks/useLazyState.js +45 -0
  23. package/build/commonjs/ViewPager/hooks/useLazyState.js.map +1 -0
  24. package/build/commonjs/ViewPager/{usePageStore.js → hooks/usePageStore.js} +0 -0
  25. package/build/commonjs/ViewPager/{usePageStore.js.map → hooks/usePageStore.js.map} +0 -0
  26. package/build/commonjs/ViewPager/hooks/useStore.js +26 -0
  27. package/build/commonjs/ViewPager/hooks/useStore.js.map +1 -0
  28. package/build/commonjs/ViewPager/hooks/useViewPagerPageState.js +19 -0
  29. package/build/commonjs/ViewPager/hooks/useViewPagerPageState.js.map +1 -0
  30. package/build/commonjs/ViewPager/index.js +30 -4
  31. package/build/commonjs/ViewPager/index.js.map +1 -1
  32. package/build/commonjs/ViewPager/types.js +0 -4
  33. package/build/commonjs/ViewPager/types.js.map +1 -1
  34. package/build/commonjs/ViewPager/utils.js +5 -8
  35. package/build/commonjs/ViewPager/utils.js.map +1 -1
  36. package/build/module/ViewPager/FluxContext.js +4 -0
  37. package/build/module/ViewPager/FluxContext.js.map +1 -0
  38. package/build/module/ViewPager/PageStateContext.js +1 -4
  39. package/build/module/ViewPager/PageStateContext.js.map +1 -1
  40. package/build/module/ViewPager/{ViewPagerWeb.js → ViewPager.js} +10 -10
  41. package/build/module/ViewPager/ViewPager.js.map +1 -0
  42. package/build/module/ViewPager/{ViewPagerNative.js → ViewPager.native.js} +10 -10
  43. package/build/module/ViewPager/ViewPager.native.js.map +1 -0
  44. package/build/module/ViewPager/ViewPagerProps.js.map +1 -1
  45. package/build/module/ViewPager/{ChildrenMemoizedPage.js → components/ChildrenMemoizedPage.js} +6 -5
  46. package/build/module/ViewPager/components/ChildrenMemoizedPage.js.map +1 -0
  47. package/build/module/ViewPager/components/FluxStoreProvider.js +20 -0
  48. package/build/module/ViewPager/components/FluxStoreProvider.js.map +1 -0
  49. package/build/module/ViewPager/components/index.js +3 -0
  50. package/build/module/ViewPager/components/index.js.map +1 -0
  51. package/build/module/ViewPager/hooks/index.js +7 -0
  52. package/build/module/ViewPager/hooks/index.js.map +1 -0
  53. package/build/module/ViewPager/hooks/useDispatch.js +10 -0
  54. package/build/module/ViewPager/hooks/useDispatch.js.map +1 -0
  55. package/build/module/ViewPager/hooks/useForceRender.js +7 -0
  56. package/build/module/ViewPager/hooks/useForceRender.js.map +1 -0
  57. package/build/module/ViewPager/hooks/useLazyState.js +30 -0
  58. package/build/module/ViewPager/hooks/useLazyState.js.map +1 -0
  59. package/build/module/ViewPager/{usePageStore.js → hooks/usePageStore.js} +0 -0
  60. package/build/module/ViewPager/{usePageStore.js.map → hooks/usePageStore.js.map} +0 -0
  61. package/build/module/ViewPager/hooks/useStore.js +14 -0
  62. package/build/module/ViewPager/hooks/useStore.js.map +1 -0
  63. package/build/module/ViewPager/hooks/useViewPagerPageState.js +7 -0
  64. package/build/module/ViewPager/hooks/useViewPagerPageState.js.map +1 -0
  65. package/build/module/ViewPager/index.js +3 -2
  66. package/build/module/ViewPager/index.js.map +1 -1
  67. package/build/module/ViewPager/types.js +1 -1
  68. package/build/module/ViewPager/types.js.map +1 -1
  69. package/build/module/ViewPager/utils.js +1 -2
  70. package/build/module/ViewPager/utils.js.map +1 -1
  71. package/build/typescript/ViewPager/FluxContext.d.ts +5 -0
  72. package/build/typescript/ViewPager/PageStateContext.d.ts +1 -2
  73. package/build/typescript/ViewPager/{ViewPagerNative.d.ts → ViewPager.d.ts} +1 -1
  74. package/build/typescript/ViewPager/{ViewPagerWeb.d.ts → ViewPager.native.d.ts} +1 -1
  75. package/build/typescript/ViewPager/ViewPagerProps.d.ts +1 -6
  76. package/build/typescript/ViewPager/components/ChildrenMemoizedPage.d.ts +14 -0
  77. package/build/typescript/ViewPager/components/FluxStoreProvider.d.ts +6 -0
  78. package/build/typescript/ViewPager/components/index.d.ts +2 -0
  79. package/build/typescript/ViewPager/hooks/index.d.ts +6 -0
  80. package/build/typescript/ViewPager/hooks/useDispatch.d.ts +1 -0
  81. package/build/typescript/ViewPager/hooks/useForceRender.d.ts +2 -0
  82. package/build/typescript/ViewPager/hooks/useLazyState.d.ts +2 -0
  83. package/build/typescript/ViewPager/{usePageStore.d.ts → hooks/usePageStore.d.ts} +0 -0
  84. package/build/typescript/ViewPager/hooks/useStore.d.ts +2 -0
  85. package/build/typescript/ViewPager/hooks/useViewPagerPageState.d.ts +1 -0
  86. package/build/typescript/ViewPager/index.d.ts +3 -2
  87. package/build/typescript/ViewPager/types.d.ts +3 -10
  88. package/build/typescript/ViewPager/utils.d.ts +2 -2
  89. package/package.json +2 -2
  90. package/src/ViewPager/FluxContext.ts +8 -0
  91. package/src/ViewPager/PageStateContext.ts +2 -6
  92. package/src/ViewPager/{ViewPagerNative.tsx → ViewPager.native.tsx} +7 -7
  93. package/src/ViewPager/{ViewPagerWeb.tsx → ViewPager.tsx} +7 -7
  94. package/src/ViewPager/ViewPagerProps.ts +1 -7
  95. package/src/ViewPager/{ChildrenMemoizedPage.tsx → components/ChildrenMemoizedPage.tsx} +17 -6
  96. package/src/ViewPager/components/FluxStoreProvider.tsx +27 -0
  97. package/src/ViewPager/components/index.ts +2 -0
  98. package/src/ViewPager/hooks/index.ts +6 -0
  99. package/src/ViewPager/hooks/useDispatch.ts +11 -0
  100. package/src/ViewPager/hooks/useForceRender.ts +7 -0
  101. package/src/ViewPager/hooks/useLazyState.ts +32 -0
  102. package/src/ViewPager/{usePageStore.ts → hooks/usePageStore.ts} +0 -0
  103. package/src/ViewPager/hooks/useStore.ts +15 -0
  104. package/src/ViewPager/hooks/useViewPagerPageState.ts +6 -0
  105. package/src/ViewPager/index.ts +3 -2
  106. package/src/ViewPager/types.ts +4 -13
  107. package/src/ViewPager/utils.tsx +2 -3
  108. package/build/commonjs/ViewPager/ChildrenMemoizedPage.js.map +0 -1
  109. package/build/commonjs/ViewPager/ViewPagerNative.js.map +0 -1
  110. package/build/commonjs/ViewPager/ViewPagerWeb.js.map +0 -1
  111. package/build/commonjs/ViewPager/index.native.js +0 -24
  112. package/build/commonjs/ViewPager/index.native.js.map +0 -1
  113. package/build/module/ViewPager/ChildrenMemoizedPage.js.map +0 -1
  114. package/build/module/ViewPager/ViewPagerNative.js.map +0 -1
  115. package/build/module/ViewPager/ViewPagerWeb.js.map +0 -1
  116. package/build/module/ViewPager/index.native.js +0 -3
  117. package/build/module/ViewPager/index.native.js.map +0 -1
  118. package/build/typescript/ViewPager/ChildrenMemoizedPage.d.ts +0 -5
  119. package/build/typescript/ViewPager/index.native.d.ts +0 -2
  120. package/src/ViewPager/index.native.ts +0 -2
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ const FluxContext = /*#__PURE__*/(0, _react.createContext)(null);
11
+ var _default = FluxContext;
12
+ exports.default = _default;
13
+ //# sourceMappingURL=FluxContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FluxContext","createContext"],"sources":["FluxContext.ts"],"sourcesContent":["import { createContext } from 'react';\nimport type { MonoStore } from '@fountain-ui/core';\n\nexport type FluxStore<S> = MonoStore<S>;\n\nconst FluxContext = createContext<FluxStore<any> | null>(null);\n\nexport default FluxContext;\n"],"mappings":";;;;;;;AAAA;;AAKA,MAAMA,WAAW,gBAAG,IAAAC,oBAAA,EAAqC,IAArC,CAApB;eAEeD,W"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useViewPagerPageState = exports.default = void 0;
6
+ exports.default = void 0;
7
7
 
8
8
  var _react = require("react");
9
9
 
@@ -11,12 +11,6 @@ const initialPageState = {
11
11
  isActive: false
12
12
  };
13
13
  const PageStateContext = /*#__PURE__*/(0, _react.createContext)(initialPageState);
14
-
15
- const useViewPagerPageState = () => {
16
- return (0, _react.useContext)(PageStateContext);
17
- };
18
-
19
- exports.useViewPagerPageState = useViewPagerPageState;
20
14
  var _default = PageStateContext;
21
15
  exports.default = _default;
22
16
  //# sourceMappingURL=PageStateContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["initialPageState","isActive","PageStateContext","createContext","useViewPagerPageState","useContext"],"sources":["PageStateContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\ninterface PageState {\n isActive: boolean;\n}\n\nconst initialPageState: Readonly<PageState> = { isActive: false };\n\nconst PageStateContext = createContext<PageState>(initialPageState);\n\nexport const useViewPagerPageState = () => {\n return useContext(PageStateContext);\n};\n\nexport default PageStateContext;\n"],"mappings":";;;;;;;AAAA;;AAMA,MAAMA,gBAAqC,GAAG;EAAEC,QAAQ,EAAE;AAAZ,CAA9C;AAEA,MAAMC,gBAAgB,gBAAG,IAAAC,oBAAA,EAAyBH,gBAAzB,CAAzB;;AAEO,MAAMI,qBAAqB,GAAG,MAAM;EACvC,OAAO,IAAAC,iBAAA,EAAWH,gBAAX,CAAP;AACH,CAFM;;;eAIQA,gB"}
1
+ {"version":3,"names":["initialPageState","isActive","PageStateContext","createContext"],"sources":["PageStateContext.ts"],"sourcesContent":["import { createContext } from 'react';\n\nexport interface PageState {\n isActive: boolean;\n}\n\nconst initialPageState: Readonly<PageState> = { isActive: false };\n\nconst PageStateContext = createContext<PageState>(initialPageState);\n\nexport default PageStateContext;\n"],"mappings":";;;;;;;AAAA;;AAMA,MAAMA,gBAAqC,GAAG;EAAEC,QAAQ,EAAE;AAAZ,CAA9C;AAEA,MAAMC,gBAAgB,gBAAG,IAAAC,oBAAA,EAAyBH,gBAAzB,CAAzB;eAEeE,gB"}
@@ -11,9 +11,11 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _core = require("@fountain-ui/core");
13
13
 
14
+ var _components = require("./components");
15
+
14
16
  var _utils = require("./utils");
15
17
 
16
- var _usePageStore = _interopRequireDefault(require("./usePageStore"));
18
+ var _hooks = require("./hooks");
17
19
 
18
20
  var _InternalContext = _interopRequireDefault(require("./InternalContext"));
19
21
 
@@ -36,7 +38,6 @@ const ViewPager = /*#__PURE__*/(0, _react.forwardRef)(function ViewPager(props,
36
38
  children,
37
39
  initialPage = _utils.defaultInitialPage,
38
40
  loading = _utils.defaultLoading,
39
- pageComponent = _utils.defaultPageComponent,
40
41
  pageForceRerenderKey,
41
42
  style,
42
43
  UNSTABLE_sharedPage
@@ -51,15 +52,15 @@ const ViewPager = /*#__PURE__*/(0, _react.forwardRef)(function ViewPager(props,
51
52
  (0, _react.useImperativeHandle)(ref, () => ({
52
53
  setPage
53
54
  }), [setPage]);
54
- const pageStore = (0, _usePageStore.default)(sharedPage);
55
- const PageComponent = pageComponent;
55
+ const pageStore = (0, _hooks.usePageStore)(sharedPage);
56
+ const contextValue = (0, _react.useMemo)(() => ({
57
+ pageStore
58
+ }), [pageStore]);
56
59
  return /*#__PURE__*/_react.default.createElement(_InternalContext.default.Provider, {
57
- value: {
58
- pageStore
59
- }
60
+ value: contextValue
60
61
  }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
61
62
  style: [styles.root, style]
62
- }, _react.Children.map(children, (child, index) => /*#__PURE__*/_react.default.createElement(PageComponent, {
63
+ }, _react.Children.map(children, (child, index) => /*#__PURE__*/_react.default.createElement(_components.ChildrenMemoizedPage, {
63
64
  key: index,
64
65
  children: child,
65
66
  index: index,
@@ -72,4 +73,4 @@ const ViewPager = /*#__PURE__*/(0, _react.forwardRef)(function ViewPager(props,
72
73
  });
73
74
  var _default = ViewPager;
74
75
  exports.default = _default;
75
- //# sourceMappingURL=ViewPagerWeb.js.map
76
+ //# sourceMappingURL=ViewPager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["styles","StyleSheet","create","root","overflow","position","ViewPager","forwardRef","props","ref","children","initialPage","defaultInitialPage","loading","defaultLoading","pageForceRerenderKey","style","UNSTABLE_sharedPage","fallbackSharedPage","useSyncAnimatedValue","initialValue","sharedPage","setPage","useCallback","newPage","animatedValue","setValue","useImperativeHandle","pageStore","usePageStore","contextValue","useMemo","Children","map","child","index"],"sources":["ViewPager.tsx"],"sourcesContent":["import React, { Children, forwardRef, useCallback, useImperativeHandle, useMemo } from 'react';\nimport { View } from 'react-native';\nimport { StyleSheet, useSyncAnimatedValue } from '@fountain-ui/core';\nimport { ChildrenMemoizedPage } from './components';\nimport type ViewPagerProps from './ViewPagerProps';\nimport type { ViewPagerInstance } from './types';\nimport { defaultInitialPage, defaultLoading } from './utils';\nimport { usePageStore } from './hooks';\nimport InternalContext from './InternalContext';\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 pageForceRerenderKey,\n style,\n UNSTABLE_sharedPage,\n } = props;\n\n const fallbackSharedPage = useSyncAnimatedValue({ initialValue: initialPage });\n\n const sharedPage = UNSTABLE_sharedPage ?? fallbackSharedPage;\n\n const setPage = useCallback((newPage: number) => {\n sharedPage.animatedValue.setValue(newPage);\n }, [sharedPage]);\n\n useImperativeHandle(\n ref,\n () => ({ setPage }),\n [setPage],\n );\n\n const pageStore = usePageStore(sharedPage);\n\n const contextValue = useMemo(() => ({ pageStore }), [pageStore]);\n\n return (\n <InternalContext.Provider value={contextValue}>\n <View style={[styles.root, style]}>\n {Children.map(children, (child, index) => (\n <ChildrenMemoizedPage\n key={index}\n children={child}\n index={index}\n initialPage={sharedPage.initialValue}\n loading={loading}\n offscreenPageRerenderLimit={0} // All offscreen pages will not be re-rendered\n rerenderKey={pageForceRerenderKey}\n />\n ))}\n </View>\n </InternalContext.Provider>\n );\n});\n\nexport default ViewPager;\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;;;;;;;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,oBAJE;IAKFC,KALE;IAMFC;EANE,IAOFT,KAPJ;EASA,MAAMU,kBAAkB,GAAG,IAAAC,0BAAA,EAAqB;IAAEC,YAAY,EAAET;EAAhB,CAArB,CAA3B;EAEA,MAAMU,UAAU,GAAGJ,mBAAmB,IAAIC,kBAA1C;EAEA,MAAMI,OAAO,GAAG,IAAAC,kBAAA,EAAaC,OAAD,IAAqB;IAC7CH,UAAU,CAACI,aAAX,CAAyBC,QAAzB,CAAkCF,OAAlC;EACH,CAFe,EAEb,CAACH,UAAD,CAFa,CAAhB;EAIA,IAAAM,0BAAA,EACIlB,GADJ,EAEI,OAAO;IAAEa;EAAF,CAAP,CAFJ,EAGI,CAACA,OAAD,CAHJ;EAMA,MAAMM,SAAS,GAAG,IAAAC,mBAAA,EAAaR,UAAb,CAAlB;EAEA,MAAMS,YAAY,GAAG,IAAAC,cAAA,EAAQ,OAAO;IAAEH;EAAF,CAAP,CAAR,EAA+B,CAACA,SAAD,CAA/B,CAArB;EAEA,oBACI,6BAAC,wBAAD,CAAiB,QAAjB;IAA0B,KAAK,EAAEE;EAAjC,gBACI,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAAC9B,MAAM,CAACG,IAAR,EAAca,KAAd;EAAb,GACKgB,eAAA,CAASC,GAAT,CAAavB,QAAb,EAAuB,CAACwB,KAAD,EAAQC,KAAR,kBACpB,6BAAC,gCAAD;IACI,GAAG,EAAEA,KADT;IAEI,QAAQ,EAAED,KAFd;IAGI,KAAK,EAAEC,KAHX;IAII,WAAW,EAAEd,UAAU,CAACD,YAJ5B;IAKI,OAAO,EAAEP,OALb;IAMI,0BAA0B,EAAE,CANhC,CAMmC;IANnC;IAOI,WAAW,EAAEE;EAPjB,EADH,CADL,CADJ,CADJ;AAiBH,CA7CiB,CAAlB;eA+CeT,S"}
@@ -11,9 +11,11 @@ var _reactNativePagerView = _interopRequireDefault(require("react-native-pager-v
11
11
 
12
12
  var _core = require("@fountain-ui/core");
13
13
 
14
- var _utils = require("./utils");
14
+ var _components = require("./components");
15
+
16
+ var _hooks = require("./hooks");
15
17
 
16
- var _usePageStore = _interopRequireDefault(require("./usePageStore"));
18
+ var _utils = require("./utils");
17
19
 
18
20
  var _InternalContext = _interopRequireDefault(require("./InternalContext"));
19
21
 
@@ -31,7 +33,6 @@ const ViewPager = /*#__PURE__*/(0, _react.forwardRef)(function ViewPager(props,
31
33
  loading = _utils.defaultLoading,
32
34
  offscreenPageRerenderLimit = _utils.defaultOffscreenPageRerenderLimit,
33
35
  onChange,
34
- pageComponent = _utils.defaultPageComponent,
35
36
  pageForceRerenderKey,
36
37
  scrollEnabled = true,
37
38
  style,
@@ -117,12 +118,12 @@ const ViewPager = /*#__PURE__*/(0, _react.forwardRef)(function ViewPager(props,
117
118
  (0, _react.useImperativeHandle)(ref, () => ({
118
119
  setPage
119
120
  }), [setPage]);
120
- const pageStore = (0, _usePageStore.default)(sharedPage);
121
- const PageComponent = pageComponent;
121
+ const pageStore = (0, _hooks.usePageStore)(sharedPage);
122
+ const contextValue = (0, _react.useMemo)(() => ({
123
+ pageStore
124
+ }), [pageStore]);
122
125
  return /*#__PURE__*/_react.default.createElement(_InternalContext.default.Provider, {
123
- value: {
124
- pageStore
125
- }
126
+ value: contextValue
126
127
  }, /*#__PURE__*/_react.default.createElement(_reactNativePagerView.default, {
127
128
  ref: pagerRef,
128
129
  initialPage: sharedPage.initialValue,
@@ -131,7 +132,7 @@ const ViewPager = /*#__PURE__*/(0, _react.forwardRef)(function ViewPager(props,
131
132
  pageMargin: 8,
132
133
  scrollEnabled: scrollEnabled,
133
134
  style: style
134
- }, _react.Children.map(children, (child, index) => /*#__PURE__*/_react.default.createElement(PageComponent, {
135
+ }, _react.Children.map(children, (child, index) => /*#__PURE__*/_react.default.createElement(_components.ChildrenMemoizedPage, {
135
136
  key: index,
136
137
  children: child,
137
138
  index: index,
@@ -143,4 +144,4 @@ const ViewPager = /*#__PURE__*/(0, _react.forwardRef)(function ViewPager(props,
143
144
  });
144
145
  var _default = ViewPager;
145
146
  exports.default = _default;
146
- //# sourceMappingURL=ViewPagerNative.js.map
147
+ //# sourceMappingURL=ViewPager.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ViewPager","forwardRef","props","ref","children","initialPage","defaultInitialPage","keyboardDismissMode","loading","defaultLoading","offscreenPageRerenderLimit","defaultOffscreenPageRerenderLimit","onChange","pageForceRerenderKey","scrollEnabled","style","UNSTABLE_sharedPage","fallbackSharedPage","useSyncAnimatedValue","initialValue","sharedPage","pageRef","useRef","desiredPageRef","NaN","pagerRef","animationFrameRef","setPage","useCallback","newPage","Number","isInteger","current","requestAnimationFrame","isFinite","useEffect","cancelAnimationFrame","animatedValue","id","addListener","newValue","value","removeListener","handlePageSelected","e","desiredPage","setValue","trustfulNextPage","nativeEvent","position","useImperativeHandle","pageStore","usePageStore","contextValue","useMemo","Children","map","child","index"],"sources":["ViewPager.native.tsx"],"sourcesContent":["import React, { Children, forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\nimport type { ViewPagerOnPageSelectedEvent } from 'react-native-pager-view';\nimport RNViewPager from 'react-native-pager-view';\nimport { useSyncAnimatedValue } from '@fountain-ui/core';\nimport { ChildrenMemoizedPage } from './components';\nimport type ViewPagerProps from './ViewPagerProps';\nimport type { ViewPagerInstance } from './types';\nimport { usePageStore } from './hooks';\nimport { defaultInitialPage, defaultLoading, defaultOffscreenPageRerenderLimit } from './utils';\nimport InternalContext from './InternalContext';\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 offscreenPageRerenderLimit = defaultOffscreenPageRerenderLimit,\n onChange,\n pageForceRerenderKey,\n scrollEnabled = true,\n style,\n UNSTABLE_sharedPage,\n } = props;\n\n const fallbackSharedPage = useSyncAnimatedValue({ initialValue: initialPage });\n\n const sharedPage = UNSTABLE_sharedPage ?? fallbackSharedPage;\n\n const pageRef = useRef<number>(sharedPage.initialValue);\n\n const desiredPageRef = useRef<number>(NaN);\n\n const pagerRef = useRef<RNViewPager | null>(null);\n\n const animationFrameRef = useRef<number>(NaN);\n\n const setPage = useCallback((newPage: number) => {\n if (!Number.isInteger(newPage)) {\n return;\n }\n\n animationFrameRef.current = requestAnimationFrame(() => {\n if (Number.isFinite(desiredPageRef.current)) {\n if (pageRef.current === desiredPageRef.current) {\n // end of state machine. clear desired page.\n desiredPageRef.current = NaN;\n return;\n }\n\n if (newPage === desiredPageRef.current) {\n return;\n }\n }\n\n desiredPageRef.current = newPage;\n pagerRef.current?.setPage(newPage);\n });\n }, []);\n\n useEffect(() => {\n return () => {\n if (animationFrameRef.current) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n };\n }, []);\n\n useEffect(() => {\n const animatedValue = sharedPage.animatedValue;\n const id = animatedValue.addListener(newValue => {\n const newPage = newValue.value;\n pageRef.current = newPage;\n setPage(newPage);\n });\n\n return () => {\n animatedValue.removeListener(id);\n };\n }, [sharedPage, setPage]);\n\n const handlePageSelected = useCallback((e: ViewPagerOnPageSelectedEvent) => {\n if (Number.isFinite(desiredPageRef.current)) {\n // onPageSelected is called from outer controlling mechanism\n // e.g. sharedPage.value is changed, setPage() is called\n // Due to the onPageSelected bug,\n // we don't trust the value from event, (e.nativeEvent.position)\n // other than that trust the value from desiredPageRef.\n\n const desiredPage = desiredPageRef.current;\n\n if (pageRef.current === desiredPage) {\n // end of state machine. clear desired page.\n desiredPageRef.current = NaN;\n } else {\n sharedPage.animatedValue.setValue(desiredPage);\n }\n\n onChange?.(desiredPage);\n } else {\n const trustfulNextPage = e.nativeEvent.position;\n\n if (trustfulNextPage !== pageRef.current) {\n desiredPageRef.current = trustfulNextPage;\n sharedPage.animatedValue.setValue(trustfulNextPage);\n\n onChange?.(trustfulNextPage);\n }\n }\n }, [onChange, sharedPage]);\n\n useImperativeHandle(\n ref,\n () => ({ setPage }),\n [setPage],\n );\n\n const pageStore = usePageStore(sharedPage);\n\n const contextValue = useMemo(() => ({ pageStore }), [pageStore]);\n\n return (\n <InternalContext.Provider value={contextValue}>\n <RNViewPager\n ref={pagerRef}\n initialPage={sharedPage.initialValue}\n keyboardDismissMode={keyboardDismissMode}\n onPageSelected={handlePageSelected}\n pageMargin={8}\n scrollEnabled={scrollEnabled}\n style={style}\n >\n {Children.map(children, (child, index) => (\n <ChildrenMemoizedPage\n key={index}\n children={child}\n index={index}\n initialPage={sharedPage.initialValue}\n loading={loading}\n offscreenPageRerenderLimit={offscreenPageRerenderLimit}\n rerenderKey={pageForceRerenderKey}\n />\n ))}\n </RNViewPager>\n </InternalContext.Provider>\n );\n});\n\nexport default ViewPager;\n"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AAGA;;AACA;;AACA;;;;;;;;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,0BAA0B,GAAGC,wCAL3B;IAMFC,QANE;IAOFC,oBAPE;IAQFC,aAAa,GAAG,IARd;IASFC,KATE;IAUFC;EAVE,IAWFd,KAXJ;EAaA,MAAMe,kBAAkB,GAAG,IAAAC,0BAAA,EAAqB;IAAEC,YAAY,EAAEd;EAAhB,CAArB,CAA3B;EAEA,MAAMe,UAAU,GAAGJ,mBAAmB,IAAIC,kBAA1C;EAEA,MAAMI,OAAO,GAAG,IAAAC,aAAA,EAAeF,UAAU,CAACD,YAA1B,CAAhB;EAEA,MAAMI,cAAc,GAAG,IAAAD,aAAA,EAAeE,GAAf,CAAvB;EAEA,MAAMC,QAAQ,GAAG,IAAAH,aAAA,EAA2B,IAA3B,CAAjB;EAEA,MAAMI,iBAAiB,GAAG,IAAAJ,aAAA,EAAeE,GAAf,CAA1B;EAEA,MAAMG,OAAO,GAAG,IAAAC,kBAAA,EAAaC,OAAD,IAAqB;IAC7C,IAAI,CAACC,MAAM,CAACC,SAAP,CAAiBF,OAAjB,CAAL,EAAgC;MAC5B;IACH;;IAEDH,iBAAiB,CAACM,OAAlB,GAA4BC,qBAAqB,CAAC,MAAM;MAAA;;MACpD,IAAIH,MAAM,CAACI,QAAP,CAAgBX,cAAc,CAACS,OAA/B,CAAJ,EAA6C;QACzC,IAAIX,OAAO,CAACW,OAAR,KAAoBT,cAAc,CAACS,OAAvC,EAAgD;UAC5C;UACAT,cAAc,CAACS,OAAf,GAAyBR,GAAzB;UACA;QACH;;QAED,IAAIK,OAAO,KAAKN,cAAc,CAACS,OAA/B,EAAwC;UACpC;QACH;MACJ;;MAEDT,cAAc,CAACS,OAAf,GAAyBH,OAAzB;MACA,qBAAAJ,QAAQ,CAACO,OAAT,wEAAkBL,OAAlB,CAA0BE,OAA1B;IACH,CAfgD,CAAjD;EAgBH,CArBe,EAqBb,EArBa,CAAhB;EAuBA,IAAAM,gBAAA,EAAU,MAAM;IACZ,OAAO,MAAM;MACT,IAAIT,iBAAiB,CAACM,OAAtB,EAA+B;QAC3BI,oBAAoB,CAACV,iBAAiB,CAACM,OAAnB,CAApB;MACH;IACJ,CAJD;EAKH,CAND,EAMG,EANH;EAQA,IAAAG,gBAAA,EAAU,MAAM;IACZ,MAAME,aAAa,GAAGjB,UAAU,CAACiB,aAAjC;IACA,MAAMC,EAAE,GAAGD,aAAa,CAACE,WAAd,CAA0BC,QAAQ,IAAI;MAC7C,MAAMX,OAAO,GAAGW,QAAQ,CAACC,KAAzB;MACApB,OAAO,CAACW,OAAR,GAAkBH,OAAlB;MACAF,OAAO,CAACE,OAAD,CAAP;IACH,CAJU,CAAX;IAMA,OAAO,MAAM;MACTQ,aAAa,CAACK,cAAd,CAA6BJ,EAA7B;IACH,CAFD;EAGH,CAXD,EAWG,CAAClB,UAAD,EAAaO,OAAb,CAXH;EAaA,MAAMgB,kBAAkB,GAAG,IAAAf,kBAAA,EAAagB,CAAD,IAAqC;IACxE,IAAId,MAAM,CAACI,QAAP,CAAgBX,cAAc,CAACS,OAA/B,CAAJ,EAA6C;MACzC;MACA;MACA;MACA;MACA;MAEA,MAAMa,WAAW,GAAGtB,cAAc,CAACS,OAAnC;;MAEA,IAAIX,OAAO,CAACW,OAAR,KAAoBa,WAAxB,EAAqC;QACjC;QACAtB,cAAc,CAACS,OAAf,GAAyBR,GAAzB;MACH,CAHD,MAGO;QACHJ,UAAU,CAACiB,aAAX,CAAyBS,QAAzB,CAAkCD,WAAlC;MACH;;MAEDjC,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGiC,WAAH,CAAR;IACH,CAjBD,MAiBO;MACH,MAAME,gBAAgB,GAAGH,CAAC,CAACI,WAAF,CAAcC,QAAvC;;MAEA,IAAIF,gBAAgB,KAAK1B,OAAO,CAACW,OAAjC,EAA0C;QACtCT,cAAc,CAACS,OAAf,GAAyBe,gBAAzB;QACA3B,UAAU,CAACiB,aAAX,CAAyBS,QAAzB,CAAkCC,gBAAlC;QAEAnC,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGmC,gBAAH,CAAR;MACH;IACJ;EACJ,CA5B0B,EA4BxB,CAACnC,QAAD,EAAWQ,UAAX,CA5BwB,CAA3B;EA8BA,IAAA8B,0BAAA,EACI/C,GADJ,EAEI,OAAO;IAAEwB;EAAF,CAAP,CAFJ,EAGI,CAACA,OAAD,CAHJ;EAMA,MAAMwB,SAAS,GAAG,IAAAC,mBAAA,EAAahC,UAAb,CAAlB;EAEA,MAAMiC,YAAY,GAAG,IAAAC,cAAA,EAAQ,OAAO;IAAEH;EAAF,CAAP,CAAR,EAA+B,CAACA,SAAD,CAA/B,CAArB;EAEA,oBACI,6BAAC,wBAAD,CAAiB,QAAjB;IAA0B,KAAK,EAAEE;EAAjC,gBACI,6BAAC,6BAAD;IACI,GAAG,EAAE5B,QADT;IAEI,WAAW,EAAEL,UAAU,CAACD,YAF5B;IAGI,mBAAmB,EAAEZ,mBAHzB;IAII,cAAc,EAAEoC,kBAJpB;IAKI,UAAU,EAAE,CALhB;IAMI,aAAa,EAAE7B,aANnB;IAOI,KAAK,EAAEC;EAPX,GASKwC,eAAA,CAASC,GAAT,CAAapD,QAAb,EAAuB,CAACqD,KAAD,EAAQC,KAAR,kBACpB,6BAAC,gCAAD;IACI,GAAG,EAAEA,KADT;IAEI,QAAQ,EAAED,KAFd;IAGI,KAAK,EAAEC,KAHX;IAII,WAAW,EAAEtC,UAAU,CAACD,YAJ5B;IAKI,OAAO,EAAEX,OALb;IAMI,0BAA0B,EAAEE,0BANhC;IAOI,WAAW,EAAEG;EAPjB,EADH,CATL,CADJ,CADJ;AAyBH,CAvIiB,CAAlB;eAyIeb,S"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["ViewPagerProps.ts"],"sourcesContent":["import type { ReactNode, Ref } from 'react';\nimport type { ComponentProps, SyncAnimatedValue } from '@fountain-ui/core';\nimport type { KeyboardDismissMode, Loading, PageComponent, ViewPagerInstance } from './types';\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 * Mobile only. The number of pages that should be re-rendered to either side of the current page.\n * Changing this value after the component mount has no effect.\n * @default 0\n */\n offscreenPageRerenderLimit?: number;\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 /**\n * Unstable API.\n */\n UNSTABLE_sharedPage?: SyncAnimatedValue;\n}> {}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["ViewPagerProps.ts"],"sourcesContent":["import type { ReactNode, Ref } from 'react';\nimport type { ComponentProps, SyncAnimatedValue } from '@fountain-ui/core';\nimport type { KeyboardDismissMode, Loading, ViewPagerInstance } from './types';\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 * Mobile only. The number of pages that should be re-rendered to either side of the current page.\n * Changing this value after the component mount has no effect.\n * @default 0\n */\n offscreenPageRerenderLimit?: number;\n\n /**\n * Callback fired when an index is changed.\n */\n onChange?: (newIndex: number) => void,\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 /**\n * Unstable API.\n */\n UNSTABLE_sharedPage?: SyncAnimatedValue;\n}> {}\n"],"mappings":""}
@@ -11,9 +11,11 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _core = require("@fountain-ui/core");
13
13
 
14
- var _PageStateContext = _interopRequireDefault(require("./PageStateContext"));
14
+ var _hooks = require("../hooks");
15
15
 
16
- var _InternalContext = _interopRequireDefault(require("./InternalContext"));
16
+ var _PageStateContext = _interopRequireDefault(require("../PageStateContext"));
17
+
18
+ var _InternalContext = _interopRequireDefault(require("../InternalContext"));
17
19
 
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
21
 
@@ -72,7 +74,7 @@ function Page(props) {
72
74
  }); // `Bailing out of a state update` is not working as expected.
73
75
 
74
76
  const pageStateRef = (0, _react.useRef)(initialState);
75
- const [, forceRender] = (0, _react.useReducer)(s => s + 1, 0);
77
+ const forceRender = (0, _hooks.useForceRender)();
76
78
  const {
77
79
  active,
78
80
  loaded
@@ -113,7 +115,7 @@ var _default = /*#__PURE__*/(0, _react.memo)(Page, (prevProps, nextProps) => {
113
115
  return false;
114
116
  }
115
117
 
116
- return prevProps.index !== nextProps.index;
118
+ return prevProps.index === nextProps.index;
117
119
  });
118
120
 
119
121
  exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["styles","StyleSheet","create","fill","width","height","none","display","Page","props","index","initialPage","children","loading","offscreenPageRerenderLimit","pageStore","useContext","InternalContext","computePageDescription","useCallback","page","activeIndex","isActive","shouldRerender","becomeNeighbor","initialState","useState","active","loaded","pageStateRef","useRef","forceRender","useForceRender","current","content","useEffect","subscribe","newPage","currentState","newState","contextValue","useMemo","style","Platform","OS","absoluteFill","memo","prevProps","nextProps","rerenderKey"],"sources":["ChildrenMemoizedPage.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport React, { memo, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ViewProps } from 'react-native';\nimport { Platform, View } from 'react-native';\nimport { StyleSheet } from '@fountain-ui/core';\nimport type { Loading } from '../types';\nimport { useForceRender } from '../hooks';\nimport PageStateContext from '../PageStateContext';\nimport InternalContext from '../InternalContext';\n\nconst styles = StyleSheet.create({\n fill: { width: '100%', height: '100%' },\n none: { display: 'none' },\n});\n\nexport type PageProps = PropsWithChildren<ViewProps> & {\n index: number;\n initialPage: number;\n loading: Loading;\n offscreenPageRerenderLimit: number;\n rerenderKey?: any;\n};\n\ninterface InternalPageDescription {\n isActive: boolean;\n becomeNeighbor: boolean;\n}\n\ninterface InternalPageState {\n active: boolean;\n loaded: boolean;\n}\n\nfunction Page(props: PageProps) {\n const {\n index,\n initialPage,\n children,\n loading,\n offscreenPageRerenderLimit,\n } = props;\n\n const { pageStore } = useContext(InternalContext);\n\n const computePageDescription: (page: number) => InternalPageDescription = useCallback((page: number) => {\n const activeIndex = page;\n\n const isActive = index === activeIndex;\n\n const shouldRerender = index >= activeIndex - offscreenPageRerenderLimit\n && index <= activeIndex + offscreenPageRerenderLimit;\n\n const becomeNeighbor = shouldRerender && !isActive;\n\n return { isActive, becomeNeighbor };\n }, [index]);\n\n const [initialState] = useState<InternalPageState>(() => {\n const { isActive, becomeNeighbor } = computePageDescription(initialPage);\n\n if (loading === 'eager') {\n return { active: isActive, loaded: true };\n }\n\n return { active: isActive, loaded: isActive || becomeNeighbor };\n });\n\n // `Bailing out of a state update` is not working as expected.\n const pageStateRef = useRef<InternalPageState>(initialState);\n const forceRender = useForceRender();\n\n const { active, loaded } = pageStateRef.current;\n\n const content = loaded ? children : null;\n\n useEffect(() => {\n return pageStore.subscribe(newPage => {\n const { isActive, becomeNeighbor } = computePageDescription(newPage);\n\n const currentState = pageStateRef.current;\n\n const newState: InternalPageState = {\n active: isActive,\n loaded: isActive || becomeNeighbor ? true : currentState.loaded,\n };\n\n if (\n currentState.active !== newState.active\n || currentState.loaded !== newState.loaded\n ) {\n pageStateRef.current = newState;\n\n forceRender();\n }\n });\n }, [pageStore, computePageDescription]);\n\n const contextValue = useMemo(() => ({\n isActive: active,\n }), [active]);\n\n const style = Platform.OS === 'web'\n ? (active ? StyleSheet.absoluteFill : styles.none)\n : styles.fill;\n\n return (\n <View\n collapsable={false}\n style={style}\n >\n <PageStateContext.Provider value={contextValue}>\n {content}\n </PageStateContext.Provider>\n </View>\n );\n}\n\nexport default memo(Page, (prevProps, nextProps) => {\n if (prevProps.rerenderKey !== nextProps.rerenderKey) {\n return false;\n }\n\n return prevProps.index === nextProps.index;\n});\n"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = FluxStoreProvider;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _core = require("@fountain-ui/core");
11
+
12
+ var _FluxContext = _interopRequireDefault(require("../FluxContext"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ 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); }
17
+
18
+ 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; }
19
+
20
+ function FluxStoreProvider(props) {
21
+ const {
22
+ children,
23
+ initialState
24
+ } = props;
25
+ const store = (0, _react.useRef)(new _core.SimpleStore(initialState)).current;
26
+ (0, _react.useEffect)(() => {
27
+ return () => {
28
+ store.removeAllListeners();
29
+ };
30
+ }, [store]);
31
+ return /*#__PURE__*/_react.default.createElement(_FluxContext.default.Provider, {
32
+ value: store
33
+ }, children);
34
+ }
35
+
36
+ ;
37
+ //# sourceMappingURL=FluxStoreProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FluxStoreProvider","props","children","initialState","store","useRef","SimpleStore","current","useEffect","removeAllListeners"],"sources":["FluxStoreProvider.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { SimpleStore } from '@fountain-ui/core';\nimport type { FluxStore } from '../FluxContext';\nimport FluxContext from '../FluxContext';\n\nexport interface FluxStoreProviderProps<State> {\n children: React.ReactElement;\n initialState: State;\n}\n\nexport default function FluxStoreProvider<State>(props: FluxStoreProviderProps<State>) {\n const { children, initialState } = props;\n\n const store = useRef<FluxStore<State>>(new SimpleStore(initialState)).current;\n\n useEffect(() => {\n return () => {\n store.removeAllListeners();\n };\n }, [store]);\n\n return (\n <FluxContext.Provider value={store}>\n {children}\n </FluxContext.Provider>\n );\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;;;;;AAOe,SAASA,iBAAT,CAAkCC,KAAlC,EAAwE;EACnF,MAAM;IAAEC,QAAF;IAAYC;EAAZ,IAA6BF,KAAnC;EAEA,MAAMG,KAAK,GAAG,IAAAC,aAAA,EAAyB,IAAIC,iBAAJ,CAAgBH,YAAhB,CAAzB,EAAwDI,OAAtE;EAEA,IAAAC,gBAAA,EAAU,MAAM;IACZ,OAAO,MAAM;MACTJ,KAAK,CAACK,kBAAN;IACH,CAFD;EAGH,CAJD,EAIG,CAACL,KAAD,CAJH;EAMA,oBACI,6BAAC,oBAAD,CAAa,QAAb;IAAsB,KAAK,EAAEA;EAA7B,GACKF,QADL,CADJ;AAKH;;AAAA"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ChildrenMemoizedPage", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _ChildrenMemoizedPage.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "FluxStoreProvider", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _FluxStoreProvider.default;
16
+ }
17
+ });
18
+
19
+ var _ChildrenMemoizedPage = _interopRequireDefault(require("./ChildrenMemoizedPage"));
20
+
21
+ var _FluxStoreProvider = _interopRequireDefault(require("./FluxStoreProvider"));
22
+
23
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { default as ChildrenMemoizedPage } from './ChildrenMemoizedPage';\nexport { default as FluxStoreProvider } from './FluxStoreProvider';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;AACA"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "useDispatch", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _useDispatch.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "useForceRender", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _useForceRender.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useLazyState", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _useLazyState.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "usePageStore", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _usePageStore.default;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "useStore", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _useStore.default;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "useViewPagerPageState", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _useViewPagerPageState.default;
40
+ }
41
+ });
42
+
43
+ var _useDispatch = _interopRequireDefault(require("./useDispatch"));
44
+
45
+ var _useForceRender = _interopRequireDefault(require("./useForceRender"));
46
+
47
+ var _useLazyState = _interopRequireDefault(require("./useLazyState"));
48
+
49
+ var _usePageStore = _interopRequireDefault(require("./usePageStore"));
50
+
51
+ var _useStore = _interopRequireDefault(require("./useStore"));
52
+
53
+ var _useViewPagerPageState = _interopRequireDefault(require("./useViewPagerPageState"));
54
+
55
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { default as useDispatch } from './useDispatch';\nexport { default as useForceRender } from './useForceRender';\nexport { default as useLazyState } from './useLazyState';\nexport { default as usePageStore } from './usePageStore';\nexport { default as useStore } from './useStore';\nexport { default as useViewPagerPageState } from './useViewPagerPageState';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useDispatch;
7
+
8
+ var _react = require("react");
9
+
10
+ var _useStore = _interopRequireDefault(require("./useStore"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function useDispatch() {
15
+ const store = (0, _useStore.default)();
16
+ return (0, _react.useCallback)(newState => {
17
+ store.dispatch(newState);
18
+ }, [store]);
19
+ }
20
+
21
+ ;
22
+ //# sourceMappingURL=useDispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useDispatch","store","useStore","useCallback","newState","dispatch"],"sources":["useDispatch.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport useStore from './useStore';\n\n\nexport default function useDispatch<State>() {\n const store = useStore<State>();\n\n return useCallback((newState: State) => {\n store.dispatch(newState);\n }, [store]);\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;;;AAGe,SAASA,WAAT,GAA8B;EACzC,MAAMC,KAAK,GAAG,IAAAC,iBAAA,GAAd;EAEA,OAAO,IAAAC,kBAAA,EAAaC,QAAD,IAAqB;IACpCH,KAAK,CAACI,QAAN,CAAeD,QAAf;EACH,CAFM,EAEJ,CAACH,KAAD,CAFI,CAAP;AAGH;;AAAA"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useForceRender;
7
+
8
+ var _react = require("react");
9
+
10
+ function useForceRender() {
11
+ const [, forceRender] = (0, _react.useReducer)(s => s + 1, 0);
12
+ return forceRender;
13
+ }
14
+
15
+ ;
16
+ //# sourceMappingURL=useForceRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useForceRender","forceRender","useReducer","s"],"sources":["useForceRender.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nexport default function useForceRender() {\n const [, forceRender] = useReducer((s) => s + 1, 0);\n\n return forceRender;\n};\n"],"mappings":";;;;;;;AAAA;;AAEe,SAASA,cAAT,GAA0B;EACrC,MAAM,GAAGC,WAAH,IAAkB,IAAAC,iBAAA,EAAYC,CAAD,IAAOA,CAAC,GAAG,CAAtB,EAAyB,CAAzB,CAAxB;EAEA,OAAOF,WAAP;AACH;;AAAA"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useLazyState;
7
+
8
+ var _react = require("react");
9
+
10
+ var _utils = require("../utils");
11
+
12
+ var _useForceRender = _interopRequireDefault(require("./useForceRender"));
13
+
14
+ var _useViewPagerPageState = _interopRequireDefault(require("./useViewPagerPageState"));
15
+
16
+ var _useStore = _interopRequireDefault(require("./useStore"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ function useLazyState() {
21
+ let equalityFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _utils.refEqual;
22
+ const store = (0, _useStore.default)();
23
+ const stateRef = (0, _react.useRef)(store.getState());
24
+ const forceRender = (0, _useForceRender.default)();
25
+ const {
26
+ isActive
27
+ } = (0, _useViewPagerPageState.default)();
28
+ (0, _react.useEffect)(() => {
29
+ return store.subscribe(newState => {
30
+ if (equalityFn(stateRef.current, newState)) {
31
+ return;
32
+ }
33
+
34
+ stateRef.current = newState;
35
+
36
+ if (isActive) {
37
+ forceRender();
38
+ }
39
+ });
40
+ }, [store, isActive]);
41
+ return stateRef.current;
42
+ }
43
+
44
+ ;
45
+ //# sourceMappingURL=useLazyState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useLazyState","equalityFn","refEqual","store","useStore","stateRef","useRef","getState","forceRender","useForceRender","isActive","useViewPagerPageState","useEffect","subscribe","newState","current"],"sources":["useLazyState.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport type { EqualityFunction } from '../types';\nimport { refEqual } from '../utils';\nimport useForceRender from './useForceRender';\nimport useViewPagerPageState from './useViewPagerPageState';\nimport useStore from './useStore';\n\nexport default function useLazyState<State>(equalityFn: EqualityFunction<State> = refEqual): State {\n const store = useStore<State>();\n\n const stateRef = useRef<State>(store.getState());\n\n const forceRender = useForceRender();\n\n const { isActive } = useViewPagerPageState();\n\n useEffect(() => {\n return store.subscribe(newState => {\n if (equalityFn(stateRef.current, newState)) {\n return;\n }\n\n stateRef.current = newState;\n\n if (isActive) {\n forceRender();\n }\n });\n }, [store, isActive]);\n\n return stateRef.current;\n};\n"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;;;AAEe,SAASA,YAAT,GAAoF;EAAA,IAAvDC,UAAuD,uEAAjBC,eAAiB;EAC/F,MAAMC,KAAK,GAAG,IAAAC,iBAAA,GAAd;EAEA,MAAMC,QAAQ,GAAG,IAAAC,aAAA,EAAcH,KAAK,CAACI,QAAN,EAAd,CAAjB;EAEA,MAAMC,WAAW,GAAG,IAAAC,uBAAA,GAApB;EAEA,MAAM;IAAEC;EAAF,IAAe,IAAAC,8BAAA,GAArB;EAEA,IAAAC,gBAAA,EAAU,MAAM;IACZ,OAAOT,KAAK,CAACU,SAAN,CAAgBC,QAAQ,IAAI;MAC/B,IAAIb,UAAU,CAACI,QAAQ,CAACU,OAAV,EAAmBD,QAAnB,CAAd,EAA4C;QACxC;MACH;;MAEDT,QAAQ,CAACU,OAAT,GAAmBD,QAAnB;;MAEA,IAAIJ,QAAJ,EAAc;QACVF,WAAW;MACd;IACJ,CAVM,CAAP;EAWH,CAZD,EAYG,CAACL,KAAD,EAAQO,QAAR,CAZH;EAcA,OAAOL,QAAQ,CAACU,OAAhB;AACH;;AAAA"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useStore;
7
+
8
+ var _react = require("react");
9
+
10
+ var _FluxContext = _interopRequireDefault(require("../FluxContext"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function useStore() {
15
+ // @ts-ignore
16
+ const store = (0, _react.useContext)(_FluxContext.default);
17
+
18
+ if (store == null) {
19
+ throw new Error('You should wrap your parent component with `FluxStoreProvider`');
20
+ }
21
+
22
+ return store;
23
+ }
24
+
25
+ ;
26
+ //# sourceMappingURL=useStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useStore","store","useContext","FluxContext","Error"],"sources":["useStore.ts"],"sourcesContent":["import { useContext } from 'react';\nimport type { FluxStore } from '../FluxContext';\nimport FluxContext from '../FluxContext';\n\nexport default function useStore<State>(): FluxStore<State> {\n // @ts-ignore\n const store = useContext<FluxStore<State>>(FluxContext);\n if (store == null) {\n throw new Error(\n 'You should wrap your parent component with `FluxStoreProvider`',\n );\n }\n\n return store;\n};\n"],"mappings":";;;;;;;AAAA;;AAEA;;;;AAEe,SAASA,QAAT,GAA6C;EACxD;EACA,MAAMC,KAAK,GAAG,IAAAC,iBAAA,EAA6BC,oBAA7B,CAAd;;EACA,IAAIF,KAAK,IAAI,IAAb,EAAmB;IACf,MAAM,IAAIG,KAAJ,CACF,gEADE,CAAN;EAGH;;EAED,OAAOH,KAAP;AACH;;AAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useViewPagerPageState;
7
+
8
+ var _react = require("react");
9
+
10
+ var _PageStateContext = _interopRequireDefault(require("../PageStateContext"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function useViewPagerPageState() {
15
+ return (0, _react.useContext)(_PageStateContext.default);
16
+ }
17
+
18
+ ;
19
+ //# sourceMappingURL=useViewPagerPageState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useViewPagerPageState","useContext","PageStateContext"],"sources":["useViewPagerPageState.ts"],"sourcesContent":["import { useContext } from 'react';\nimport PageStateContext from '../PageStateContext';\n\nexport default function useViewPagerPageState() {\n return useContext(PageStateContext);\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEe,SAASA,qBAAT,GAAiC;EAC5C,OAAO,IAAAC,iBAAA,EAAWC,yBAAX,CAAP;AACH;;AAAA"}
@@ -3,22 +3,48 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "FluxStoreProvider", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _components.FluxStoreProvider;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "default", {
7
13
  enumerable: true,
8
14
  get: function () {
9
- return _ViewPagerWeb.default;
15
+ return _ViewPager.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useFluxDispatch", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _hooks.useDispatch;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "useFluxStore", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _hooks.useStore;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "useLazyState", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _hooks.useLazyState;
10
34
  }
11
35
  });
12
36
  Object.defineProperty(exports, "useViewPagerPageState", {
13
37
  enumerable: true,
14
38
  get: function () {
15
- return _PageStateContext.useViewPagerPageState;
39
+ return _hooks.useViewPagerPageState;
16
40
  }
17
41
  });
18
42
 
19
- var _ViewPagerWeb = _interopRequireDefault(require("./ViewPagerWeb"));
43
+ var _ViewPager = _interopRequireDefault(require("./ViewPager"));
44
+
45
+ var _hooks = require("./hooks");
20
46
 
21
- var _PageStateContext = require("./PageStateContext");
47
+ var _components = require("./components");
22
48
 
23
49
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
50
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { default } from './ViewPagerWeb';\nexport type { default as ViewPagerProps } from './ViewPagerProps';\nexport type { ViewPagerInstance } from './types';\nexport { useViewPagerPageState } from './PageStateContext';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;AAGA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { default } from './ViewPager';\nexport type { default as ViewPagerProps } from './ViewPagerProps';\nexport type { ViewPagerInstance } from './types';\nexport { useViewPagerPageState, useDispatch as useFluxDispatch, useLazyState, useStore as useFluxStore } from './hooks';\nexport { FluxStoreProvider } from './components';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAGA;;AACA"}
@@ -1,6 +1,2 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ComponentType, PropsWithChildren } from 'react';\nimport type { ViewProps } from 'react-native';\n\nexport type PageProps = PropsWithChildren<ViewProps> & {\n index: number;\n initialPage: number;\n loading: Loading;\n offscreenPageRerenderLimit: number;\n rerenderKey?: any;\n};\n\nexport type KeyboardDismissMode = 'none' | 'on-drag';\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"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export type KeyboardDismissMode = 'none' | 'on-drag';\n\nexport type Loading = 'lazy' | 'eager';\n\nexport interface EqualityFunction<State> {\n (a: State, b: State): boolean;\n}\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"],"mappings":""}