@r0b0t3d/react-native-collapsible 1.3.3 → 1.3.5-alpha.0

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 (89) hide show
  1. package/lib/commonjs/components/CollapsibleContainer.js +1 -3
  2. package/lib/commonjs/components/CollapsibleContainer.js.map +1 -1
  3. package/lib/commonjs/components/CollapsibleView.js +15 -5
  4. package/lib/commonjs/components/CollapsibleView.js.map +1 -1
  5. package/lib/commonjs/components/header/CollapsibleHeaderConsumer.js +1 -1
  6. package/lib/commonjs/components/header/CollapsibleHeaderConsumer.js.map +1 -1
  7. package/lib/commonjs/components/header/CollapsibleHeaderContainer.js +5 -13
  8. package/lib/commonjs/components/header/CollapsibleHeaderContainer.js.map +1 -1
  9. package/lib/commonjs/components/header/StickyView.js +2 -1
  10. package/lib/commonjs/components/header/StickyView.js.map +1 -1
  11. package/lib/commonjs/components/scrollable/CollapsibleFlatList.js +36 -28
  12. package/lib/commonjs/components/scrollable/CollapsibleFlatList.js.map +1 -1
  13. package/lib/commonjs/components/scrollable/CollapsibleScrollView.js +7 -14
  14. package/lib/commonjs/components/scrollable/CollapsibleScrollView.js.map +1 -1
  15. package/lib/commonjs/components/scrollable/useAnimatedScroll.js.map +1 -1
  16. package/lib/commonjs/index.js +0 -9
  17. package/lib/commonjs/index.js.map +1 -1
  18. package/lib/commonjs/withCollapsibleContext.js +1 -3
  19. package/lib/commonjs/withCollapsibleContext.js.map +1 -1
  20. package/lib/module/components/CollapsibleContainer.js +1 -2
  21. package/lib/module/components/CollapsibleContainer.js.map +1 -1
  22. package/lib/module/components/CollapsibleView.js +16 -6
  23. package/lib/module/components/CollapsibleView.js.map +1 -1
  24. package/lib/module/components/header/CollapsibleHeaderConsumer.js +1 -1
  25. package/lib/module/components/header/CollapsibleHeaderConsumer.js.map +1 -1
  26. package/lib/module/components/header/CollapsibleHeaderContainer.js +6 -13
  27. package/lib/module/components/header/CollapsibleHeaderContainer.js.map +1 -1
  28. package/lib/module/components/header/StickyView.js +3 -2
  29. package/lib/module/components/header/StickyView.js.map +1 -1
  30. package/lib/module/components/scrollable/CollapsibleFlatList.js +36 -26
  31. package/lib/module/components/scrollable/CollapsibleFlatList.js.map +1 -1
  32. package/lib/module/components/scrollable/CollapsibleScrollView.js +6 -12
  33. package/lib/module/components/scrollable/CollapsibleScrollView.js.map +1 -1
  34. package/lib/module/components/scrollable/useAnimatedScroll.js.map +1 -1
  35. package/lib/module/index.js +0 -1
  36. package/lib/module/index.js.map +1 -1
  37. package/lib/module/withCollapsibleContext.js +1 -2
  38. package/lib/module/withCollapsibleContext.js.map +1 -1
  39. package/lib/typescript/components/CollapsibleView.d.ts +2 -1
  40. package/lib/typescript/components/header/CollapsibleHeaderContainer.d.ts +2 -2
  41. package/lib/typescript/components/scrollable/useAnimatedScroll.d.ts +1 -1
  42. package/lib/typescript/index.d.ts +0 -1
  43. package/package.json +1 -1
  44. package/src/components/CollapsibleContainer.tsx +0 -2
  45. package/src/components/CollapsibleView.tsx +19 -3
  46. package/src/components/header/CollapsibleHeaderConsumer.tsx +2 -2
  47. package/src/components/header/CollapsibleHeaderContainer.tsx +8 -15
  48. package/src/components/header/StickyView.tsx +2 -1
  49. package/src/components/scrollable/CollapsibleFlatList.tsx +59 -40
  50. package/src/components/scrollable/CollapsibleScrollView.tsx +4 -8
  51. package/src/components/scrollable/useAnimatedScroll.ts +1 -1
  52. package/src/index.tsx +0 -1
  53. package/src/withCollapsibleContext.tsx +2 -5
  54. package/lib/commonjs/components/header/AnimatedTopView.js +0 -29
  55. package/lib/commonjs/components/header/AnimatedTopView.js.map +0 -1
  56. package/lib/commonjs/components/pullToRefresh/PullToRefreshContainer.js +0 -75
  57. package/lib/commonjs/components/pullToRefresh/PullToRefreshContainer.js.map +0 -1
  58. package/lib/commonjs/components/pullToRefresh/PullToRefreshProvider.js +0 -35
  59. package/lib/commonjs/components/pullToRefresh/PullToRefreshProvider.js.map +0 -1
  60. package/lib/commonjs/components/pullToRefresh/RefreshControl.js +0 -91
  61. package/lib/commonjs/components/pullToRefresh/RefreshControl.js.map +0 -1
  62. package/lib/commonjs/components/pullToRefresh/usePullToRefreshContext.js +0 -24
  63. package/lib/commonjs/components/pullToRefresh/usePullToRefreshContext.js.map +0 -1
  64. package/lib/commonjs/components/pullToRefresh/utils.js +0 -59
  65. package/lib/commonjs/components/pullToRefresh/utils.js.map +0 -1
  66. package/lib/module/components/header/AnimatedTopView.js +0 -14
  67. package/lib/module/components/header/AnimatedTopView.js.map +0 -1
  68. package/lib/module/components/pullToRefresh/PullToRefreshContainer.js +0 -56
  69. package/lib/module/components/pullToRefresh/PullToRefreshContainer.js.map +0 -1
  70. package/lib/module/components/pullToRefresh/PullToRefreshProvider.js +0 -21
  71. package/lib/module/components/pullToRefresh/PullToRefreshProvider.js.map +0 -1
  72. package/lib/module/components/pullToRefresh/RefreshControl.js +0 -73
  73. package/lib/module/components/pullToRefresh/RefreshControl.js.map +0 -1
  74. package/lib/module/components/pullToRefresh/usePullToRefreshContext.js +0 -13
  75. package/lib/module/components/pullToRefresh/usePullToRefreshContext.js.map +0 -1
  76. package/lib/module/components/pullToRefresh/utils.js +0 -42
  77. package/lib/module/components/pullToRefresh/utils.js.map +0 -1
  78. package/lib/typescript/components/header/AnimatedTopView.d.ts +0 -6
  79. package/lib/typescript/components/pullToRefresh/PullToRefreshContainer.d.ts +0 -8
  80. package/lib/typescript/components/pullToRefresh/PullToRefreshProvider.d.ts +0 -6
  81. package/lib/typescript/components/pullToRefresh/RefreshControl.d.ts +0 -9
  82. package/lib/typescript/components/pullToRefresh/usePullToRefreshContext.d.ts +0 -4
  83. package/lib/typescript/components/pullToRefresh/utils.d.ts +0 -20
  84. package/src/components/header/AnimatedTopView.tsx +0 -18
  85. package/src/components/pullToRefresh/PullToRefreshContainer.tsx +0 -66
  86. package/src/components/pullToRefresh/PullToRefreshProvider.tsx +0 -27
  87. package/src/components/pullToRefresh/RefreshControl.tsx +0 -100
  88. package/src/components/pullToRefresh/usePullToRefreshContext.ts +0 -13
  89. package/src/components/pullToRefresh/utils.ts +0 -49
