@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.
- package/build/commonjs/AnimatedY/AnimatedY.js +10 -14
- package/build/commonjs/AnimatedY/AnimatedY.js.map +1 -1
- package/build/commonjs/AnimatedY/AnimatedYProps.js.map +1 -1
- package/build/commonjs/AnimatedY/index.js.map +1 -1
- package/build/commonjs/BottomSheet/BottomSheetNative.js +8 -2
- package/build/commonjs/BottomSheet/BottomSheetNative.js.map +1 -1
- package/build/commonjs/BottomSheet/BottomSheetProps.js.map +1 -1
- package/build/commonjs/BottomSheet/BottomSheetWeb.js +2 -6
- package/build/commonjs/BottomSheet/BottomSheetWeb.js.map +1 -1
- package/build/commonjs/BottomSheet/TransparentBackdrop.js +1 -1
- package/build/commonjs/BottomSheet/TransparentBackdrop.js.map +1 -1
- package/build/commonjs/BottomSheet/index.js.map +1 -1
- package/build/commonjs/BottomSheet/index.native.js.map +1 -1
- package/build/commonjs/Carousel/CarouselNative.js.map +1 -1
- package/build/commonjs/Carousel/CarouselProps.js.map +1 -1
- package/build/commonjs/Carousel/CarouselWeb.js +1 -1
- package/build/commonjs/Carousel/CarouselWeb.js.map +1 -1
- package/build/commonjs/Carousel/index.js.map +1 -1
- package/build/commonjs/Carousel/index.native.js.map +1 -1
- package/build/commonjs/Carousel/utils.js +1 -1
- package/build/commonjs/Carousel/utils.js.map +1 -1
- package/build/commonjs/ComicViewer/ComicViewer.js +168 -0
- package/build/commonjs/ComicViewer/ComicViewer.js.map +1 -0
- package/build/commonjs/ComicViewer/ComicViewerItemProps.js +6 -0
- package/build/commonjs/ComicViewer/ComicViewerItemProps.js.map +1 -0
- package/build/commonjs/ComicViewer/ComicViewerProps.js +2 -0
- package/build/commonjs/ComicViewer/ComicViewerProps.js.map +1 -0
- package/build/commonjs/ComicViewer/ViewerItem.js +88 -0
- package/build/commonjs/ComicViewer/ViewerItem.js.map +1 -0
- package/build/commonjs/ComicViewer/index.js +16 -0
- package/build/commonjs/ComicViewer/index.js.map +1 -0
- package/build/commonjs/DateTimePicker/DateTimePicker.js +7 -1
- package/build/commonjs/DateTimePicker/DateTimePicker.js.map +1 -1
- package/build/commonjs/DateTimePicker/DateTimePickerProps.js.map +1 -1
- package/build/commonjs/DateTimePicker/DateTimePickerProvider.js.map +1 -1
- package/build/commonjs/DateTimePicker/YearPicker.js +22 -17
- package/build/commonjs/DateTimePicker/YearPicker.js.map +1 -1
- package/build/commonjs/DateTimePicker/index.js +4 -4
- package/build/commonjs/DateTimePicker/index.js.map +1 -1
- package/build/commonjs/DateTimePicker/utils.js +2 -1
- package/build/commonjs/DateTimePicker/utils.js.map +1 -1
- package/build/commonjs/FlipCard/FlipCard.js +7 -13
- package/build/commonjs/FlipCard/FlipCard.js.map +1 -1
- package/build/commonjs/FlipCard/FlipCardProps.js.map +1 -1
- package/build/commonjs/FlipCard/index.js.map +1 -1
- package/build/commonjs/StatusBarProvider/Provider.js +1 -1
- package/build/commonjs/StatusBarProvider/Provider.js.map +1 -1
- package/build/commonjs/StatusBarProvider/StatusBarProvider.js.map +1 -1
- package/build/commonjs/StatusBarProvider/StatusBarProviderProps.js.map +1 -1
- package/build/commonjs/StatusBarProvider/index.js.map +1 -1
- package/build/commonjs/ViewPager/ChildrenMemoizedPage.js +90 -22
- package/build/commonjs/ViewPager/ChildrenMemoizedPage.js.map +1 -1
- package/build/commonjs/ViewPager/ViewPagerNative.js +46 -36
- package/build/commonjs/ViewPager/ViewPagerNative.js.map +1 -1
- package/build/commonjs/ViewPager/ViewPagerProps.js.map +1 -1
- package/build/commonjs/ViewPager/ViewPagerWeb.js +32 -25
- package/build/commonjs/ViewPager/ViewPagerWeb.js.map +1 -1
- package/build/commonjs/ViewPager/index.js.map +1 -1
- package/build/commonjs/ViewPager/index.native.js.map +1 -1
- package/build/commonjs/ViewPager/utils.js +3 -39
- package/build/commonjs/ViewPager/utils.js.map +1 -1
- package/build/commonjs/hooks/index.js.map +1 -1
- package/build/commonjs/hooks/useAppbarStyles.js.map +1 -1
- package/build/commonjs/hooks/useElevationStyle.js.map +1 -1
- package/build/commonjs/hooks/useHeight.js +5 -4
- package/build/commonjs/hooks/useHeight.js.map +1 -1
- package/build/commonjs/hooks/useUnstableCollapsibleAppBar.js +56 -57
- package/build/commonjs/hooks/useUnstableCollapsibleAppBar.js.map +1 -1
- package/build/commonjs/hooks/useUnstableToggleDisplayStyle.js +9 -11
- package/build/commonjs/hooks/useUnstableToggleDisplayStyle.js.map +1 -1
- package/build/commonjs/index.js +25 -4
- package/build/commonjs/index.js.map +1 -1
- package/build/module/AnimatedY/AnimatedY.js +11 -10
- package/build/module/AnimatedY/AnimatedY.js.map +1 -1
- package/build/module/AnimatedY/AnimatedYProps.js.map +1 -1
- package/build/module/AnimatedY/index.js.map +1 -1
- package/build/module/BottomSheet/BottomSheetNative.js +8 -2
- package/build/module/BottomSheet/BottomSheetNative.js.map +1 -1
- package/build/module/BottomSheet/BottomSheetProps.js.map +1 -1
- package/build/module/BottomSheet/BottomSheetWeb.js +2 -6
- package/build/module/BottomSheet/BottomSheetWeb.js.map +1 -1
- package/build/module/BottomSheet/TransparentBackdrop.js +1 -1
- package/build/module/BottomSheet/TransparentBackdrop.js.map +1 -1
- package/build/module/BottomSheet/index.js.map +1 -1
- package/build/module/BottomSheet/index.native.js.map +1 -1
- package/build/module/Carousel/CarouselNative.js.map +1 -1
- package/build/module/Carousel/CarouselProps.js.map +1 -1
- package/build/module/Carousel/CarouselWeb.js +1 -1
- package/build/module/Carousel/CarouselWeb.js.map +1 -1
- package/build/module/Carousel/index.js.map +1 -1
- package/build/module/Carousel/index.native.js.map +1 -1
- package/build/module/Carousel/utils.js.map +1 -1
- package/build/module/ComicViewer/ComicViewer.js +151 -0
- package/build/module/ComicViewer/ComicViewer.js.map +1 -0
- package/build/module/ComicViewer/ComicViewerItemProps.js +2 -0
- package/build/module/ComicViewer/ComicViewerItemProps.js.map +1 -0
- package/build/module/ComicViewer/ComicViewerProps.js +2 -0
- package/build/module/ComicViewer/ComicViewerProps.js.map +1 -0
- package/build/module/ComicViewer/ViewerItem.js +72 -0
- package/build/module/ComicViewer/ViewerItem.js.map +1 -0
- package/build/module/ComicViewer/index.js +2 -0
- package/build/module/ComicViewer/index.js.map +1 -0
- package/build/module/DateTimePicker/DateTimePicker.js +7 -1
- package/build/module/DateTimePicker/DateTimePicker.js.map +1 -1
- package/build/module/DateTimePicker/DateTimePickerProps.js.map +1 -1
- package/build/module/DateTimePicker/DateTimePickerProvider.js.map +1 -1
- package/build/module/DateTimePicker/YearPicker.js +22 -17
- package/build/module/DateTimePicker/YearPicker.js.map +1 -1
- package/build/module/DateTimePicker/index.js.map +1 -1
- package/build/module/DateTimePicker/utils.js +2 -1
- package/build/module/DateTimePicker/utils.js.map +1 -1
- package/build/module/FlipCard/FlipCard.js +7 -7
- package/build/module/FlipCard/FlipCard.js.map +1 -1
- package/build/module/FlipCard/FlipCardProps.js.map +1 -1
- package/build/module/FlipCard/index.js.map +1 -1
- package/build/module/StatusBarProvider/Provider.js.map +1 -1
- package/build/module/StatusBarProvider/StatusBarProvider.js.map +1 -1
- package/build/module/StatusBarProvider/StatusBarProviderProps.js.map +1 -1
- package/build/module/StatusBarProvider/index.js.map +1 -1
- package/build/module/ViewPager/ChildrenMemoizedPage.js +85 -23
- package/build/module/ViewPager/ChildrenMemoizedPage.js.map +1 -1
- package/build/module/ViewPager/ViewPagerNative.js +43 -32
- package/build/module/ViewPager/ViewPagerNative.js.map +1 -1
- package/build/module/ViewPager/ViewPagerProps.js.map +1 -1
- package/build/module/ViewPager/ViewPagerWeb.js +26 -23
- package/build/module/ViewPager/ViewPagerWeb.js.map +1 -1
- package/build/module/ViewPager/index.js.map +1 -1
- package/build/module/ViewPager/index.native.js.map +1 -1
- package/build/module/ViewPager/utils.js +1 -31
- package/build/module/ViewPager/utils.js.map +1 -1
- package/build/module/hooks/index.js.map +1 -1
- package/build/module/hooks/useAppbarStyles.js.map +1 -1
- package/build/module/hooks/useElevationStyle.js.map +1 -1
- package/build/module/hooks/useHeight.js +4 -3
- package/build/module/hooks/useHeight.js.map +1 -1
- package/build/module/hooks/useUnstableCollapsibleAppBar.js +58 -43
- package/build/module/hooks/useUnstableCollapsibleAppBar.js.map +1 -1
- package/build/module/hooks/useUnstableToggleDisplayStyle.js +9 -7
- package/build/module/hooks/useUnstableToggleDisplayStyle.js.map +1 -1
- package/build/module/index.js +2 -0
- package/build/module/index.js.map +1 -1
- package/build/typescript/AnimatedY/AnimatedY.d.ts +0 -1
- package/build/typescript/BottomSheet/BottomSheetNative.d.ts +0 -1
- package/build/typescript/BottomSheet/BottomSheetWeb.d.ts +0 -1
- package/build/typescript/BottomSheet/TransparentBackdrop.d.ts +0 -1
- package/build/typescript/Carousel/CarouselNative.d.ts +0 -1
- package/build/typescript/ComicViewer/ComicViewer.d.ts +2 -0
- package/build/typescript/ComicViewer/ComicViewerItemProps.d.ts +12 -0
- package/build/typescript/ComicViewer/ComicViewerProps.d.ts +76 -0
- package/build/typescript/ComicViewer/ViewerItem.d.ts +7 -0
- package/build/typescript/ComicViewer/index.d.ts +3 -0
- package/build/typescript/DateTimePicker/DateTimePicker.d.ts +0 -1
- package/build/typescript/DateTimePicker/YearPicker.d.ts +0 -1
- package/build/typescript/FlipCard/FlipCard.d.ts +0 -1
- package/build/typescript/StatusBarProvider/StatusBarProvider.d.ts +0 -1
- package/build/typescript/ViewPager/ChildrenMemoizedPage.d.ts +2 -1
- package/build/typescript/ViewPager/ViewPagerNative.d.ts +4 -2
- package/build/typescript/ViewPager/ViewPagerProps.d.ts +20 -19
- package/build/typescript/ViewPager/ViewPagerWeb.d.ts +4 -2
- package/build/typescript/ViewPager/index.d.ts +1 -1
- package/build/typescript/ViewPager/utils.d.ts +2 -19
- package/build/typescript/hooks/useUnstableCollapsibleAppBar.d.ts +2 -3
- package/build/typescript/hooks/useUnstableToggleDisplayStyle.d.ts +2 -2
- package/build/typescript/index.d.ts +2 -0
- package/package.json +13 -13
- package/src/AnimatedY/AnimatedY.tsx +13 -10
- package/src/BottomSheet/BottomSheetNative.tsx +6 -0
- package/src/ComicViewer/ComicViewer.tsx +162 -0
- package/src/ComicViewer/ComicViewerItemProps.ts +15 -0
- package/src/ComicViewer/ComicViewerProps.ts +90 -0
- package/src/ComicViewer/ViewerItem.tsx +76 -0
- package/src/ComicViewer/index.ts +3 -0
- package/src/DateTimePicker/DateTimePicker.tsx +6 -0
- package/src/DateTimePicker/YearPicker.tsx +2 -1
- package/src/FlipCard/FlipCard.tsx +8 -8
- package/src/ViewPager/ChildrenMemoizedPage.tsx +91 -22
- package/src/ViewPager/ViewPagerNative.tsx +47 -35
- package/src/ViewPager/ViewPagerProps.ts +20 -19
- package/src/ViewPager/ViewPagerWeb.tsx +34 -29
- package/src/ViewPager/index.ts +1 -1
- package/src/ViewPager/utils.tsx +2 -55
- package/src/hooks/useHeight.ts +2 -2
- package/src/hooks/useUnstableCollapsibleAppBar.ts +59 -42
- package/src/hooks/useUnstableToggleDisplayStyle.ts +8 -6
- package/src/index.ts +3 -0
- package/build/commonjs/hooks/useWidth.js +0 -29
- package/build/commonjs/hooks/useWidth.js.map +0 -1
- package/build/module/hooks/useWidth.js +0 -15
- package/build/module/hooks/useWidth.js.map +0 -1
- package/build/typescript/hooks/useWidth.d.ts +0 -2
- 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 =
|
|
6
|
+
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var _react =
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
|
|
10
|
-
var
|
|
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
|
|
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
|
-
|
|
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
|
|
32
|
-
|
|
33
|
-
|
|
37
|
+
const setPage = newIndex => {
|
|
38
|
+
requestAnimationFrame(() => {
|
|
39
|
+
var _pagerRef$current;
|
|
34
40
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
45
|
-
|
|
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 (
|
|
48
|
-
|
|
52
|
+
if (currentIndex === nextIndex) {
|
|
53
|
+
return;
|
|
49
54
|
}
|
|
50
|
-
}, [onChange]);
|
|
51
55
|
|
|
52
|
-
|
|
53
|
-
if (index !== indexRef.current) {
|
|
54
|
-
var _pagerRef$current;
|
|
56
|
+
sharedIndex.value = nextIndex;
|
|
55
57
|
|
|
56
|
-
|
|
58
|
+
if (onChange) {
|
|
59
|
+
onChange(nextIndex);
|
|
57
60
|
}
|
|
58
|
-
}, [
|
|
59
|
-
|
|
60
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
61
|
-
|
|
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
|
-
},
|
|
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,"
|
|
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,"
|
|
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 =
|
|
6
|
+
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var _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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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.
|
|
49
|
-
|
|
50
|
-
|
|
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,"
|
|
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,"
|
|
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"],"
|
|
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.
|
|
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
|
|
15
|
-
exports.
|
|
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,"
|
|
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,"
|
|
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,"
|
|
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,"
|
|
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 =
|
|
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(
|
|
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.
|
|
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,"
|
|
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 =
|
|
8
|
+
var _react = require("react");
|
|
9
9
|
|
|
10
10
|
var _reactNative = require("react-native");
|
|
11
11
|
|
|
12
|
-
var _reactNativeReanimated =
|
|
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(
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
|
|
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
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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.
|
|
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 =
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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,
|
|
186
|
+
const appBarStyle = [animatedStyle, {
|
|
188
187
|
paddingTop: safeAreaInsets.top
|
|
189
|
-
}
|
|
188
|
+
}, hasCollapsible ? styles.floating : undefined];
|
|
190
189
|
return {
|
|
191
190
|
appBarStyle,
|
|
192
191
|
vectorY,
|