@codeleap/mobile 1.9.3 → 1.9.6
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/dist/components/List.d.ts +1 -0
- package/dist/components/List.js +5 -4
- package/dist/components/List.js.map +1 -1
- package/dist/components/Scroll.d.ts +2 -1
- package/dist/components/Scroll.js +5 -4
- package/dist/components/Scroll.js.map +1 -1
- package/package.json +1 -1
- package/src/components/List.tsx +6 -4
- package/src/components/Scroll.tsx +6 -4
|
@@ -7,6 +7,7 @@ export declare type FlatListProps<T = any> = RNFlatListProps<T> & ViewProps & {
|
|
|
7
7
|
refreshTimeout?: number;
|
|
8
8
|
changeData?: any;
|
|
9
9
|
separators?: boolean;
|
|
10
|
+
refreshing?: boolean;
|
|
10
11
|
keyboardAware?: boolean;
|
|
11
12
|
};
|
|
12
13
|
export declare const List: <T = any>(props: FlatListProps<T>) => JSX.Element;
|
package/dist/components/List.js
CHANGED
|
@@ -41,7 +41,8 @@ var KeyboardAwareFlatList = react_native_keyboard_aware_scroll_view_1.KeyboardAw
|
|
|
41
41
|
var ListCP = (0, react_1.forwardRef)(function (flatListProps, ref) {
|
|
42
42
|
var _a = flatListProps.variants, variants = _a === void 0 ? [] : _a, style = flatListProps.style, _b = flatListProps.refreshTimeout, refreshTimeout = _b === void 0 ? 3000 : _b, changeData = flatListProps.changeData, _c = flatListProps.keyboardAware, keyboardAware = _c === void 0 ? true : _c, props = __rest(flatListProps, ["variants", "style", "refreshTimeout", "changeData", "keyboardAware"]);
|
|
43
43
|
var hasRefresh = !!props.onRefresh;
|
|
44
|
-
var _d = (0, react_1.useState)(false),
|
|
44
|
+
var _d = (0, react_1.useState)(false), refreshingState = _d[0], setRefreshing = _d[1];
|
|
45
|
+
var refreshingDisplay = props.refreshing !== undefined ? props.refreshing : refreshingState;
|
|
45
46
|
var timer = React.useRef(null);
|
|
46
47
|
var previousData = (0, common_1.usePrevious)(changeData);
|
|
47
48
|
var onRefresh = function () {
|
|
@@ -55,13 +56,13 @@ var ListCP = (0, react_1.forwardRef)(function (flatListProps, ref) {
|
|
|
55
56
|
}, refreshTimeout);
|
|
56
57
|
};
|
|
57
58
|
(0, common_1.onUpdate)(function () {
|
|
58
|
-
if (
|
|
59
|
+
if (refreshingDisplay && !(0, common_1.deepEqual)(previousData, changeData)) {
|
|
59
60
|
setRefreshing(false);
|
|
60
61
|
if (timer.current) {
|
|
61
62
|
clearTimeout(timer.current);
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
|
-
}, [
|
|
65
|
+
}, [refreshingDisplay, changeData]);
|
|
65
66
|
var Theme = (0, common_1.useCodeleapContext)().Theme;
|
|
66
67
|
var variantStyles = (0, common_1.useDefaultComponentStyle)('View', {
|
|
67
68
|
variants: variants,
|
|
@@ -73,7 +74,7 @@ var ListCP = (0, react_1.forwardRef)(function (flatListProps, ref) {
|
|
|
73
74
|
var isEmpty = !props.data || !props.data.length;
|
|
74
75
|
var separator = !isEmpty && separatorProp == true && renderSeparator;
|
|
75
76
|
var Component = keyboardAware ? KeyboardAwareFlatList : react_native_1.FlatList;
|
|
76
|
-
return (<Component style={[Theme.presets.full, style]} contentContainerStyle={[variantStyles.wrapper]} ref={ref} ItemSeparatorComponent={separator} refreshControl={hasRefresh && (<react_native_1.RefreshControl refreshing={
|
|
77
|
+
return (<Component style={[Theme.presets.full, style]} contentContainerStyle={[variantStyles.wrapper]} ref={ref} ItemSeparatorComponent={separator} refreshControl={hasRefresh && (<react_native_1.RefreshControl refreshing={refreshingDisplay} onRefresh={onRefresh}/>)} {...props}/>);
|
|
77
78
|
});
|
|
78
79
|
exports.List = ListCP;
|
|
79
80
|
//# sourceMappingURL=List.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.js","sourceRoot":"","sources":["../../src/components/List.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA8B;AAC9B,+BAA4C;AAC5C,2CAMyB;AACzB,mGAIgD;AAEhD,6CAAuD;AACvD,+BAAwC;
|
|
1
|
+
{"version":3,"file":"List.js","sourceRoot":"","sources":["../../src/components/List.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA8B;AAC9B,+BAA4C;AAC5C,2CAMyB;AACzB,mGAIgD;AAEhD,6CAAuD;AACvD,+BAAwC;AAaxC,IAAM,qBAAqB,GACzB,+DAKC,CAAA;AAEH,IAAM,MAAM,GAAG,IAAA,kBAAU,EACvB,UAAC,aAAa,EAAE,GAAG;IAEf,IAAA,KAME,aAAa,SANF,EAAb,QAAQ,mBAAG,EAAE,KAAA,EACb,KAAK,GAKH,aAAa,MALV,EACL,KAIE,aAAa,eAJM,EAArB,cAAc,mBAAG,IAAI,KAAA,EACrB,UAAU,GAGR,aAAa,WAHL,EACV,KAEE,aAAa,cAFK,EAApB,aAAa,mBAAG,IAAI,KAAA,EACjB,KAAK,UACN,aAAa,EAPX,sEAOL,CADS,CACO;IACjB,IAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAA;IAC9B,IAAA,KAAmC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAjD,eAAe,QAAA,EAAE,aAAa,QAAmB,CAAA;IACxD,IAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAA;IAE7F,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChC,IAAM,YAAY,GAAG,IAAA,oBAAW,EAAC,UAAU,CAAC,CAAA;IAE5C,IAAM,SAAS,GAAG;QAChB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;SAC5B;QAED,aAAa,CAAC,IAAI,CAAC,CAAA;QAEnB,KAAK,CAAC,SAAS,EAAE,CAAA;QAEjB,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;YACzB,aAAa,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC,EAAE,cAAc,CAAC,CAAA;IACpB,CAAC,CAAA;IACD,IAAA,iBAAQ,EAAC;QACP,IAAI,iBAAiB,IAAI,CAAC,IAAA,kBAAS,EAAC,YAAY,EAAE,UAAU,CAAC,EAAE;YAC7D,aAAa,CAAC,KAAK,CAAC,CAAA;YACpB,IAAI,KAAK,CAAC,OAAO,EAAE;gBACjB,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;aAC5B;SACF;IACH,CAAC,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAA;IAC3B,IAAA,KAAK,GAAK,IAAA,2BAAkB,GAAE,MAAzB,CAAyB;IAEtC,IAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,MAAM,EAAE;QACrD,QAAQ,UAAA;KACT,CAAC,CAAA;IAEF,IAAM,eAAe,GAAG;QACtB,OAAO,CACL,CAAC,WAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAI,CAAC,CACvC,CAAA;IACH,CAAC,CAAA;IAED,IAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAA;IACtC,IAAM,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAA;IACjD,IAAM,SAAS,GAAG,CAAC,OAAO,IAAI,aAAa,IAAI,IAAI,IAAI,eAAe,CAAA;IAEtE,IAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,uBAAQ,CAAA;IAElE,OAAO,CACL,CAAC,SAAS,CACR,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CACnC,qBAAqB,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAC/C,GAAG,CAAC,CAAC,GAA0B,CAAC,CAChC,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAClC,cAAc,CAAC,CACb,UAAU,IAAI,CACZ,CAAC,6BAAc,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAG,CACxE,CACF,CACD,IAAI,KAAK,CAAC,EACV,CACH,CAAA;AACH,CAAC,CACF,CAAA;AAEY,QAAA,IAAI,GAAG,MAA6D,CAAA"}
|
|
@@ -7,6 +7,7 @@ export declare type ScrollProps = KeyboardAwareScrollViewProps & ViewProps & {
|
|
|
7
7
|
refreshTimeout?: number;
|
|
8
8
|
changeData?: any;
|
|
9
9
|
keyboardAware?: boolean;
|
|
10
|
+
refreshing?: boolean;
|
|
10
11
|
styles?: ViewStyle;
|
|
11
12
|
};
|
|
12
|
-
export declare const Scroll: React.ForwardRefExoticComponent<Pick<ScrollProps, "children" | "hitSlop" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "style" | "testID" | "nativeID" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "variants" | "responsiveVariants" | "component" | "css" | "is" | "not" | "up" | "down" | "onHover" | "styles" | "onContentSizeChange" | "onScroll" | "scrollEnabled" | "innerRef" | "viewIsInsideTabBar" | "resetScrollToCoords" | "enableResetScrollToCoords" | "enableAutomaticScroll" | "enableOnAndroid" | "extraHeight" | "extraScrollHeight" | "keyboardOpeningTime" | "onKeyboardWillShow" | "onKeyboardDidShow" | "onKeyboardWillHide" | "onKeyboardDidHide" | "onKeyboardWillChangeFrame" | "onKeyboardDidChangeFrame" | "onRefresh" | "horizontal" | "contentContainerStyle" | "decelerationRate" | "invertStickyHeaders" | "keyboardDismissMode" | "keyboardShouldPersistTaps" | "onScrollBeginDrag" | "onScrollEndDrag" | "onMomentumScrollEnd" | "onMomentumScrollBegin" | "pagingEnabled" | "showsHorizontalScrollIndicator" | "showsVerticalScrollIndicator" | "stickyHeaderHiddenOnScroll" | "refreshControl" | "snapToInterval" | "snapToOffsets" | "snapToStart" | "snapToEnd" | "stickyHeaderIndices" | "disableIntervalMomentum" | "disableScrollViewPanResponder" | "StickyHeaderComponent" | "alwaysBounceHorizontal" | "alwaysBounceVertical" | "automaticallyAdjustContentInsets" | "automaticallyAdjustsScrollIndicatorInsets" | "bounces" | "bouncesZoom" | "canCancelContentTouches" | "centerContent" | "contentInset" | "contentOffset" | "contentInsetAdjustmentBehavior" | "directionalLockEnabled" | "indicatorStyle" | "maintainVisibleContentPosition" | "maximumZoomScale" | "minimumZoomScale" | "onScrollAnimationEnd" | "pinchGestureEnabled" | "scrollEventThrottle" | "scrollIndicatorInsets" | "scrollToOverflowEnabled" | "scrollsToTop" | "snapToAlignment" | "onScrollToTop" | "zoomScale" | "endFillColor" | "scrollPerfTag" | "overScrollMode" | "nestedScrollEnabled" | "fadingEdgeLength" | "persistentScrollbar" | "refreshTimeout" | "changeData" | "keyboardAware"> & React.RefAttributes<ScrollView>>;
|
|
13
|
+
export declare const Scroll: React.ForwardRefExoticComponent<Pick<ScrollProps, "children" | "hitSlop" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "style" | "testID" | "nativeID" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "variants" | "responsiveVariants" | "component" | "css" | "is" | "not" | "up" | "down" | "onHover" | "styles" | "onContentSizeChange" | "onScroll" | "scrollEnabled" | "innerRef" | "viewIsInsideTabBar" | "resetScrollToCoords" | "enableResetScrollToCoords" | "enableAutomaticScroll" | "enableOnAndroid" | "extraHeight" | "extraScrollHeight" | "keyboardOpeningTime" | "onKeyboardWillShow" | "onKeyboardDidShow" | "onKeyboardWillHide" | "onKeyboardDidHide" | "onKeyboardWillChangeFrame" | "onKeyboardDidChangeFrame" | "onRefresh" | "refreshing" | "horizontal" | "contentContainerStyle" | "decelerationRate" | "invertStickyHeaders" | "keyboardDismissMode" | "keyboardShouldPersistTaps" | "onScrollBeginDrag" | "onScrollEndDrag" | "onMomentumScrollEnd" | "onMomentumScrollBegin" | "pagingEnabled" | "showsHorizontalScrollIndicator" | "showsVerticalScrollIndicator" | "stickyHeaderHiddenOnScroll" | "refreshControl" | "snapToInterval" | "snapToOffsets" | "snapToStart" | "snapToEnd" | "stickyHeaderIndices" | "disableIntervalMomentum" | "disableScrollViewPanResponder" | "StickyHeaderComponent" | "alwaysBounceHorizontal" | "alwaysBounceVertical" | "automaticallyAdjustContentInsets" | "automaticallyAdjustsScrollIndicatorInsets" | "bounces" | "bouncesZoom" | "canCancelContentTouches" | "centerContent" | "contentInset" | "contentOffset" | "contentInsetAdjustmentBehavior" | "directionalLockEnabled" | "indicatorStyle" | "maintainVisibleContentPosition" | "maximumZoomScale" | "minimumZoomScale" | "onScrollAnimationEnd" | "pinchGestureEnabled" | "scrollEventThrottle" | "scrollIndicatorInsets" | "scrollToOverflowEnabled" | "scrollsToTop" | "snapToAlignment" | "onScrollToTop" | "zoomScale" | "endFillColor" | "scrollPerfTag" | "overScrollMode" | "nestedScrollEnabled" | "fadingEdgeLength" | "persistentScrollbar" | "refreshTimeout" | "changeData" | "keyboardAware"> & React.RefAttributes<ScrollView>>;
|
|
@@ -40,7 +40,8 @@ var KeyboardAwareScrollView = react_native_keyboard_aware_scroll_view_1.Keyboard
|
|
|
40
40
|
exports.Scroll = (0, react_1.forwardRef)(function (scrollProps, ref) {
|
|
41
41
|
var _a = scrollProps.variants, variants = _a === void 0 ? [] : _a, style = scrollProps.style, _b = scrollProps.refreshTimeout, refreshTimeout = _b === void 0 ? 3000 : _b, children = scrollProps.children, changeData = scrollProps.changeData, styles = scrollProps.styles, _c = scrollProps.keyboardAware, keyboardAware = _c === void 0 ? true : _c, props = __rest(scrollProps, ["variants", "style", "refreshTimeout", "children", "changeData", "styles", "keyboardAware"]);
|
|
42
42
|
var hasRefresh = !!props.onRefresh;
|
|
43
|
-
var _d = (0, react_1.useState)(false),
|
|
43
|
+
var _d = (0, react_1.useState)(false), refreshingState = _d[0], setRefreshing = _d[1];
|
|
44
|
+
var refreshingDisplay = props.refreshing !== undefined ? props.refreshing : refreshingState;
|
|
44
45
|
var timer = React.useRef(null);
|
|
45
46
|
var previousData = (0, common_1.usePrevious)(changeData);
|
|
46
47
|
var onRefresh = function () {
|
|
@@ -54,13 +55,13 @@ exports.Scroll = (0, react_1.forwardRef)(function (scrollProps, ref) {
|
|
|
54
55
|
}, refreshTimeout);
|
|
55
56
|
};
|
|
56
57
|
(0, common_1.onUpdate)(function () {
|
|
57
|
-
if (
|
|
58
|
+
if (refreshingDisplay && !(0, common_1.deepEqual)(previousData, changeData)) {
|
|
58
59
|
setRefreshing(false);
|
|
59
60
|
if (timer.current) {
|
|
60
61
|
clearTimeout(timer.current);
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
|
-
}, [
|
|
64
|
+
}, [refreshingDisplay, changeData]);
|
|
64
65
|
var Theme = (0, common_1.useCodeleapContext)().Theme;
|
|
65
66
|
var variantStyles = (0, common_1.useDefaultComponentStyle)('View', {
|
|
66
67
|
variants: variants,
|
|
@@ -70,7 +71,7 @@ exports.Scroll = (0, react_1.forwardRef)(function (scrollProps, ref) {
|
|
|
70
71
|
rootElement: 'wrapper',
|
|
71
72
|
});
|
|
72
73
|
var Component = keyboardAware ? KeyboardAwareScrollView : react_native_1.ScrollView;
|
|
73
|
-
return (<Component style={[Theme.presets.full, style]} contentContainerStyle={[variantStyles.wrapper]} ref={ref} refreshControl={hasRefresh && (<react_native_1.RefreshControl refreshing={
|
|
74
|
+
return (<Component style={[Theme.presets.full, style]} contentContainerStyle={[variantStyles.wrapper]} ref={ref} refreshControl={hasRefresh && (<react_native_1.RefreshControl refreshing={refreshingDisplay} onRefresh={onRefresh}/>)} {...props}>
|
|
74
75
|
{children}
|
|
75
76
|
</Component>);
|
|
76
77
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scroll.js","sourceRoot":"","sources":["../../src/components/Scroll.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA8B;AAC9B,+BAA4C;AAC5C,2CAMyB;AAEzB,mGAIgD;AAChD,6CAAqF;
|
|
1
|
+
{"version":3,"file":"Scroll.js","sourceRoot":"","sources":["../../src/components/Scroll.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/components/List.tsx
CHANGED
|
@@ -23,6 +23,7 @@ export type FlatListProps<T = any> = RNFlatListProps<T> &
|
|
|
23
23
|
refreshTimeout?: number
|
|
24
24
|
changeData?: any
|
|
25
25
|
separators?: boolean
|
|
26
|
+
refreshing?: boolean
|
|
26
27
|
keyboardAware?: boolean
|
|
27
28
|
}
|
|
28
29
|
|
|
@@ -45,7 +46,8 @@ const ListCP = forwardRef<FlatList, FlatListProps>(
|
|
|
45
46
|
...props
|
|
46
47
|
} = flatListProps
|
|
47
48
|
const hasRefresh = !!props.onRefresh
|
|
48
|
-
const [
|
|
49
|
+
const [refreshingState, setRefreshing] = useState(false)
|
|
50
|
+
const refreshingDisplay = props.refreshing !== undefined ? props.refreshing : refreshingState
|
|
49
51
|
|
|
50
52
|
const timer = React.useRef(null)
|
|
51
53
|
const previousData = usePrevious(changeData)
|
|
@@ -64,13 +66,13 @@ const ListCP = forwardRef<FlatList, FlatListProps>(
|
|
|
64
66
|
}, refreshTimeout)
|
|
65
67
|
}
|
|
66
68
|
onUpdate(() => {
|
|
67
|
-
if (
|
|
69
|
+
if (refreshingDisplay && !deepEqual(previousData, changeData)) {
|
|
68
70
|
setRefreshing(false)
|
|
69
71
|
if (timer.current) {
|
|
70
72
|
clearTimeout(timer.current)
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
|
-
}, [
|
|
75
|
+
}, [refreshingDisplay, changeData])
|
|
74
76
|
const { Theme } = useCodeleapContext()
|
|
75
77
|
|
|
76
78
|
const variantStyles = useDefaultComponentStyle('View', {
|
|
@@ -97,7 +99,7 @@ const ListCP = forwardRef<FlatList, FlatListProps>(
|
|
|
97
99
|
ItemSeparatorComponent={separator}
|
|
98
100
|
refreshControl={
|
|
99
101
|
hasRefresh && (
|
|
100
|
-
<RefreshControl refreshing={
|
|
102
|
+
<RefreshControl refreshing={refreshingDisplay} onRefresh={onRefresh} />
|
|
101
103
|
)
|
|
102
104
|
}
|
|
103
105
|
{...props}
|
|
@@ -22,6 +22,7 @@ export type ScrollProps = KeyboardAwareScrollViewProps &
|
|
|
22
22
|
refreshTimeout?: number
|
|
23
23
|
changeData?: any
|
|
24
24
|
keyboardAware?: boolean
|
|
25
|
+
refreshing?: boolean
|
|
25
26
|
styles?: ViewStyle
|
|
26
27
|
}
|
|
27
28
|
|
|
@@ -47,7 +48,8 @@ export const Scroll = forwardRef<ScrollView, ScrollProps>(
|
|
|
47
48
|
...props
|
|
48
49
|
} = scrollProps
|
|
49
50
|
const hasRefresh = !!props.onRefresh
|
|
50
|
-
const [
|
|
51
|
+
const [refreshingState, setRefreshing] = useState(false)
|
|
52
|
+
const refreshingDisplay = props.refreshing !== undefined ? props.refreshing : refreshingState
|
|
51
53
|
|
|
52
54
|
const timer = React.useRef(null)
|
|
53
55
|
const previousData = usePrevious(changeData)
|
|
@@ -66,13 +68,13 @@ export const Scroll = forwardRef<ScrollView, ScrollProps>(
|
|
|
66
68
|
}, refreshTimeout)
|
|
67
69
|
}
|
|
68
70
|
onUpdate(() => {
|
|
69
|
-
if (
|
|
71
|
+
if (refreshingDisplay && !deepEqual(previousData, changeData)) {
|
|
70
72
|
setRefreshing(false)
|
|
71
73
|
if (timer.current) {
|
|
72
74
|
clearTimeout(timer.current)
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
|
-
}, [
|
|
77
|
+
}, [refreshingDisplay, changeData])
|
|
76
78
|
const { Theme } = useCodeleapContext()
|
|
77
79
|
|
|
78
80
|
const variantStyles = useDefaultComponentStyle('View', {
|
|
@@ -92,7 +94,7 @@ export const Scroll = forwardRef<ScrollView, ScrollProps>(
|
|
|
92
94
|
ref={ref as unknown as ScrollView}
|
|
93
95
|
refreshControl={
|
|
94
96
|
hasRefresh && (
|
|
95
|
-
<RefreshControl refreshing={
|
|
97
|
+
<RefreshControl refreshing={refreshingDisplay} onRefresh={onRefresh} />
|
|
96
98
|
)
|
|
97
99
|
}
|
|
98
100
|
{...props}
|