@@ -1,75 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = PullToRefreshContainer;
7
-
8
- var _reactNativeGestureHandler = require("react-native-gesture-handler");
9
-
10
- var _react = _interopRequireWildcard(require("react"));
11
-
12
- var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
13
-
14
- var _usePullToRefreshContext = _interopRequireDefault(require("./usePullToRefreshContext"));
15
-
16
- var _reactNative = require("react-native");
17
-
18
- var _utils = require("./utils");
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
-
24
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
-
26
- function PullToRefreshContainer({
27
- children,
28
- scrollY
29
- }) {
30
- const scrollRef = (0, _react.useRef)();
31
- const panRef = (0, _react.useRef)();
32
- const {
33
- refreshValue,
34
- internalRefreshing,
35
- internalHeight
36
- } = (0, _usePullToRefreshContext.default)();
37
- const gestureHandler = (0, _reactNativeReanimated.useAnimatedGestureHandler)({
38
- onStart: (_, ctx) => {
39
- ctx.startY = (internalRefreshing.value ? refreshValue.value : 0) - scrollY.value;
40
- },
41
- onActive: (event, ctx) => {
42
- if (scrollY.value <= 1) {
43
- const tranY = event.translationY + ctx.startY;
44
- const clampedValue = (0, _utils.rubberClamp)(tranY, 0, internalHeight.value);
45
- refreshValue.value = clampedValue;
46
-
47
- if (clampedValue > internalHeight.value) {
48
- internalRefreshing.value = true;
49
- }
50
- } else if (!internalRefreshing.value) {
51
- refreshValue.value = 0;
52
- }
53
- },
54
- onEnd: () => {
55
- if (refreshValue.value > 0) {
56
- const value = internalRefreshing.value ? internalHeight.value : 0;
57
- refreshValue.value = (0, _reactNativeReanimated.withTiming)(value);
58
- }
59
- }
60
- });
61
- return /*#__PURE__*/_react.default.createElement(_reactNativeGestureHandler.PanGestureHandler, {
62
- ref: panRef,
63
- simultaneousHandlers: scrollRef,
64
- onGestureEvent: gestureHandler,
65
- shouldCancelWhenOutside: false,
66
- enableTrackpadTwoFingerGesture: true,
67
- maxPointers: 1
68
- }, /*#__PURE__*/_react.default.createElement(_reactNativeReanimated.default.View, {
69
- style: _reactNative.StyleSheet.absoluteFill
70
- }, /*#__PURE__*/_react.default.createElement(_reactNativeGestureHandler.NativeViewGestureHandler, {
71
- ref: scrollRef,
72
- simultaneousHandlers: panRef
73
- }, children)));
74
- }
75
- //# sourceMappingURL=PullToRefreshContainer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["PullToRefreshContainer.tsx"],"names":["PullToRefreshContainer","children","scrollY","scrollRef","panRef","refreshValue","internalRefreshing","internalHeight","gestureHandler","onStart","_","ctx","startY","value","onActive","event","tranY","translationY","clampedValue","onEnd","StyleSheet","absoluteFill"],"mappings":";;;;;;;AAAA;;AAIA;;AACA;;AAIA;;AACA;;AACA;;;;;;;;AAOe,SAASA,sBAAT,CAAgC;AAAEC,EAAAA,QAAF;AAAYC,EAAAA;AAAZ,CAAhC,EAA8D;AAC3E,QAAMC,SAAS,GAAG,oBAAlB;AACA,QAAMC,MAAM,GAAG,oBAAf;AACA,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA,kBAAhB;AAAoCC,IAAAA;AAApC,MACJ,uCADF;AAGA,QAAMC,cAAc,GAAG,sDAA0B;AAC/CC,IAAAA,OAAO,EAAE,CAACC,CAAD,EAAIC,GAAJ,KAAiB;AACxBA,MAAAA,GAAG,CAACC,MAAJ,GACE,CAACN,kBAAkB,CAACO,KAAnB,GAA2BR,YAAY,CAACQ,KAAxC,GAAgD,CAAjD,IAAsDX,OAAO,CAACW,KADhE;AAED,KAJ8C;AAK/CC,IAAAA,QAAQ,EAAE,CAACC,KAAD,EAAQJ,GAAR,KAAqB;AAC7B,UAAIT,OAAO,CAACW,KAAR,IAAiB,CAArB,EAAwB;AACtB,cAAMG,KAAK,GAAGD,KAAK,CAACE,YAAN,GAAqBN,GAAG,CAACC,MAAvC;AACA,cAAMM,YAAY,GAAG,wBAAYF,KAAZ,EAAmB,CAAnB,EAAsBT,cAAc,CAACM,KAArC,CAArB;AACAR,QAAAA,YAAY,CAACQ,KAAb,GAAqBK,YAArB;;AACA,YAAIA,YAAY,GAAGX,cAAc,CAACM,KAAlC,EAAyC;AACvCP,UAAAA,kBAAkB,CAACO,KAAnB,GAA2B,IAA3B;AACD;AACF,OAPD,MAOO,IAAI,CAACP,kBAAkB,CAACO,KAAxB,EAA+B;AACpCR,QAAAA,YAAY,CAACQ,KAAb,GAAqB,CAArB;AACD;AACF,KAhB8C;AAiB/CM,IAAAA,KAAK,EAAE,MAAM;AACX,UAAId,YAAY,CAACQ,KAAb,GAAqB,CAAzB,EAA4B;AAC1B,cAAMA,KAAK,GAAGP,kBAAkB,CAACO,KAAnB,GAA2BN,cAAc,CAACM,KAA1C,GAAkD,CAAhE;AACAR,QAAAA,YAAY,CAACQ,KAAb,GAAqB,uCAAWA,KAAX,CAArB;AACD;AACF;AAtB8C,GAA1B,CAAvB;AAyBA,sBACE,6BAAC,4CAAD;AACE,IAAA,GAAG,EAAET,MADP;AAEE,IAAA,oBAAoB,EAAED,SAFxB;AAGE,IAAA,cAAc,EAAEK,cAHlB;AAIE,IAAA,uBAAuB,EAAE,KAJ3B;AAKE,IAAA,8BAA8B,MALhC;AAME,IAAA,WAAW,EAAE;AANf,kBAQE,6BAAC,8BAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAEY,wBAAWC;AAAjC,kBACE,6BAAC,mDAAD;AAA0B,IAAA,GAAG,EAAElB,SAA/B;AAA0C,IAAA,oBAAoB,EAAEC;AAAhE,KACGH,QADH,CADF,CARF,CADF;AAgBD","sourcesContent":["import {\n NativeViewGestureHandler,\n PanGestureHandler,\n} from 'react-native-gesture-handler';\nimport React, { useRef } from 'react';\nimport Animated, {\n useAnimatedGestureHandler,\n withTiming,\n} from 'react-native-reanimated';\nimport usePullToRefreshContext from './usePullToRefreshContext';\nimport { StyleSheet } from 'react-native';\nimport { rubberClamp } from './utils';\n\ntype Props = {\n children: React.ReactNode;\n scrollY: Animated.SharedValue<number>;\n};\n\nexport default function PullToRefreshContainer({ children, scrollY }: Props) {\n const scrollRef = useRef();\n const panRef = useRef();\n const { refreshValue, internalRefreshing, internalHeight } =\n usePullToRefreshContext();\n\n const gestureHandler = useAnimatedGestureHandler({\n onStart: (_, ctx: any) => {\n ctx.startY =\n (internalRefreshing.value ? refreshValue.value : 0) - scrollY.value;\n },\n onActive: (event, ctx: any) => {\n if (scrollY.value <= 1) {\n const tranY = event.translationY + ctx.startY;\n const clampedValue = rubberClamp(tranY, 0, internalHeight.value);\n refreshValue.value = clampedValue;\n if (clampedValue > internalHeight.value) {\n internalRefreshing.value = true;\n }\n } else if (!internalRefreshing.value) {\n refreshValue.value = 0;\n }\n },\n onEnd: () => {\n if (refreshValue.value > 0) {\n const value = internalRefreshing.value ? internalHeight.value : 0;\n refreshValue.value = withTiming(value);\n }\n },\n });\n\n return (\n <PanGestureHandler\n ref={panRef}\n simultaneousHandlers={scrollRef}\n onGestureEvent={gestureHandler}\n shouldCancelWhenOutside={false}\n enableTrackpadTwoFingerGesture\n maxPointers={1}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <NativeViewGestureHandler ref={scrollRef} simultaneousHandlers={panRef}>\n {children}\n </NativeViewGestureHandler>\n </Animated.View>\n </PanGestureHandler>\n );\n}\n"]}
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = PullToRefreshProvider;
7
-
8
- var _react = _interopRequireWildcard(require("react"));
9
-
10
- var _reactNativeReanimated = require("react-native-reanimated");
11
-
12
- var _usePullToRefreshContext = require("./usePullToRefreshContext");
13
-
14
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
-
16
- 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; }
17
-
18
- function PullToRefreshProvider({
19
- children
20
- }) {
21
- const refreshValue = (0, _reactNativeReanimated.useSharedValue)(0);
22
- const internalRefreshing = (0, _reactNativeReanimated.useSharedValue)(false);
23
- const internalHeight = (0, _reactNativeReanimated.useSharedValue)(0);
24
- const context = (0, _react.useMemo)(() => {
25
- return {
26
- refreshValue: refreshValue,
27
- internalRefreshing,
28
- internalHeight
29
- };
30
- }, [refreshValue, internalRefreshing, internalHeight]);
31
- return /*#__PURE__*/_react.default.createElement(_usePullToRefreshContext.PullToRefreshContext.Provider, {
32
- value: context
33
- }, children);
34
- }
35
- //# sourceMappingURL=PullToRefreshProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["PullToRefreshProvider.tsx"],"names":["PullToRefreshProvider","children","refreshValue","internalRefreshing","internalHeight","context"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAMe,SAASA,qBAAT,CAA+B;AAAEC,EAAAA;AAAF,CAA/B,EAAoD;AACjE,QAAMC,YAAY,GAAG,2CAAe,CAAf,CAArB;AACA,QAAMC,kBAAkB,GAAG,2CAAe,KAAf,CAA3B;AACA,QAAMC,cAAc,GAAG,2CAAe,CAAf,CAAvB;AAEA,QAAMC,OAAO,GAAG,oBAAQ,MAAM;AAC5B,WAAO;AACLH,MAAAA,YAAY,EAAEA,YADT;AAELC,MAAAA,kBAFK;AAGLC,MAAAA;AAHK,KAAP;AAKD,GANe,EAMb,CAACF,YAAD,EAAeC,kBAAf,EAAmCC,cAAnC,CANa,CAAhB;AAQA,sBACE,6BAAC,6CAAD,CAAsB,QAAtB;AAA+B,IAAA,KAAK,EAAEC;AAAtC,KACGJ,QADH,CADF;AAKD","sourcesContent":["import React, { useMemo } from 'react';\nimport { useSharedValue } from 'react-native-reanimated';\nimport { PullToRefreshContext } from './usePullToRefreshContext';\n\ntype Props = {\n children: React.ReactNode;\n};\n\nexport default function PullToRefreshProvider({ children }: Props) {\n const refreshValue = useSharedValue(0);\n const internalRefreshing = useSharedValue(false);\n const internalHeight = useSharedValue(0);\n\n const context = useMemo(() => {\n return {\n refreshValue: refreshValue,\n internalRefreshing,\n internalHeight,\n };\n }, [refreshValue, internalRefreshing, internalHeight]);\n\n return (\n <PullToRefreshContext.Provider value={context}>\n {children}\n </PullToRefreshContext.Provider>\n );\n}\n"]}
@@ -1,91 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = RefreshControl;
7
-
8
- var _react = _interopRequireWildcard(require("react"));
9
-
10
- var _reactNative = require("react-native");
11
-
12
- var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
13
-
14
- var _usePullToRefreshContext = _interopRequireDefault(require("./usePullToRefreshContext"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
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
- /* eslint-disable react-hooks/exhaustive-deps */
23
- function RefreshControl({
24
- height = 100,
25
- refreshing,
26
- onRefresh,
27
- renderAnimation
28
- }) {
29
- const {
30
- refreshValue,
31
- internalRefreshing,
32
- internalHeight
33
- } = (0, _usePullToRefreshContext.default)();
34
- const manualTriggered = (0, _react.useRef)(false);
35
- (0, _react.useEffect)(() => {
36
- internalHeight.value = height;
37
- }, [height]);
38
- (0, _react.useEffect)(() => {
39
- if (!internalRefreshing.value && refreshing) {
40
- manualTriggered.current = true;
41
- }
42
-
43
- internalRefreshing.value = refreshing;
44
- }, [refreshing]);
45
- (0, _reactNativeReanimated.useAnimatedReaction)(() => {
46
- return internalRefreshing.value;
47
- }, (result, prev) => {
48
- if (result !== prev) {
49
- if (result && refreshValue.value === 0) {
50
- refreshValue.value = height;
51
- }
52
- }
53
- });
54
- const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
55
- return {
56
- height: refreshValue.value
57
- };
58
- }, []);
59
- const handleRefresh = (0, _react.useCallback)(() => {
60
- if (manualTriggered.current) {
61
- manualTriggered.current = false;
62
- return;
63
- }
64
-
65
- onRefresh();
66
- }, [onRefresh]);
67
- (0, _reactNativeReanimated.useAnimatedReaction)(() => internalRefreshing.value, (result, prev) => {
68
- if (result !== prev) {
69
- if (result) {
70
- (0, _reactNativeReanimated.runOnJS)(handleRefresh)();
71
- } else {
72
- refreshValue.value = (0, _reactNativeReanimated.withTiming)(0);
73
- }
74
- }
75
- });
76
- const animatedProps = (0, _reactNativeReanimated.useAnimatedProps)(() => {
77
- return {
78
- progress: internalRefreshing.value ? undefined : Math.min(refreshValue.value / height, 1)
79
- };
80
- }, [height]);
81
- return /*#__PURE__*/_react.default.createElement(_reactNativeReanimated.default.View, {
82
- style: [styles.container, animatedStyle]
83
- }, renderAnimation(animatedProps));
84
- }
85
-
86
- const styles = _reactNative.StyleSheet.create({
87
- container: {
88
- overflow: 'hidden'
89
- }
90
- });
91
- //# sourceMappingURL=RefreshControl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["RefreshControl.tsx"],"names":["RefreshControl","height","refreshing","onRefresh","renderAnimation","refreshValue","internalRefreshing","internalHeight","manualTriggered","value","current","result","prev","animatedStyle","handleRefresh","animatedProps","progress","undefined","Math","min","styles","container","StyleSheet","create","overflow"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AAOA;;;;;;;;AAVA;AAmBe,SAASA,cAAT,CAAwB;AACrCC,EAAAA,MAAM,GAAG,GAD4B;AAErCC,EAAAA,UAFqC;AAGrCC,EAAAA,SAHqC;AAIrCC,EAAAA;AAJqC,CAAxB,EAKL;AACR,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA,kBAAhB;AAAoCC,IAAAA;AAApC,MACJ,uCADF;AAEA,QAAMC,eAAe,GAAG,mBAAO,KAAP,CAAxB;AAEA,wBAAU,MAAM;AACdD,IAAAA,cAAc,CAACE,KAAf,GAAuBR,MAAvB;AACD,GAFD,EAEG,CAACA,MAAD,CAFH;AAIA,wBAAU,MAAM;AACd,QAAI,CAACK,kBAAkB,CAACG,KAApB,IAA6BP,UAAjC,EAA6C;AAC3CM,MAAAA,eAAe,CAACE,OAAhB,GAA0B,IAA1B;AACD;;AACDJ,IAAAA,kBAAkB,CAACG,KAAnB,GAA2BP,UAA3B;AACD,GALD,EAKG,CAACA,UAAD,CALH;AAOA,kDACE,MAAM;AACJ,WAAOI,kBAAkB,CAACG,KAA1B;AACD,GAHH,EAIE,CAACE,MAAD,EAASC,IAAT,KAAkB;AAChB,QAAID,MAAM,KAAKC,IAAf,EAAqB;AACnB,UAAID,MAAM,IAAIN,YAAY,CAACI,KAAb,KAAuB,CAArC,EAAwC;AACtCJ,QAAAA,YAAY,CAACI,KAAb,GAAqBR,MAArB;AACD;AACF;AACF,GAVH;AAaA,QAAMY,aAAa,GAAG,6CAAiB,MAAM;AAC3C,WAAO;AACLZ,MAAAA,MAAM,EAAEI,YAAY,CAACI;AADhB,KAAP;AAGD,GAJqB,EAInB,EAJmB,CAAtB;AAMA,QAAMK,aAAa,GAAG,wBAAY,MAAM;AACtC,QAAIN,eAAe,CAACE,OAApB,EAA6B;AAC3BF,MAAAA,eAAe,CAACE,OAAhB,GAA0B,KAA1B;AACA;AACD;;AACDP,IAAAA,SAAS;AACV,GANqB,EAMnB,CAACA,SAAD,CANmB,CAAtB;AAQA,kDACE,MAAMG,kBAAkB,CAACG,KAD3B,EAEE,CAACE,MAAD,EAASC,IAAT,KAAkB;AAChB,QAAID,MAAM,KAAKC,IAAf,EAAqB;AACnB,UAAID,MAAJ,EAAY;AACV,4CAAQG,aAAR;AACD,OAFD,MAEO;AACLT,QAAAA,YAAY,CAACI,KAAb,GAAqB,uCAAW,CAAX,CAArB;AACD;AACF;AACF,GAVH;AAaA,QAAMM,aAAa,GAAG,6CAAiB,MAAM;AAC3C,WAAO;AACLC,MAAAA,QAAQ,EAAEV,kBAAkB,CAACG,KAAnB,GACNQ,SADM,GAENC,IAAI,CAACC,GAAL,CAASd,YAAY,CAACI,KAAb,GAAqBR,MAA9B,EAAsC,CAAtC;AAHC,KAAP;AAKD,GANqB,EAMnB,CAACA,MAAD,CANmB,CAAtB;AAQA,sBACE,6BAAC,8BAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAE,CAACmB,MAAM,CAACC,SAAR,EAAmBR,aAAnB;AAAtB,KACGT,eAAe,CAACW,aAAD,CADlB,CADF;AAKD;;AAED,MAAMK,MAAM,GAAGE,wBAAWC,MAAX,CAAkB;AAC/BF,EAAAA,SAAS,EAAE;AACTG,IAAAA,QAAQ,EAAE;AADD;AADoB,CAAlB,CAAf","sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport { StyleSheet } from 'react-native';\nimport Animated, {\n runOnJS,\n useAnimatedProps,\n useAnimatedReaction,\n useAnimatedStyle,\n withTiming,\n} from 'react-native-reanimated';\nimport usePullToRefreshContext from './usePullToRefreshContext';\n\ntype Props = {\n height?: number;\n refreshing: boolean;\n onRefresh: () => void;\n renderAnimation: (animatedProps: any) => React.ReactNode;\n};\n\nexport default function RefreshControl({\n height = 100,\n refreshing,\n onRefresh,\n renderAnimation,\n}: Props) {\n const { refreshValue, internalRefreshing, internalHeight } =\n usePullToRefreshContext();\n const manualTriggered = useRef(false);\n\n useEffect(() => {\n internalHeight.value = height;\n }, [height]);\n\n useEffect(() => {\n if (!internalRefreshing.value && refreshing) {\n manualTriggered.current = true;\n }\n internalRefreshing.value = refreshing;\n }, [refreshing]);\n\n useAnimatedReaction(\n () => {\n return internalRefreshing.value;\n },\n (result, prev) => {\n if (result !== prev) {\n if (result && refreshValue.value === 0) {\n refreshValue.value = height;\n }\n }\n }\n );\n\n const animatedStyle = useAnimatedStyle(() => {\n return {\n height: refreshValue.value,\n };\n }, []);\n\n const handleRefresh = useCallback(() => {\n if (manualTriggered.current) {\n manualTriggered.current = false;\n return;\n }\n onRefresh();\n }, [onRefresh]);\n\n useAnimatedReaction(\n () => internalRefreshing.value,\n (result, prev) => {\n if (result !== prev) {\n if (result) {\n runOnJS(handleRefresh)();\n } else {\n refreshValue.value = withTiming(0);\n }\n }\n }\n );\n\n const animatedProps = useAnimatedProps(() => {\n return {\n progress: internalRefreshing.value\n ? undefined\n : Math.min(refreshValue.value / height, 1),\n };\n }, [height]);\n\n return (\n <Animated.View style={[styles.container, animatedStyle]}>\n {renderAnimation(animatedProps)}\n </Animated.View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n },\n});\n"]}
@@ -1,24 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = usePullToRefreshContext;
7
- exports.PullToRefreshContext = void 0;
8
-
9
- var _react = require("react");
10
-
11
- // @ts-ignore
12
- const PullToRefreshContext = /*#__PURE__*/(0, _react.createContext)({});
13
- exports.PullToRefreshContext = PullToRefreshContext;
14
-
15
- function usePullToRefreshContext() {
16
- const ctx = (0, _react.useContext)(PullToRefreshContext);
17
-
18
- if (!ctx) {
19
- throw new Error('Component should be wrapped with withCollapsibleContext');
20
- }
21
-
22
- return ctx;
23
- }
24
- //# sourceMappingURL=usePullToRefreshContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["usePullToRefreshContext.ts"],"names":["PullToRefreshContext","usePullToRefreshContext","ctx","Error"],"mappings":";;;;;;;;AAAA;;AAGA;AACO,MAAMA,oBAAoB,gBAAG,0BAAwC,EAAxC,CAA7B;;;AAEQ,SAASC,uBAAT,GAAmC;AAChD,QAAMC,GAAG,GAAG,uBAAWF,oBAAX,CAAZ;;AACA,MAAI,CAACE,GAAL,EAAU;AACR,UAAM,IAAIC,KAAJ,CAAU,yDAAV,CAAN;AACD;;AACD,SAAOD,GAAP;AACD","sourcesContent":["import { createContext, useContext } from 'react';\nimport type { PullToRefreshContextType } from '../../types';\n\n// @ts-ignore\nexport const PullToRefreshContext = createContext<PullToRefreshContextType>({});\n\nexport default function usePullToRefreshContext() {\n const ctx = useContext(PullToRefreshContext);\n if (!ctx) {\n throw new Error('Component should be wrapped with withCollapsibleContext');\n }\n return ctx;\n}\n"]}
@@ -1,59 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.clamp = clamp;
7
- exports.rubberClamp = exports.rubberBandClamp = exports.springConfig = void 0;
8
-
9
- const springConfig = velocity => {
10
- 'worklet';
11
-
12
- return {
13
- stiffness: 1000,
14
- damping: 500,
15
- mass: 3,
16
- overshootClamping: true,
17
- restDisplacementThreshold: 0.01,
18
- restSpeedThreshold: 0.01,
19
- velocity
20
- };
21
- };
22
-
23
- exports.springConfig = springConfig;
24
-
25
- function clamp(value, lowerbound, upperbound) {
26
- 'worklet';
27
-
28
- return Math.min(Math.max(value, lowerbound), upperbound);
29
- }
30
- /**
31
- * calculates rubber value
32
- *
33
- * @param x distance from the edge
34
- * @param dim dimension, either width or height
35
- * @param coeff constant value, UIScrollView uses 0.55
36
- * @returns rubber = (1.0 – (1.0 / ((x * coeff / dim) + 1.0))) * dim
37
- */
38
-
39
-
40
- const rubberBandClamp = (x, dim, coeff) => {
41
- 'worklet';
42
-
43
- return (1.0 - 1.0 / (x * coeff / dim + 1.0)) * dim;
44
- };
45
-
46
- exports.rubberBandClamp = rubberBandClamp;
47
-
48
- const rubberClamp = (y, topBound, bottomBound, coeff = 0.55) => {
49
- 'worklet';
50
-
51
- const clampedY = clamp(y, topBound, bottomBound);
52
- const diff = Math.abs(y - clampedY);
53
- const sign = clampedY > y ? -1 : 1;
54
- const dimension = bottomBound - topBound;
55
- return clampedY + sign * rubberBandClamp(diff, dimension, coeff);
56
- };
57
-
58
- exports.rubberClamp = rubberClamp;
59
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["utils.ts"],"names":["springConfig","velocity","stiffness","damping","mass","overshootClamping","restDisplacementThreshold","restSpeedThreshold","clamp","value","lowerbound","upperbound","Math","min","max","rubberBandClamp","x","dim","coeff","rubberClamp","y","topBound","bottomBound","clampedY","diff","abs","sign","dimension"],"mappings":";;;;;;;;AAAO,MAAMA,YAAY,GAAIC,QAAD,IAAsB;AAChD;;AAEA,SAAO;AACLC,IAAAA,SAAS,EAAE,IADN;AAELC,IAAAA,OAAO,EAAE,GAFJ;AAGLC,IAAAA,IAAI,EAAE,CAHD;AAILC,IAAAA,iBAAiB,EAAE,IAJd;AAKLC,IAAAA,yBAAyB,EAAE,IALtB;AAMLC,IAAAA,kBAAkB,EAAE,IANf;AAOLN,IAAAA;AAPK,GAAP;AASD,CAZM;;;;AAcA,SAASO,KAAT,CAAeC,KAAf,EAA8BC,UAA9B,EAAkDC,UAAlD,EAAsE;AAC3E;;AAEA,SAAOC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASL,KAAT,EAAgBC,UAAhB,CAAT,EAAsCC,UAAtC,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,MAAMI,eAAe,GAAG,CAACC,CAAD,EAAYC,GAAZ,EAAyBC,KAAzB,KAA2C;AACxE;;AAEA,SAAO,CAAC,MAAM,OAAQF,CAAC,GAAGE,KAAL,GAAcD,GAAd,GAAoB,GAA3B,CAAP,IAA0CA,GAAjD;AACD,CAJM;;;;AAMA,MAAME,WAAW,GAAG,CACzBC,CADyB,EAEzBC,QAFyB,EAGzBC,WAHyB,EAIzBJ,KAAK,GAAG,IAJiB,KAKtB;AACH;;AAEA,QAAMK,QAAQ,GAAGf,KAAK,CAACY,CAAD,EAAIC,QAAJ,EAAcC,WAAd,CAAtB;AACA,QAAME,IAAI,GAAGZ,IAAI,CAACa,GAAL,CAASL,CAAC,GAAGG,QAAb,CAAb;AACA,QAAMG,IAAI,GAAGH,QAAQ,GAAGH,CAAX,GAAe,CAAC,CAAhB,GAAoB,CAAjC;AACA,QAAMO,SAAS,GAAGL,WAAW,GAAGD,QAAhC;AAEA,SAAOE,QAAQ,GAAGG,IAAI,GAAGX,eAAe,CAACS,IAAD,EAAOG,SAAP,EAAkBT,KAAlB,CAAxC;AACD,CAdM","sourcesContent":["export const springConfig = (velocity: number) => {\n 'worklet';\n\n return {\n stiffness: 1000,\n damping: 500,\n mass: 3,\n overshootClamping: true,\n restDisplacementThreshold: 0.01,\n restSpeedThreshold: 0.01,\n velocity,\n };\n};\n\nexport function clamp(value: number, lowerbound: number, upperbound: number) {\n 'worklet';\n\n return Math.min(Math.max(value, lowerbound), upperbound);\n}\n\n/**\n * calculates rubber value\n *\n * @param x distance from the edge\n * @param dim dimension, either width or height\n * @param coeff constant value, UIScrollView uses 0.55\n * @returns rubber = (1.0 – (1.0 / ((x * coeff / dim) + 1.0))) * dim\n */\nexport const rubberBandClamp = (x: number, dim: number, coeff: number) => {\n 'worklet';\n\n return (1.0 - 1.0 / ((x * coeff) / dim + 1.0)) * dim;\n};\n\nexport const rubberClamp = (\n y: number,\n topBound: number,\n bottomBound: number,\n coeff = 0.55\n) => {\n 'worklet';\n\n const clampedY = clamp(y, topBound, bottomBound);\n const diff = Math.abs(y - clampedY);\n const sign = clampedY > y ? -1 : 1;\n const dimension = bottomBound - topBound;\n\n return clampedY + sign * rubberBandClamp(diff, dimension, coeff);\n};\n"]}
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- import Animated, { useAnimatedStyle } from 'react-native-reanimated';
3
- export default function AnimatedTopView({
4
- height
5
- }) {
6
- const contentStyle = useAnimatedStyle(() => ({
7
- paddingTop: height.value,
8
- backgroundColor: 'white'
9
- }), []);
10
- return /*#__PURE__*/React.createElement(Animated.View, {
11
- style: contentStyle
12
- });
13
- }
14
- //# sourceMappingURL=AnimatedTopView.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["AnimatedTopView.tsx"],"names":["React","Animated","useAnimatedStyle","AnimatedTopView","height","contentStyle","paddingTop","value","backgroundColor"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,IAAmBC,gBAAnB,QAA2C,yBAA3C;AAMA,eAAe,SAASC,eAAT,CAAyB;AAAEC,EAAAA;AAAF,CAAzB,EAA4C;AACzD,QAAMC,YAAY,GAAGH,gBAAgB,CACnC,OAAO;AACLI,IAAAA,UAAU,EAAEF,MAAM,CAACG,KADd;AAELC,IAAAA,eAAe,EAAE;AAFZ,GAAP,CADmC,EAKnC,EALmC,CAArC;AAQA,sBAAO,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAEH;AAAtB,IAAP;AACD","sourcesContent":["import React from 'react';\nimport Animated, { useAnimatedStyle } from 'react-native-reanimated';\n\ntype Props = {\n height: Animated.SharedValue<number>;\n};\n\nexport default function AnimatedTopView({ height }: Props) {\n const contentStyle = useAnimatedStyle(\n () => ({\n paddingTop: height.value,\n backgroundColor: 'white',\n }),\n []\n );\n\n return <Animated.View style={contentStyle} />;\n}\n"]}
@@ -1,56 +0,0 @@
1
- import { NativeViewGestureHandler, PanGestureHandler } from 'react-native-gesture-handler';
2
- import React, { useRef } from 'react';
3
- import Animated, { useAnimatedGestureHandler, withTiming } from 'react-native-reanimated';
4
- import usePullToRefreshContext from './usePullToRefreshContext';
5
- import { StyleSheet } from 'react-native';
6
- import { rubberClamp } from './utils';
7
- export default function PullToRefreshContainer({
8
- children,
9
- scrollY
10
- }) {
11
- const scrollRef = useRef();
12
- const panRef = useRef();
13
- const {
14
- refreshValue,
15
- internalRefreshing,
16
- internalHeight
17
- } = usePullToRefreshContext();
18
- const gestureHandler = useAnimatedGestureHandler({
19
- onStart: (_, ctx) => {
20
- ctx.startY = (internalRefreshing.value ? refreshValue.value : 0) - scrollY.value;
21
- },
22
- onActive: (event, ctx) => {
23
- if (scrollY.value <= 1) {
24
- const tranY = event.translationY + ctx.startY;
25
- const clampedValue = rubberClamp(tranY, 0, internalHeight.value);
26
- refreshValue.value = clampedValue;
27
-
28
- if (clampedValue > internalHeight.value) {
29
- internalRefreshing.value = true;
30
- }
31
- } else if (!internalRefreshing.value) {
32
- refreshValue.value = 0;
33
- }
34
- },
35
- onEnd: () => {
36
- if (refreshValue.value > 0) {
37
- const value = internalRefreshing.value ? internalHeight.value : 0;
38
- refreshValue.value = withTiming(value);
39
- }
40
- }
41
- });
42
- return /*#__PURE__*/React.createElement(PanGestureHandler, {
43
- ref: panRef,
44
- simultaneousHandlers: scrollRef,
45
- onGestureEvent: gestureHandler,
46
- shouldCancelWhenOutside: false,
47
- enableTrackpadTwoFingerGesture: true,
48
- maxPointers: 1
49
- }, /*#__PURE__*/React.createElement(Animated.View, {
50
- style: StyleSheet.absoluteFill
51
- }, /*#__PURE__*/React.createElement(NativeViewGestureHandler, {
52
- ref: scrollRef,
53
- simultaneousHandlers: panRef
54
- }, children)));
55
- }
56
- //# sourceMappingURL=PullToRefreshContainer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["PullToRefreshContainer.tsx"],"names":["NativeViewGestureHandler","PanGestureHandler","React","useRef","Animated","useAnimatedGestureHandler","withTiming","usePullToRefreshContext","StyleSheet","rubberClamp","PullToRefreshContainer","children","scrollY","scrollRef","panRef","refreshValue","internalRefreshing","internalHeight","gestureHandler","onStart","_","ctx","startY","value","onActive","event","tranY","translationY","clampedValue","onEnd","absoluteFill"],"mappings":"AAAA,SACEA,wBADF,EAEEC,iBAFF,QAGO,8BAHP;AAIA,OAAOC,KAAP,IAAgBC,MAAhB,QAA8B,OAA9B;AACA,OAAOC,QAAP,IACEC,yBADF,EAEEC,UAFF,QAGO,yBAHP;AAIA,OAAOC,uBAAP,MAAoC,2BAApC;AACA,SAASC,UAAT,QAA2B,cAA3B;AACA,SAASC,WAAT,QAA4B,SAA5B;AAOA,eAAe,SAASC,sBAAT,CAAgC;AAAEC,EAAAA,QAAF;AAAYC,EAAAA;AAAZ,CAAhC,EAA8D;AAC3E,QAAMC,SAAS,GAAGV,MAAM,EAAxB;AACA,QAAMW,MAAM,GAAGX,MAAM,EAArB;AACA,QAAM;AAAEY,IAAAA,YAAF;AAAgBC,IAAAA,kBAAhB;AAAoCC,IAAAA;AAApC,MACJV,uBAAuB,EADzB;AAGA,QAAMW,cAAc,GAAGb,yBAAyB,CAAC;AAC/Cc,IAAAA,OAAO,EAAE,CAACC,CAAD,EAAIC,GAAJ,KAAiB;AACxBA,MAAAA,GAAG,CAACC,MAAJ,GACE,CAACN,kBAAkB,CAACO,KAAnB,GAA2BR,YAAY,CAACQ,KAAxC,GAAgD,CAAjD,IAAsDX,OAAO,CAACW,KADhE;AAED,KAJ8C;AAK/CC,IAAAA,QAAQ,EAAE,CAACC,KAAD,EAAQJ,GAAR,KAAqB;AAC7B,UAAIT,OAAO,CAACW,KAAR,IAAiB,CAArB,EAAwB;AACtB,cAAMG,KAAK,GAAGD,KAAK,CAACE,YAAN,GAAqBN,GAAG,CAACC,MAAvC;AACA,cAAMM,YAAY,GAAGnB,WAAW,CAACiB,KAAD,EAAQ,CAAR,EAAWT,cAAc,CAACM,KAA1B,CAAhC;AACAR,QAAAA,YAAY,CAACQ,KAAb,GAAqBK,YAArB;;AACA,YAAIA,YAAY,GAAGX,cAAc,CAACM,KAAlC,EAAyC;AACvCP,UAAAA,kBAAkB,CAACO,KAAnB,GAA2B,IAA3B;AACD;AACF,OAPD,MAOO,IAAI,CAACP,kBAAkB,CAACO,KAAxB,EAA+B;AACpCR,QAAAA,YAAY,CAACQ,KAAb,GAAqB,CAArB;AACD;AACF,KAhB8C;AAiB/CM,IAAAA,KAAK,EAAE,MAAM;AACX,UAAId,YAAY,CAACQ,KAAb,GAAqB,CAAzB,EAA4B;AAC1B,cAAMA,KAAK,GAAGP,kBAAkB,CAACO,KAAnB,GAA2BN,cAAc,CAACM,KAA1C,GAAkD,CAAhE;AACAR,QAAAA,YAAY,CAACQ,KAAb,GAAqBjB,UAAU,CAACiB,KAAD,CAA/B;AACD;AACF;AAtB8C,GAAD,CAAhD;AAyBA,sBACE,oBAAC,iBAAD;AACE,IAAA,GAAG,EAAET,MADP;AAEE,IAAA,oBAAoB,EAAED,SAFxB;AAGE,IAAA,cAAc,EAAEK,cAHlB;AAIE,IAAA,uBAAuB,EAAE,KAJ3B;AAKE,IAAA,8BAA8B,MALhC;AAME,IAAA,WAAW,EAAE;AANf,kBAQE,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAEV,UAAU,CAACsB;AAAjC,kBACE,oBAAC,wBAAD;AAA0B,IAAA,GAAG,EAAEjB,SAA/B;AAA0C,IAAA,oBAAoB,EAAEC;AAAhE,KACGH,QADH,CADF,CARF,CADF;AAgBD","sourcesContent":["import {\n NativeViewGestureHandler,\n PanGestureHandler,\n} from 'react-native-gesture-handler';\nimport React, { useRef } from 'react';\nimport Animated, {\n useAnimatedGestureHandler,\n withTiming,\n} from 'react-native-reanimated';\nimport usePullToRefreshContext from './usePullToRefreshContext';\nimport { StyleSheet } from 'react-native';\nimport { rubberClamp } from './utils';\n\ntype Props = {\n children: React.ReactNode;\n scrollY: Animated.SharedValue<number>;\n};\n\nexport default function PullToRefreshContainer({ children, scrollY }: Props) {\n const scrollRef = useRef();\n const panRef = useRef();\n const { refreshValue, internalRefreshing, internalHeight } =\n usePullToRefreshContext();\n\n const gestureHandler = useAnimatedGestureHandler({\n onStart: (_, ctx: any) => {\n ctx.startY =\n (internalRefreshing.value ? refreshValue.value : 0) - scrollY.value;\n },\n onActive: (event, ctx: any) => {\n if (scrollY.value <= 1) {\n const tranY = event.translationY + ctx.startY;\n const clampedValue = rubberClamp(tranY, 0, internalHeight.value);\n refreshValue.value = clampedValue;\n if (clampedValue > internalHeight.value) {\n internalRefreshing.value = true;\n }\n } else if (!internalRefreshing.value) {\n refreshValue.value = 0;\n }\n },\n onEnd: () => {\n if (refreshValue.value > 0) {\n const value = internalRefreshing.value ? internalHeight.value : 0;\n refreshValue.value = withTiming(value);\n }\n },\n });\n\n return (\n <PanGestureHandler\n ref={panRef}\n simultaneousHandlers={scrollRef}\n onGestureEvent={gestureHandler}\n shouldCancelWhenOutside={false}\n enableTrackpadTwoFingerGesture\n maxPointers={1}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <NativeViewGestureHandler ref={scrollRef} simultaneousHandlers={panRef}>\n {children}\n </NativeViewGestureHandler>\n </Animated.View>\n </PanGestureHandler>\n );\n}\n"]}
@@ -1,21 +0,0 @@
1
- import React, { useMemo } from 'react';
2
- import { useSharedValue } from 'react-native-reanimated';
3
- import { PullToRefreshContext } from './usePullToRefreshContext';
4
- export default function PullToRefreshProvider({
5
- children
6
- }) {
7
- const refreshValue = useSharedValue(0);
8
- const internalRefreshing = useSharedValue(false);
9
- const internalHeight = useSharedValue(0);
10
- const context = useMemo(() => {
11
- return {
12
- refreshValue: refreshValue,
13
- internalRefreshing,
14
- internalHeight
15
- };
16
- }, [refreshValue, internalRefreshing, internalHeight]);
17
- return /*#__PURE__*/React.createElement(PullToRefreshContext.Provider, {
18
- value: context
19
- }, children);
20
- }
21
- //# sourceMappingURL=PullToRefreshProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["PullToRefreshProvider.tsx"],"names":["React","useMemo","useSharedValue","PullToRefreshContext","PullToRefreshProvider","children","refreshValue","internalRefreshing","internalHeight","context"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,OAAhB,QAA+B,OAA/B;AACA,SAASC,cAAT,QAA+B,yBAA/B;AACA,SAASC,oBAAT,QAAqC,2BAArC;AAMA,eAAe,SAASC,qBAAT,CAA+B;AAAEC,EAAAA;AAAF,CAA/B,EAAoD;AACjE,QAAMC,YAAY,GAAGJ,cAAc,CAAC,CAAD,CAAnC;AACA,QAAMK,kBAAkB,GAAGL,cAAc,CAAC,KAAD,CAAzC;AACA,QAAMM,cAAc,GAAGN,cAAc,CAAC,CAAD,CAArC;AAEA,QAAMO,OAAO,GAAGR,OAAO,CAAC,MAAM;AAC5B,WAAO;AACLK,MAAAA,YAAY,EAAEA,YADT;AAELC,MAAAA,kBAFK;AAGLC,MAAAA;AAHK,KAAP;AAKD,GANsB,EAMpB,CAACF,YAAD,EAAeC,kBAAf,EAAmCC,cAAnC,CANoB,CAAvB;AAQA,sBACE,oBAAC,oBAAD,CAAsB,QAAtB;AAA+B,IAAA,KAAK,EAAEC;AAAtC,KACGJ,QADH,CADF;AAKD","sourcesContent":["import React, { useMemo } from 'react';\nimport { useSharedValue } from 'react-native-reanimated';\nimport { PullToRefreshContext } from './usePullToRefreshContext';\n\ntype Props = {\n children: React.ReactNode;\n};\n\nexport default function PullToRefreshProvider({ children }: Props) {\n const refreshValue = useSharedValue(0);\n const internalRefreshing = useSharedValue(false);\n const internalHeight = useSharedValue(0);\n\n const context = useMemo(() => {\n return {\n refreshValue: refreshValue,\n internalRefreshing,\n internalHeight,\n };\n }, [refreshValue, internalRefreshing, internalHeight]);\n\n return (\n <PullToRefreshContext.Provider value={context}>\n {children}\n </PullToRefreshContext.Provider>\n );\n}\n"]}
@@ -1,73 +0,0 @@
1
- /* eslint-disable react-hooks/exhaustive-deps */
2
- import React, { useCallback, useEffect, useRef } from 'react';
3
- import { StyleSheet } from 'react-native';
4
- import Animated, { runOnJS, useAnimatedProps, useAnimatedReaction, useAnimatedStyle, withTiming } from 'react-native-reanimated';
5
- import usePullToRefreshContext from './usePullToRefreshContext';
6
- export default function RefreshControl({
7
- height = 100,
8
- refreshing,
9
- onRefresh,
10
- renderAnimation
11
- }) {
12
- const {
13
- refreshValue,
14
- internalRefreshing,
15
- internalHeight
16
- } = usePullToRefreshContext();
17
- const manualTriggered = useRef(false);
18
- useEffect(() => {
19
- internalHeight.value = height;
20
- }, [height]);
21
- useEffect(() => {
22
- if (!internalRefreshing.value && refreshing) {
23
- manualTriggered.current = true;
24
- }
25
-
26
- internalRefreshing.value = refreshing;
27
- }, [refreshing]);
28
- useAnimatedReaction(() => {
29
- return internalRefreshing.value;
30
- }, (result, prev) => {
31
- if (result !== prev) {
32
- if (result && refreshValue.value === 0) {
33
- refreshValue.value = height;
34
- }
35
- }
36
- });
37
- const animatedStyle = useAnimatedStyle(() => {
38
- return {
39
- height: refreshValue.value
40
- };
41
- }, []);
42
- const handleRefresh = useCallback(() => {
43
- if (manualTriggered.current) {
44
- manualTriggered.current = false;
45
- return;
46
- }
47
-
48
- onRefresh();
49
- }, [onRefresh]);
50
- useAnimatedReaction(() => internalRefreshing.value, (result, prev) => {
51
- if (result !== prev) {
52
- if (result) {
53
- runOnJS(handleRefresh)();
54
- } else {
55
- refreshValue.value = withTiming(0);
56
- }
57
- }
58
- });
59
- const animatedProps = useAnimatedProps(() => {
60
- return {
61
- progress: internalRefreshing.value ? undefined : Math.min(refreshValue.value / height, 1)
62
- };
63
- }, [height]);
64
- return /*#__PURE__*/React.createElement(Animated.View, {
65
- style: [styles.container, animatedStyle]
66
- }, renderAnimation(animatedProps));
67
- }
68
- const styles = StyleSheet.create({
69
- container: {
70
- overflow: 'hidden'
71
- }
72
- });
73
- //# sourceMappingURL=RefreshControl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["RefreshControl.tsx"],"names":["React","useCallback","useEffect","useRef","StyleSheet","Animated","runOnJS","useAnimatedProps","useAnimatedReaction","useAnimatedStyle","withTiming","usePullToRefreshContext","RefreshControl","height","refreshing","onRefresh","renderAnimation","refreshValue","internalRefreshing","internalHeight","manualTriggered","value","current","result","prev","animatedStyle","handleRefresh","animatedProps","progress","undefined","Math","min","styles","container","create","overflow"],"mappings":"AAAA;AACA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,SAA7B,EAAwCC,MAAxC,QAAsD,OAAtD;AACA,SAASC,UAAT,QAA2B,cAA3B;AACA,OAAOC,QAAP,IACEC,OADF,EAEEC,gBAFF,EAGEC,mBAHF,EAIEC,gBAJF,EAKEC,UALF,QAMO,yBANP;AAOA,OAAOC,uBAAP,MAAoC,2BAApC;AASA,eAAe,SAASC,cAAT,CAAwB;AACrCC,EAAAA,MAAM,GAAG,GAD4B;AAErCC,EAAAA,UAFqC;AAGrCC,EAAAA,SAHqC;AAIrCC,EAAAA;AAJqC,CAAxB,EAKL;AACR,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA,kBAAhB;AAAoCC,IAAAA;AAApC,MACJR,uBAAuB,EADzB;AAEA,QAAMS,eAAe,GAAGjB,MAAM,CAAC,KAAD,CAA9B;AAEAD,EAAAA,SAAS,CAAC,MAAM;AACdiB,IAAAA,cAAc,CAACE,KAAf,GAAuBR,MAAvB;AACD,GAFQ,EAEN,CAACA,MAAD,CAFM,CAAT;AAIAX,EAAAA,SAAS,CAAC,MAAM;AACd,QAAI,CAACgB,kBAAkB,CAACG,KAApB,IAA6BP,UAAjC,EAA6C;AAC3CM,MAAAA,eAAe,CAACE,OAAhB,GAA0B,IAA1B;AACD;;AACDJ,IAAAA,kBAAkB,CAACG,KAAnB,GAA2BP,UAA3B;AACD,GALQ,EAKN,CAACA,UAAD,CALM,CAAT;AAOAN,EAAAA,mBAAmB,CACjB,MAAM;AACJ,WAAOU,kBAAkB,CAACG,KAA1B;AACD,GAHgB,EAIjB,CAACE,MAAD,EAASC,IAAT,KAAkB;AAChB,QAAID,MAAM,KAAKC,IAAf,EAAqB;AACnB,UAAID,MAAM,IAAIN,YAAY,CAACI,KAAb,KAAuB,CAArC,EAAwC;AACtCJ,QAAAA,YAAY,CAACI,KAAb,GAAqBR,MAArB;AACD;AACF;AACF,GAVgB,CAAnB;AAaA,QAAMY,aAAa,GAAGhB,gBAAgB,CAAC,MAAM;AAC3C,WAAO;AACLI,MAAAA,MAAM,EAAEI,YAAY,CAACI;AADhB,KAAP;AAGD,GAJqC,EAInC,EAJmC,CAAtC;AAMA,QAAMK,aAAa,GAAGzB,WAAW,CAAC,MAAM;AACtC,QAAImB,eAAe,CAACE,OAApB,EAA6B;AAC3BF,MAAAA,eAAe,CAACE,OAAhB,GAA0B,KAA1B;AACA;AACD;;AACDP,IAAAA,SAAS;AACV,GANgC,EAM9B,CAACA,SAAD,CAN8B,CAAjC;AAQAP,EAAAA,mBAAmB,CACjB,MAAMU,kBAAkB,CAACG,KADR,EAEjB,CAACE,MAAD,EAASC,IAAT,KAAkB;AAChB,QAAID,MAAM,KAAKC,IAAf,EAAqB;AACnB,UAAID,MAAJ,EAAY;AACVjB,QAAAA,OAAO,CAACoB,aAAD,CAAP;AACD,OAFD,MAEO;AACLT,QAAAA,YAAY,CAACI,KAAb,GAAqBX,UAAU,CAAC,CAAD,CAA/B;AACD;AACF;AACF,GAVgB,CAAnB;AAaA,QAAMiB,aAAa,GAAGpB,gBAAgB,CAAC,MAAM;AAC3C,WAAO;AACLqB,MAAAA,QAAQ,EAAEV,kBAAkB,CAACG,KAAnB,GACNQ,SADM,GAENC,IAAI,CAACC,GAAL,CAASd,YAAY,CAACI,KAAb,GAAqBR,MAA9B,EAAsC,CAAtC;AAHC,KAAP;AAKD,GANqC,EAMnC,CAACA,MAAD,CANmC,CAAtC;AAQA,sBACE,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAE,CAACmB,MAAM,CAACC,SAAR,EAAmBR,aAAnB;AAAtB,KACGT,eAAe,CAACW,aAAD,CADlB,CADF;AAKD;AAED,MAAMK,MAAM,GAAG5B,UAAU,CAAC8B,MAAX,CAAkB;AAC/BD,EAAAA,SAAS,EAAE;AACTE,IAAAA,QAAQ,EAAE;AADD;AADoB,CAAlB,CAAf","sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport { StyleSheet } from 'react-native';\nimport Animated, {\n runOnJS,\n useAnimatedProps,\n useAnimatedReaction,\n useAnimatedStyle,\n withTiming,\n} from 'react-native-reanimated';\nimport usePullToRefreshContext from './usePullToRefreshContext';\n\ntype Props = {\n height?: number;\n refreshing: boolean;\n onRefresh: () => void;\n renderAnimation: (animatedProps: any) => React.ReactNode;\n};\n\nexport default function RefreshControl({\n height = 100,\n refreshing,\n onRefresh,\n renderAnimation,\n}: Props) {\n const { refreshValue, internalRefreshing, internalHeight } =\n usePullToRefreshContext();\n const manualTriggered = useRef(false);\n\n useEffect(() => {\n internalHeight.value = height;\n }, [height]);\n\n useEffect(() => {\n if (!internalRefreshing.value && refreshing) {\n manualTriggered.current = true;\n }\n internalRefreshing.value = refreshing;\n }, [refreshing]);\n\n useAnimatedReaction(\n () => {\n return internalRefreshing.value;\n },\n (result, prev) => {\n if (result !== prev) {\n if (result && refreshValue.value === 0) {\n refreshValue.value = height;\n }\n }\n }\n );\n\n const animatedStyle = useAnimatedStyle(() => {\n return {\n height: refreshValue.value,\n };\n }, []);\n\n const handleRefresh = useCallback(() => {\n if (manualTriggered.current) {\n manualTriggered.current = false;\n return;\n }\n onRefresh();\n }, [onRefresh]);\n\n useAnimatedReaction(\n () => internalRefreshing.value,\n (result, prev) => {\n if (result !== prev) {\n if (result) {\n runOnJS(handleRefresh)();\n } else {\n refreshValue.value = withTiming(0);\n }\n }\n }\n );\n\n const animatedProps = useAnimatedProps(() => {\n return {\n progress: internalRefreshing.value\n ? undefined\n : Math.min(refreshValue.value / height, 1),\n };\n }, [height]);\n\n return (\n <Animated.View style={[styles.container, animatedStyle]}>\n {renderAnimation(animatedProps)}\n </Animated.View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n },\n});\n"]}
@@ -1,13 +0,0 @@
1
- import { createContext, useContext } from 'react';
2
- // @ts-ignore
3
- export const PullToRefreshContext = /*#__PURE__*/createContext({});
4
- export default function usePullToRefreshContext() {
5
- const ctx = useContext(PullToRefreshContext);
6
-
7
- if (!ctx) {
8
- throw new Error('Component should be wrapped with withCollapsibleContext');
9
- }
10
-
11
- return ctx;
12
- }
13
- //# sourceMappingURL=usePullToRefreshContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["usePullToRefreshContext.ts"],"names":["createContext","useContext","PullToRefreshContext","usePullToRefreshContext","ctx","Error"],"mappings":"AAAA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,OAA1C;AAGA;AACA,OAAO,MAAMC,oBAAoB,gBAAGF,aAAa,CAA2B,EAA3B,CAA1C;AAEP,eAAe,SAASG,uBAAT,GAAmC;AAChD,QAAMC,GAAG,GAAGH,UAAU,CAACC,oBAAD,CAAtB;;AACA,MAAI,CAACE,GAAL,EAAU;AACR,UAAM,IAAIC,KAAJ,CAAU,yDAAV,CAAN;AACD;;AACD,SAAOD,GAAP;AACD","sourcesContent":["import { createContext, useContext } from 'react';\nimport type { PullToRefreshContextType } from '../../types';\n\n// @ts-ignore\nexport const PullToRefreshContext = createContext<PullToRefreshContextType>({});\n\nexport default function usePullToRefreshContext() {\n const ctx = useContext(PullToRefreshContext);\n if (!ctx) {\n throw new Error('Component should be wrapped with withCollapsibleContext');\n }\n return ctx;\n}\n"]}
@@ -1,42 +0,0 @@
1
- export const springConfig = velocity => {
2
- 'worklet';
3
-
4
- return {
5
- stiffness: 1000,
6
- damping: 500,
7
- mass: 3,
8
- overshootClamping: true,
9
- restDisplacementThreshold: 0.01,
10
- restSpeedThreshold: 0.01,
11
- velocity
12
- };
13
- };
14
- export function clamp(value, lowerbound, upperbound) {
15
- 'worklet';
16
-
17
- return Math.min(Math.max(value, lowerbound), upperbound);
18
- }
19
- /**
20
- * calculates rubber value
21
- *
22
- * @param x distance from the edge
23
- * @param dim dimension, either width or height
24
- * @param coeff constant value, UIScrollView uses 0.55
25
- * @returns rubber = (1.0 – (1.0 / ((x * coeff / dim) + 1.0))) * dim
26
- */
27
-
28
- export const rubberBandClamp = (x, dim, coeff) => {
29
- 'worklet';
30
-
31
- return (1.0 - 1.0 / (x * coeff / dim + 1.0)) * dim;
32
- };
33
- export const rubberClamp = (y, topBound, bottomBound, coeff = 0.55) => {
34
- 'worklet';
35
-
36
- const clampedY = clamp(y, topBound, bottomBound);
37
- const diff = Math.abs(y - clampedY);
38
- const sign = clampedY > y ? -1 : 1;
39
- const dimension = bottomBound - topBound;
40
- return clampedY + sign * rubberBandClamp(diff, dimension, coeff);
41
- };
42
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["utils.ts"],"names":["springConfig","velocity","stiffness","damping","mass","overshootClamping","restDisplacementThreshold","restSpeedThreshold","clamp","value","lowerbound","upperbound","Math","min","max","rubberBandClamp","x","dim","coeff","rubberClamp","y","topBound","bottomBound","clampedY","diff","abs","sign","dimension"],"mappings":"AAAA,OAAO,MAAMA,YAAY,GAAIC,QAAD,IAAsB;AAChD;;AAEA,SAAO;AACLC,IAAAA,SAAS,EAAE,IADN;AAELC,IAAAA,OAAO,EAAE,GAFJ;AAGLC,IAAAA,IAAI,EAAE,CAHD;AAILC,IAAAA,iBAAiB,EAAE,IAJd;AAKLC,IAAAA,yBAAyB,EAAE,IALtB;AAMLC,IAAAA,kBAAkB,EAAE,IANf;AAOLN,IAAAA;AAPK,GAAP;AASD,CAZM;AAcP,OAAO,SAASO,KAAT,CAAeC,KAAf,EAA8BC,UAA9B,EAAkDC,UAAlD,EAAsE;AAC3E;;AAEA,SAAOC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASL,KAAT,EAAgBC,UAAhB,CAAT,EAAsCC,UAAtC,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMI,eAAe,GAAG,CAACC,CAAD,EAAYC,GAAZ,EAAyBC,KAAzB,KAA2C;AACxE;;AAEA,SAAO,CAAC,MAAM,OAAQF,CAAC,GAAGE,KAAL,GAAcD,GAAd,GAAoB,GAA3B,CAAP,IAA0CA,GAAjD;AACD,CAJM;AAMP,OAAO,MAAME,WAAW,GAAG,CACzBC,CADyB,EAEzBC,QAFyB,EAGzBC,WAHyB,EAIzBJ,KAAK,GAAG,IAJiB,KAKtB;AACH;;AAEA,QAAMK,QAAQ,GAAGf,KAAK,CAACY,CAAD,EAAIC,QAAJ,EAAcC,WAAd,CAAtB;AACA,QAAME,IAAI,GAAGZ,IAAI,CAACa,GAAL,CAASL,CAAC,GAAGG,QAAb,CAAb;AACA,QAAMG,IAAI,GAAGH,QAAQ,GAAGH,CAAX,GAAe,CAAC,CAAhB,GAAoB,CAAjC;AACA,QAAMO,SAAS,GAAGL,WAAW,GAAGD,QAAhC;AAEA,SAAOE,QAAQ,GAAGG,IAAI,GAAGX,eAAe,CAACS,IAAD,EAAOG,SAAP,EAAkBT,KAAlB,CAAxC;AACD,CAdM","sourcesContent":["export const springConfig = (velocity: number) => {\n 'worklet';\n\n return {\n stiffness: 1000,\n damping: 500,\n mass: 3,\n overshootClamping: true,\n restDisplacementThreshold: 0.01,\n restSpeedThreshold: 0.01,\n velocity,\n };\n};\n\nexport function clamp(value: number, lowerbound: number, upperbound: number) {\n 'worklet';\n\n return Math.min(Math.max(value, lowerbound), upperbound);\n}\n\n/**\n * calculates rubber value\n *\n * @param x distance from the edge\n * @param dim dimension, either width or height\n * @param coeff constant value, UIScrollView uses 0.55\n * @returns rubber = (1.0 – (1.0 / ((x * coeff / dim) + 1.0))) * dim\n */\nexport const rubberBandClamp = (x: number, dim: number, coeff: number) => {\n 'worklet';\n\n return (1.0 - 1.0 / ((x * coeff) / dim + 1.0)) * dim;\n};\n\nexport const rubberClamp = (\n y: number,\n topBound: number,\n bottomBound: number,\n coeff = 0.55\n) => {\n 'worklet';\n\n const clampedY = clamp(y, topBound, bottomBound);\n const diff = Math.abs(y - clampedY);\n const sign = clampedY > y ? -1 : 1;\n const dimension = bottomBound - topBound;\n\n return clampedY + sign * rubberBandClamp(diff, dimension, coeff);\n};\n"]}
@@ -1,6 +0,0 @@
1
- import Animated from 'react-native-reanimated';
2
- declare type Props = {
3
- height: Animated.SharedValue<number>;
4
- };
5
- export default function AnimatedTopView({ height }: Props): JSX.Element;
6
- export {};
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import Animated from 'react-native-reanimated';
3
- declare type Props = {
4
- children: React.ReactNode;
5
- scrollY: Animated.SharedValue<number>;
6
- };
7
- export default function PullToRefreshContainer({ children, scrollY }: Props): JSX.Element;
8
- export {};
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- declare type Props = {
3
- children: React.ReactNode;
4
- };
5
- export default function PullToRefreshProvider({ children }: Props): JSX.Element;
6
- export {};
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- declare type Props = {
3
- height?: number;
4
- refreshing: boolean;
5
- onRefresh: () => void;
6
- renderAnimation: (animatedProps: any) => React.ReactNode;
7
- };
8
- export default function RefreshControl({ height, refreshing, onRefresh, renderAnimation, }: Props): JSX.Element;
9
- export {};