react-native-ui-lib 7.46.2-snapshot.7306 → 7.46.2-snapshot.7314
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/babel.config.js +12 -0
- package/index.js +1 -0
- package/lib/android/build.gradle +5 -5
- package/lib/android/src/main/java/com/wix/reactnativeuilib/UiLibPackageList.java +0 -2
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.java +31 -23
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java +1 -1
- package/lib/components/{HighlighterOverlayView.d.ts → HighlighterOverlayView/index.d.ts} +1 -1
- package/lib/components/HighlighterOverlayView/index.js +49 -0
- package/lib/components/{HighlighterOverlayView.web.d.ts → HighlighterOverlayView/index.web.d.ts} +1 -1
- package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/CustomKeyboardView.android.d.ts +5 -2
- package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.android.js +51 -0
- package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/CustomKeyboardView.ios.d.ts +1 -1
- package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/CustomKeyboardView.ios.js +3 -3
- package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView/CustomKeyboardView}/CustomKeyboardViewBase.d.ts +3 -0
- package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView/CustomKeyboardView}/CustomKeyboardViewBase.js +1 -1
- package/lib/components/Keyboard/{KeyboardInput/utils → KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager}/__tests__/EventEmitterManager.spec.js +1 -1
- package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView/KeyboardRegistry}/__tests__/KeyboardRegistry.spec.js +1 -1
- package/lib/components/Keyboard/{KeyboardInput/KeyboardRegistry.d.ts → KeyboardAccessoryView/KeyboardRegistry/index.d.ts} +1 -1
- package/lib/components/Keyboard/{KeyboardInput/KeyboardRegistry.js → KeyboardAccessoryView/KeyboardRegistry/index.js} +1 -1
- package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView/KeyboardRegistry}/keyboardRegistry.api.json +9 -9
- package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardUtils/index.d.ts +26 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardUtils/index.js +91 -0
- package/lib/components/Keyboard/{KeyboardInput/KeyboardAccessoryView.d.ts → KeyboardAccessoryView/index.d.ts} +11 -1
- package/lib/components/Keyboard/{KeyboardInput/KeyboardAccessoryView.js → KeyboardAccessoryView/index.js} +31 -5
- package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/keyboardAccessoryView.api.json +5 -5
- package/lib/components/Keyboard/{KeyboardTracking/KeyboardAwareInsetsView.d.ts → KeyboardAwareInsetsView/index.d.ts} +1 -1
- package/lib/components/Keyboard/{KeyboardTracking/KeyboardAwareInsetsView.js → KeyboardAwareInsetsView/index.js} +1 -1
- package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/KeyboardTrackingView.ios.d.ts +1 -4
- package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/KeyboardTrackingView.ios.js +5 -8
- package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/index.d.ts +2 -2
- package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/keyboardTrackingView.api.json +11 -20
- package/lib/components/Keyboard/index.d.ts +6 -6
- package/lib/components/Keyboard/index.js +6 -6
- package/lib/components/SafeArea/SafeAreaInsetsManager.d.ts +21 -7
- package/lib/components/SafeArea/SafeAreaInsetsManager.js +95 -31
- package/lib/components/SafeArea/SafeAreaSpacerView.d.ts +2 -2
- package/lib/components/SafeArea/SafeAreaSpacerView.js +63 -9
- package/lib/components/SafeArea/__tests__/SafeAreaInsetsManager.spec.js +274 -0
- package/lib/components/SafeArea/index.d.ts +10 -0
- package/lib/components/SafeArea/index.js +11 -0
- package/lib/components/index.d.ts +1 -1
- package/lib/components/index.js +1 -1
- package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.m +52 -8
- package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.h +1 -7
- package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.m +1 -1
- package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.m +109 -41
- package/lib/package.json +1 -1
- package/lib/react-native.config.js +1 -3
- package/metro.config.js +2 -2
- package/package.json +24 -24
- package/panView.d.ts +2 -0
- package/panView.js +1 -0
- package/react-native.config.js +1 -3
- package/src/commons/Constants.js +2 -5
- package/src/components/KeyboardAwareScrollView/KeyboardAwareBase.js +5 -1
- package/src/components/actionSheet/index.d.ts +2 -12
- package/src/components/actionSheet/index.js +3 -42
- package/src/components/badge/index.d.ts +107 -47
- package/src/components/button/button.api.json +1 -1
- package/src/components/button/index.d.ts +53 -23
- package/src/components/button/types.d.ts +0 -1
- package/src/components/colorPicker/ColorPickerDialog.d.ts +1 -1
- package/src/components/colorPicker/ColorPickerDialog.js +1 -1
- package/src/components/dateTimePicker/index.d.ts +186 -5
- package/src/components/dateTimePicker/index.js +3 -4
- package/src/components/dialog/dialog.api.json +31 -37
- package/src/{incubator → components}/dialog/dialogHeader.api.json +2 -2
- package/src/components/dialog/index.d.ts +13 -105
- package/src/components/dialog/index.js +204 -212
- package/src/{incubator → components}/dialog/types.d.ts +0 -19
- package/src/{incubator → components}/dialog/types.js +1 -3
- package/src/{incubator → components}/dialog/useDialogContent.d.ts +1 -1
- package/src/components/drawer/Swipeable.js +1 -2
- package/src/components/drawer/index.js +31 -25
- package/src/components/fadedScrollView/index.js +7 -2
- package/src/components/featureHighlight/index.d.ts +1 -1
- package/src/components/index.js +0 -19
- package/src/components/modal/index.d.ts +5 -0
- package/src/components/modal/index.js +14 -10
- package/src/components/modal/modal.api.json +5 -0
- package/src/{incubator → components}/panView/index.d.ts +3 -3
- package/src/{incubator → components}/panView/index.js +4 -4
- package/src/{incubator → components}/panView/usePanGesture.d.ts +1 -1
- package/src/components/picker/Picker.driver.new.d.ts +2 -2
- package/src/components/picker/Picker.driver.new.js +3 -3
- package/src/components/picker/PickerItem.js +6 -20
- package/src/components/picker/PickerPresenter.d.ts +0 -1
- package/src/components/picker/PickerPresenter.js +1 -23
- package/src/components/picker/api/picker.api.json +0 -1
- package/src/components/picker/api/pickerItem.api.json +0 -5
- package/src/components/picker/helpers/useFieldType.d.ts +53 -23
- package/src/components/picker/helpers/usePickerLabel.d.ts +1 -1
- package/src/components/picker/helpers/usePickerLabel.js +2 -3
- package/src/components/picker/helpers/usePickerMigrationWarnings.d.ts +1 -1
- package/src/components/picker/helpers/usePickerMigrationWarnings.js +0 -12
- package/src/components/picker/helpers/usePickerSearch.d.ts +1 -1
- package/src/components/picker/helpers/usePickerSearch.js +4 -8
- package/src/components/picker/helpers/usePickerSelection.d.ts +1 -1
- package/src/components/picker/helpers/usePickerSelection.js +2 -10
- package/src/components/picker/index.js +4 -22
- package/src/components/picker/types.d.ts +1 -24
- package/src/components/segmentedControl/index.js +3 -3
- package/src/components/slider/GradientSlider.d.ts +1 -1
- package/src/components/sortableGridList/SortableItem.js +13 -4
- package/src/components/sortableList/SortableListItem.js +13 -4
- package/src/components/stackAggregator/index.js +16 -11
- package/src/components/text/Text.driver.new.d.ts +2 -2
- package/src/components/text/Text.driver.new.js +2 -2
- package/src/components/textField/Input.js +0 -1
- package/src/components/textField/TextField.driver.new.d.ts +2 -2
- package/src/components/textField/TextField.driver.new.js +2 -2
- package/src/components/textField/presets/outline.d.ts +106 -46
- package/src/components/textField/presets/underline.d.ts +106 -46
- package/src/components/textField/usePreset.d.ts +72 -44
- package/src/{incubator/hooks/useHiddenLocation.web.d.ts → hooks/useHiddenLocation/index.d.ts} +1 -1
- package/src/{incubator/hooks/useHiddenLocation.d.ts → hooks/useHiddenLocation/index.web.d.ts} +1 -1
- package/src/incubator/expandableOverlay/ExpandableOverlay.driver.js +1 -1
- package/src/incubator/expandableOverlay/index.d.ts +42 -3
- package/src/incubator/expandableOverlay/index.js +1 -4
- package/src/incubator/index.d.ts +0 -2
- package/src/incubator/index.js +0 -2
- package/src/incubator/toast/index.js +1 -1
- package/src/index.d.ts +3 -10
- package/src/index.js +41 -160
- package/src/testkit/index.d.ts +1 -1
- package/src/testkit/index.js +1 -1
- package/src/testkit/new/Component.driver.d.ts +4 -1
- package/src/testkit/new/Component.driver.js +3 -3
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/ReactHacks.java +0 -30
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/ReflectionUtils.java +0 -34
- package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/DefaultKeyListener.java +0 -33
- package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/KeyListenerProxy.java +0 -53
- package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerModule.java +0 -54
- package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerPackage.java +0 -28
- package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/ViewUtils.java +0 -36
- package/lib/components/HighlighterOverlayView.js +0 -40
- package/lib/components/Keyboard/KeyboardInput/CustomKeyboardView/CustomKeyboardView.android.js +0 -28
- package/lib/components/Keyboard/KeyboardInput/utils/KeyboardUtils.d.ts +0 -11
- package/lib/components/Keyboard/KeyboardInput/utils/KeyboardUtils.js +0 -17
- package/panningViews.d.ts +0 -2
- package/panningViews.js +0 -1
- package/sharedTransition.d.ts +0 -2
- package/sharedTransition.js +0 -1
- package/src/components/dialog/DialogDismissibleView.d.ts +0 -34
- package/src/components/dialog/DialogDismissibleView.js +0 -184
- package/src/components/dialog/OverlayFadingBackground.d.ts +0 -14
- package/src/components/dialog/OverlayFadingBackground.js +0 -45
- package/src/components/panningViews/asPanViewConsumer.d.ts +0 -3
- package/src/components/panningViews/asPanViewConsumer.js +0 -16
- package/src/components/panningViews/panDismissibleView.d.ts +0 -51
- package/src/components/panningViews/panDismissibleView.js +0 -350
- package/src/components/panningViews/panGestureView.d.ts +0 -23
- package/src/components/panningViews/panGestureView.js +0 -156
- package/src/components/panningViews/panListenerView.d.ts +0 -66
- package/src/components/panningViews/panListenerView.js +0 -155
- package/src/components/panningViews/panResponderView.d.ts +0 -19
- package/src/components/panningViews/panResponderView.js +0 -79
- package/src/components/panningViews/panningContext.d.ts +0 -3
- package/src/components/panningViews/panningContext.js +0 -4
- package/src/components/panningViews/panningProvider.d.ts +0 -73
- package/src/components/panningViews/panningProvider.js +0 -101
- package/src/components/sharedTransition/ShareTransitionContext.js +0 -3
- package/src/components/sharedTransition/SharedArea.js +0 -153
- package/src/components/sharedTransition/SourceElement.js +0 -44
- package/src/components/sharedTransition/TargetElement.js +0 -38
- package/src/components/sharedTransition/index.js +0 -9
- package/src/incubator/dialog/dialog.api.json +0 -54
- package/src/incubator/dialog/index.d.ts +0 -15
- package/src/incubator/dialog/index.js +0 -218
- /package/lib/components/{HighlighterOverlayView.web.js → HighlighterOverlayView/index.web.js} +0 -0
- /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/index.d.ts +0 -0
- /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/index.js +0 -0
- /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/index.web.d.ts +0 -0
- /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/index.web.js +0 -0
- /package/lib/components/Keyboard/{KeyboardInput/utils/EventEmitterManager.d.ts → KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager/index.d.ts} +0 -0
- /package/lib/components/Keyboard/{KeyboardInput/utils/EventEmitterManager.js → KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager/index.js} +0 -0
- /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/TextInputKeyboardManager.android.d.ts +0 -0
- /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/TextInputKeyboardManager.android.js +0 -0
- /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/TextInputKeyboardManager.ios.d.ts +0 -0
- /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/TextInputKeyboardManager.ios.js +0 -0
- /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/index.d.ts +0 -0
- /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/index.js +0 -0
- /package/lib/components/Keyboard/{KeyboardTracking → KeyboardAwareInsetsView}/keyboardAwareInsetsView.api.json +0 -0
- /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/KeyboardTrackingView.android.d.ts +0 -0
- /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/KeyboardTrackingView.android.js +0 -0
- /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/index.js +0 -0
- /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/index.web.d.ts +0 -0
- /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/index.web.js +0 -0
- /package/src/{incubator → components}/dialog/Dialog.driver.new.d.ts +0 -0
- /package/src/{incubator → components}/dialog/Dialog.driver.new.js +0 -0
- /package/src/{incubator → components}/dialog/DialogHeader.d.ts +0 -0
- /package/src/{incubator → components}/dialog/DialogHeader.js +0 -0
- /package/src/{incubator → components}/dialog/useDialogContent.js +0 -0
- /package/src/{incubator → components}/panView/panningUtil.d.ts +0 -0
- /package/src/{incubator → components}/panView/panningUtil.js +0 -0
- /package/src/{incubator → components}/panView/usePanGesture.js +0 -0
- /package/src/{incubator/hooks/useHiddenLocation.js → hooks/useHiddenLocation/index.js} +0 -0
- /package/src/{incubator/hooks/useHiddenLocation.web.js → hooks/useHiddenLocation/index.web.js} +0 -0
|
@@ -1,226 +1,218 @@
|
|
|
1
|
-
import
|
|
2
|
-
import React, { Component } from 'react';
|
|
1
|
+
import React, { useMemo, useCallback, useImperativeHandle, forwardRef, useEffect, useState } from 'react';
|
|
3
2
|
import { StyleSheet } from 'react-native';
|
|
4
|
-
import
|
|
3
|
+
import hoistStatics from 'hoist-non-react-statics';
|
|
4
|
+
import { Extrapolation, interpolate, runOnJS, useAnimatedStyle, useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
|
|
5
|
+
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
6
|
+
import { Spacings, Colors, BorderRadiuses } from "../../style";
|
|
7
|
+
import { useDidUpdate } from "../../hooks";
|
|
8
|
+
import { asBaseComponent, Constants } from "../../commons/new";
|
|
9
|
+
import View from "../../components/view";
|
|
10
|
+
import Modal from "../../components/modal";
|
|
5
11
|
import { extractAlignmentsValues } from "../../commons/modifiers";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
import useHiddenLocation from "../../hooks/useHiddenLocation";
|
|
13
|
+
import DialogHeader from "./DialogHeader";
|
|
14
|
+
import useDialogContent from "./useDialogContent";
|
|
15
|
+
import { DialogProps, DialogDirections, DialogDirectionsEnum, DialogHeaderProps } from "./types";
|
|
16
|
+
export { DialogProps, DialogDirections, DialogDirectionsEnum, DialogHeaderProps };
|
|
17
|
+
const THRESHOLD_VELOCITY = 750;
|
|
18
|
+
const Dialog = (props, ref) => {
|
|
19
|
+
const {
|
|
20
|
+
visible = false,
|
|
21
|
+
headerProps,
|
|
22
|
+
showCloseButton,
|
|
23
|
+
closeButtonProps,
|
|
24
|
+
containerStyle: propsContainerStyle,
|
|
25
|
+
containerProps: propsContainerProps,
|
|
26
|
+
width,
|
|
27
|
+
height,
|
|
28
|
+
onDismiss,
|
|
29
|
+
direction = DialogDirectionsEnum.DOWN,
|
|
30
|
+
ignoreBackgroundPress,
|
|
31
|
+
modalProps = {},
|
|
32
|
+
useSafeArea,
|
|
33
|
+
testID,
|
|
34
|
+
children
|
|
35
|
+
} = props;
|
|
36
|
+
const {
|
|
37
|
+
overlayBackgroundColor = Colors.rgba(Colors.grey10, 0.65),
|
|
38
|
+
...otherModalProps
|
|
39
|
+
} = modalProps;
|
|
40
|
+
const visibility = useSharedValue(0); // value between 0 (closed) and 1 (open)
|
|
41
|
+
const initialTranslation = useSharedValue(0);
|
|
42
|
+
const [modalVisibility, setModalVisibility] = useState(visible); // unfortunately this is needed when changing visibility by the user (clicking on an option etc)
|
|
14
43
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
44
|
+
const {
|
|
45
|
+
setRef,
|
|
46
|
+
onLayout,
|
|
47
|
+
hiddenLocation: _hiddenLocation
|
|
48
|
+
} = useHiddenLocation();
|
|
49
|
+
const hiddenLocation = _hiddenLocation[direction];
|
|
50
|
+
const wasMeasured = _hiddenLocation.wasMeasured;
|
|
51
|
+
const isVertical = useMemo(() => {
|
|
52
|
+
'worklet';
|
|
20
53
|
|
|
21
|
-
|
|
54
|
+
return direction === DialogDirectionsEnum.DOWN || direction === DialogDirectionsEnum.UP;
|
|
55
|
+
}, [direction]);
|
|
56
|
+
const getTranslationInterpolation = useCallback(value => {
|
|
57
|
+
'worklet';
|
|
22
58
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
};
|
|
44
|
-
this.styles = createStyles(this.props);
|
|
45
|
-
this.setAlignment();
|
|
46
|
-
}
|
|
47
|
-
UNSAFE_componentWillReceiveProps(nextProps) {
|
|
48
|
-
const {
|
|
49
|
-
visible: nexVisible
|
|
50
|
-
} = nextProps;
|
|
51
|
-
const {
|
|
52
|
-
visible
|
|
53
|
-
} = this.props;
|
|
54
|
-
if (nexVisible && !visible) {
|
|
55
|
-
this.setState({
|
|
56
|
-
modalVisibility: true,
|
|
57
|
-
dialogVisibility: true
|
|
58
|
-
});
|
|
59
|
-
} else if (visible && !nexVisible) {
|
|
60
|
-
this.hideDialogView();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
setAlignment() {
|
|
64
|
-
const {
|
|
65
|
-
alignments
|
|
66
|
-
} = this.state;
|
|
67
|
-
if (_isEmpty(alignments)) {
|
|
68
|
-
this.styles.alignments = this.styles.centerContent;
|
|
69
|
-
} else {
|
|
70
|
-
this.styles.alignments = alignments;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
59
|
+
return interpolate(value, [0, 1], [hiddenLocation, 0], Extrapolation.CLAMP);
|
|
60
|
+
}, [hiddenLocation]);
|
|
61
|
+
const getTranslationReverseInterpolation = useCallback(value => {
|
|
62
|
+
'worklet';
|
|
63
|
+
|
|
64
|
+
return interpolate(value, [hiddenLocation, 0], [0, 1]);
|
|
65
|
+
}, [hiddenLocation]);
|
|
66
|
+
const _onDismiss = useCallback(() => {
|
|
67
|
+
'worklet';
|
|
68
|
+
|
|
69
|
+
runOnJS(setModalVisibility)(false);
|
|
70
|
+
}, []);
|
|
71
|
+
const close = useCallback(() => {
|
|
72
|
+
'worklet';
|
|
73
|
+
|
|
74
|
+
visibility.value = withTiming(0, undefined, _onDismiss);
|
|
75
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
76
|
+
}, [_onDismiss]);
|
|
77
|
+
const open = useCallback(() => {
|
|
78
|
+
'worklet';
|
|
73
79
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
visibility.value = withSpring(1);
|
|
81
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
82
|
+
}, []);
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
if (visible) {
|
|
85
|
+
setModalVisibility(true);
|
|
86
|
+
} else if (wasMeasured && modalVisibility) {
|
|
87
|
+
// Close when sending visible = false
|
|
88
|
+
close();
|
|
81
89
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
props.onDismiss?.(props);
|
|
91
|
-
}
|
|
92
|
-
// Parity with iOS Modal's onDismiss
|
|
93
|
-
if (Constants.isAndroid) {
|
|
94
|
-
props.onDialogDismissed?.(props);
|
|
90
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
91
|
+
}, [visible, wasMeasured]);
|
|
92
|
+
useDidUpdate(() => {
|
|
93
|
+
if (wasMeasured) {
|
|
94
|
+
if (modalVisibility) {
|
|
95
|
+
open();
|
|
96
|
+
} else if (Constants.isAndroid) {
|
|
97
|
+
onDismiss?.();
|
|
95
98
|
}
|
|
96
|
-
});
|
|
97
|
-
};
|
|
98
|
-
onDismiss = () => {
|
|
99
|
-
const fadeOut = Constants.isIOS && this.props.visible;
|
|
100
|
-
if (fadeOut) {
|
|
101
|
-
this.setState({
|
|
102
|
-
fadeOut
|
|
103
|
-
}, this._onDismiss);
|
|
104
|
-
} else {
|
|
105
|
-
this._onDismiss();
|
|
106
99
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
100
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
101
|
+
}, [modalVisibility, wasMeasured]);
|
|
102
|
+
const alignmentStyle = useMemo(() => {
|
|
103
|
+
return {
|
|
104
|
+
flex: 1,
|
|
105
|
+
alignItems: 'center',
|
|
106
|
+
...extractAlignmentsValues(props)
|
|
107
|
+
};
|
|
108
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
109
|
+
}, []);
|
|
110
|
+
const {
|
|
111
|
+
renderDialogContent,
|
|
112
|
+
containerProps,
|
|
113
|
+
containerStyle
|
|
114
|
+
} = useDialogContent({
|
|
115
|
+
showCloseButton,
|
|
116
|
+
close,
|
|
117
|
+
closeButtonProps,
|
|
118
|
+
containerStyle: propsContainerStyle,
|
|
119
|
+
containerProps: propsContainerProps,
|
|
120
|
+
headerProps,
|
|
121
|
+
children
|
|
122
|
+
});
|
|
123
|
+
const animatedStyle = useAnimatedStyle(() => {
|
|
124
|
+
if (isVertical) {
|
|
125
|
+
return {
|
|
126
|
+
transform: [{
|
|
127
|
+
translateY: getTranslationInterpolation(visibility.value)
|
|
128
|
+
}]
|
|
129
|
+
};
|
|
130
|
+
} else {
|
|
131
|
+
return {
|
|
132
|
+
transform: [{
|
|
133
|
+
translateX: getTranslationInterpolation(visibility.value)
|
|
134
|
+
}]
|
|
135
|
+
};
|
|
129
136
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
return <View testID={testID} style={[this.styles.dialogViewSize]} pointerEvents="box-none">
|
|
144
|
-
<PanningProvider>
|
|
145
|
-
<DialogDismissibleView direction={panDirection} visible={dialogVisibility} onDismiss={this.onDismiss} containerStyle={this.styles.flexType} style={this.styles.flexType}>
|
|
146
|
-
<Container directions={[panDirection]} style={[this.styles.overflow, !Constants.isWeb && this.styles.flexType, containerStyle]}>
|
|
147
|
-
{this.renderPannableHeader([panDirection])}
|
|
148
|
-
{children}
|
|
149
|
-
</Container>
|
|
150
|
-
</DialogDismissibleView>
|
|
151
|
-
</PanningProvider>
|
|
152
|
-
</View>;
|
|
153
|
-
};
|
|
137
|
+
});
|
|
138
|
+
const style = useMemo(() => {
|
|
139
|
+
return [styles.defaultDialogStyle, {
|
|
140
|
+
backgroundColor: Colors.$backgroundDefault
|
|
141
|
+
}, containerStyle, animatedStyle, width ? {
|
|
142
|
+
width
|
|
143
|
+
} : undefined, height ? {
|
|
144
|
+
height
|
|
145
|
+
} : undefined];
|
|
146
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
147
|
+
}, [containerStyle, width, height]);
|
|
148
|
+
const shouldClose = event => {
|
|
149
|
+
'worklet';
|
|
154
150
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
{addBottomSafeArea && <View style={{
|
|
175
|
-
marginTop: bottomInsets
|
|
176
|
-
}} />}
|
|
177
|
-
</View>;
|
|
178
|
-
};
|
|
179
|
-
render = () => {
|
|
180
|
-
const {
|
|
181
|
-
modalVisibility
|
|
182
|
-
} = this.state;
|
|
183
|
-
const {
|
|
184
|
-
testID,
|
|
185
|
-
supportedOrientations,
|
|
186
|
-
accessibilityLabel,
|
|
187
|
-
ignoreBackgroundPress,
|
|
188
|
-
modalProps
|
|
189
|
-
} = this.props;
|
|
190
|
-
const onBackgroundPress = !ignoreBackgroundPress ? this.hideDialogView : undefined;
|
|
191
|
-
return <Modal testID={`${testID}.modal`} transparent visible={modalVisibility} animationType={'none'} onBackgroundPress={onBackgroundPress} onRequestClose={onBackgroundPress} supportedOrientations={supportedOrientations} accessibilityLabel={accessibilityLabel} {...modalProps}>
|
|
192
|
-
{this.renderDialogContainer()}
|
|
193
|
-
</Modal>;
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
function createStyles(props) {
|
|
197
|
-
const {
|
|
198
|
-
width = '90%',
|
|
199
|
-
height
|
|
200
|
-
} = props;
|
|
201
|
-
const flexType = height ? {
|
|
202
|
-
flex: 1
|
|
203
|
-
} : {
|
|
204
|
-
flex: 0
|
|
151
|
+
const wasPannedOverThreshold = Math.abs(getTranslationInterpolation(visibility.value)) >= Math.abs(hiddenLocation / 3);
|
|
152
|
+
let velocity;
|
|
153
|
+
switch (direction) {
|
|
154
|
+
case DialogDirectionsEnum.DOWN:
|
|
155
|
+
default:
|
|
156
|
+
velocity = event.velocityY;
|
|
157
|
+
break;
|
|
158
|
+
case DialogDirectionsEnum.UP:
|
|
159
|
+
velocity = -event.velocityY;
|
|
160
|
+
break;
|
|
161
|
+
case DialogDirectionsEnum.LEFT:
|
|
162
|
+
velocity = -event.velocityX;
|
|
163
|
+
break;
|
|
164
|
+
case DialogDirectionsEnum.RIGHT:
|
|
165
|
+
velocity = event.velocityX;
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
const wasFlung = velocity >= THRESHOLD_VELOCITY;
|
|
169
|
+
return wasPannedOverThreshold || wasFlung;
|
|
205
170
|
};
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
centerHorizontal: {
|
|
216
|
-
alignItems: 'center'
|
|
217
|
-
},
|
|
218
|
-
centerContent: {
|
|
219
|
-
justifyContent: 'center'
|
|
220
|
-
},
|
|
221
|
-
overflow: {
|
|
222
|
-
overflow: 'hidden'
|
|
171
|
+
const panGesture = Gesture.Pan().onStart(event => {
|
|
172
|
+
initialTranslation.value = getTranslationReverseInterpolation(isVertical ? event.translationY : event.translationX) - visibility.value;
|
|
173
|
+
}).onUpdate(event => {
|
|
174
|
+
visibility.value = getTranslationReverseInterpolation(isVertical ? event.translationY : event.translationX) - initialTranslation.value;
|
|
175
|
+
}).onEnd(event => {
|
|
176
|
+
if (shouldClose(event)) {
|
|
177
|
+
close();
|
|
178
|
+
} else {
|
|
179
|
+
open();
|
|
223
180
|
}
|
|
224
181
|
});
|
|
225
|
-
|
|
226
|
-
|
|
182
|
+
useImperativeHandle(ref, () => ({
|
|
183
|
+
dismiss: close
|
|
184
|
+
}));
|
|
185
|
+
const renderDialog = () => <GestureDetector gesture={panGesture}>
|
|
186
|
+
<View {...containerProps} reanimated={!Constants.accessibility.isReduceMotionEnabled} style={style} onLayout={onLayout} ref={setRef} testID={testID}>
|
|
187
|
+
{renderDialogContent()}
|
|
188
|
+
</View>
|
|
189
|
+
</GestureDetector>;
|
|
190
|
+
const overlayStyle = useAnimatedStyle(() => {
|
|
191
|
+
return {
|
|
192
|
+
opacity: visibility.value,
|
|
193
|
+
backgroundColor: overlayBackgroundColor
|
|
194
|
+
};
|
|
195
|
+
}, [overlayBackgroundColor]);
|
|
196
|
+
const renderOverlayView = () => <View testID={`${testID}.overlayFadingBackground`} absF reanimated style={overlayStyle} pointerEvents="none" />;
|
|
197
|
+
return <Modal transparent animationType={'none'} {...otherModalProps} testID={`${testID}.modal`} useGestureHandlerRootView visible={modalVisibility} onBackgroundPress={ignoreBackgroundPress ? undefined : close} onRequestClose={ignoreBackgroundPress ? undefined : close} onDismiss={onDismiss}>
|
|
198
|
+
{renderOverlayView()}
|
|
199
|
+
<View useSafeArea={useSafeArea} pointerEvents={'box-none'} style={alignmentStyle}>
|
|
200
|
+
{renderDialog()}
|
|
201
|
+
</View>
|
|
202
|
+
</Modal>;
|
|
203
|
+
};
|
|
204
|
+
Dialog.displayName = 'Dialog';
|
|
205
|
+
Dialog.directions = DialogDirectionsEnum;
|
|
206
|
+
Dialog.Header = DialogHeader;
|
|
207
|
+
const _Dialog = forwardRef(Dialog);
|
|
208
|
+
hoistStatics(_Dialog, Dialog);
|
|
209
|
+
export default asBaseComponent(_Dialog);
|
|
210
|
+
const styles = StyleSheet.create({
|
|
211
|
+
defaultDialogStyle: {
|
|
212
|
+
marginBottom: Spacings.s5,
|
|
213
|
+
maxHeight: '60%',
|
|
214
|
+
width: 250,
|
|
215
|
+
borderRadius: BorderRadiuses.br20,
|
|
216
|
+
overflow: 'hidden'
|
|
217
|
+
}
|
|
218
|
+
});
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { PropsWithChildren, ReactElement } from 'react';
|
|
2
2
|
import { type DimensionValue, type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
|
|
3
3
|
import { AlignmentModifiers } from '../../commons/modifiers';
|
|
4
|
-
import { DialogProps as DialogPropsOld } from '../../components/dialog';
|
|
5
4
|
import { ButtonProps } from '../../components/button';
|
|
6
5
|
import { ModalProps } from '../../components/modal';
|
|
7
6
|
import { PanningDirections, PanningDirectionsEnum } from '../panView';
|
|
@@ -130,21 +129,3 @@ export interface _DialogProps extends AlignmentModifiers, Pick<ViewProps, 'useSa
|
|
|
130
129
|
testID?: string;
|
|
131
130
|
}
|
|
132
131
|
export type DialogProps = PropsWithChildren<_DialogProps>;
|
|
133
|
-
export interface _DialogPropsOld {
|
|
134
|
-
/**
|
|
135
|
-
* The props to pass to the dialog expandable container
|
|
136
|
-
*/
|
|
137
|
-
dialogProps?: DialogPropsOld;
|
|
138
|
-
migrateDialog?: false;
|
|
139
|
-
}
|
|
140
|
-
export interface _DialogPropsNew {
|
|
141
|
-
/**
|
|
142
|
-
* The props to pass to the dialog expandable container
|
|
143
|
-
*/
|
|
144
|
-
dialogProps?: DialogProps;
|
|
145
|
-
/**
|
|
146
|
-
* Migrate the Dialog to DialogNew (make sure you use only new props in dialogProps)
|
|
147
|
-
*/
|
|
148
|
-
migrateDialog: true;
|
|
149
|
-
}
|
|
150
|
-
export type DialogMigrationProps = _DialogPropsOld | _DialogPropsNew;
|
|
@@ -5,7 +5,7 @@ interface InternalDialogCloseButtonProps extends PropsWithChildren<DialogCloseBu
|
|
|
5
5
|
}
|
|
6
6
|
declare const useDialogContent: (props: InternalDialogCloseButtonProps) => {
|
|
7
7
|
renderDialogContent: () => React.JSX.Element;
|
|
8
|
-
containerStyle: false | import("react-native").ViewStyle | import("react-native").RegisteredStyle<import("react-native").ViewStyle> | import("react-native").RecursiveArray<import("react-native").ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle<import("react-native").ViewStyle>> | (import("react-native").StyleProp<import("react-native").ViewStyle> | {
|
|
8
|
+
containerStyle: false | "" | import("react-native").ViewStyle | import("react-native").RegisteredStyle<import("react-native").ViewStyle> | import("react-native").RecursiveArray<import("react-native").ViewStyle | import("react-native").Falsy | import("react-native").RegisteredStyle<import("react-native").ViewStyle>> | (import("react-native").StyleProp<import("react-native").ViewStyle> | {
|
|
9
9
|
backgroundColor: string;
|
|
10
10
|
})[] | null | undefined;
|
|
11
11
|
containerProps: Omit<import("../../components/view").ViewProps, "style" | "testID" | "ref" | "onLayout" | "animated" | "reanimated"> | undefined;
|
|
@@ -220,30 +220,33 @@ class Drawer extends PureComponent {
|
|
|
220
220
|
outputRange,
|
|
221
221
|
extrapolate: 'clamp'
|
|
222
222
|
});
|
|
223
|
-
return <RectButton key={index} testID={item.testID}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
223
|
+
return <RectButton key={index} testID={item.testID} onPress={() => this.onActionPress(item)}>
|
|
224
|
+
<View style={[styles.action, item.style, {
|
|
225
|
+
backgroundColor: item.background || DEFAULT_BG,
|
|
226
|
+
height: '100%',
|
|
227
|
+
width: item.width,
|
|
228
|
+
minWidth: itemsMinWidth
|
|
229
|
+
}]}>
|
|
230
|
+
{item.customElement}
|
|
231
|
+
{!item.customElement && item.icon && <Animated.Image source={item.icon} style={[styles.actionIcon, {
|
|
232
|
+
width: itemsIconSize,
|
|
233
|
+
height: itemsIconSize,
|
|
234
|
+
tintColor: item.iconColor || itemsTintColor,
|
|
235
|
+
opacity,
|
|
236
|
+
transform: [{
|
|
237
|
+
scale
|
|
238
|
+
}]
|
|
239
|
+
}]} />}
|
|
240
|
+
{!item.customElement && item.text && <Animated.Text style={[styles.actionText, {
|
|
241
|
+
color: item.textColor || itemsTintColor,
|
|
242
|
+
opacity,
|
|
243
|
+
transform: [{
|
|
244
|
+
scale
|
|
245
|
+
}]
|
|
246
|
+
}, itemsTextStyle]} accessibilityElementsHidden importantForAccessibility="no-hide-descendants" accessible={false}>
|
|
247
|
+
{item.text}
|
|
248
|
+
</Animated.Text>}
|
|
249
|
+
</View>
|
|
247
250
|
</RectButton>;
|
|
248
251
|
};
|
|
249
252
|
render() {
|
|
@@ -255,7 +258,7 @@ class Drawer extends PureComponent {
|
|
|
255
258
|
onToggleSwipeLeft,
|
|
256
259
|
...others
|
|
257
260
|
} = this.props;
|
|
258
|
-
return <GestureHandlerRootView>
|
|
261
|
+
return <GestureHandlerRootView style={styles.container}>
|
|
259
262
|
<Swipeable {...others} ref={this._swipeableRow} friction={1} containerStyle={style} animationOptions={this.animationOptions} renderLeftActions={this.leftRender} renderRightActions={this.rightRender} rightActionsContainerStyle={this.getRightActionsContainerStyle(rightItems, leftItem)} leftActionsContainerStyle={this.getLeftActionsContainerStyle(leftItem, rightItems)} onSwipeableWillOpen={this.onSwipeableWillOpen} onSwipeableWillClose={this.onSwipeableWillClose} onToggleSwipeLeft={onToggleSwipeLeft && this.onToggleSwipeLeft}>
|
|
260
263
|
<View accessible accessibilityActions={this.getAccessibilityActions()} onAccessibilityAction={this.onAccessibilityAction} {...extractAccessibilityProps(this.props)}>
|
|
261
264
|
{children}
|
|
@@ -266,6 +269,9 @@ class Drawer extends PureComponent {
|
|
|
266
269
|
}
|
|
267
270
|
export default asBaseComponent(Drawer);
|
|
268
271
|
const styles = StyleSheet.create({
|
|
272
|
+
container: {
|
|
273
|
+
flex: 0
|
|
274
|
+
},
|
|
269
275
|
leftAction: {
|
|
270
276
|
flex: 1,
|
|
271
277
|
justifyContent: 'center',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useCallback, useRef, useImperativeHandle } from 'react';
|
|
2
|
-
import { ScrollView as RNScrollView } from 'react-native';
|
|
2
|
+
import { ScrollView as RNScrollView, StyleSheet } from 'react-native';
|
|
3
3
|
import { ScrollView as GestureScrollView, GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
4
4
|
import Fader from "../fader";
|
|
5
5
|
import useScrollEnabler from "../../hooks/useScrollEnabler";
|
|
@@ -60,7 +60,7 @@ const FadedScrollView = props => {
|
|
|
60
60
|
isScrollEnabled
|
|
61
61
|
}));
|
|
62
62
|
if (children) {
|
|
63
|
-
return <GestureHandlerRootView>
|
|
63
|
+
return <GestureHandlerRootView style={styles.container}>
|
|
64
64
|
<ScrollView scrollEventThrottle={16} decelerationRate={'fast'} {...others} horizontal={horizontal} scrollEnabled={scrollEnabled} onContentSizeChange={_onContentSizeChange} onLayout={_onLayout} onScroll={onScroll}
|
|
65
65
|
// @ts-expect-error
|
|
66
66
|
ref={scrollViewRef}>
|
|
@@ -72,5 +72,10 @@ const FadedScrollView = props => {
|
|
|
72
72
|
}
|
|
73
73
|
return null;
|
|
74
74
|
};
|
|
75
|
+
const styles = StyleSheet.create({
|
|
76
|
+
container: {
|
|
77
|
+
flex: 0
|
|
78
|
+
}
|
|
79
|
+
});
|
|
75
80
|
FadedScrollView.displayName = 'IGNORE';
|
|
76
81
|
export default forwardRef(FadedScrollView);
|
package/src/components/index.js
CHANGED
|
@@ -110,21 +110,6 @@ export default {
|
|
|
110
110
|
get PageControl() {
|
|
111
111
|
return require('./pageControl').default;
|
|
112
112
|
},
|
|
113
|
-
get PanningProvider() {
|
|
114
|
-
return require('./panningViews/panningProvider').default;
|
|
115
|
-
},
|
|
116
|
-
get PanGestureView() {
|
|
117
|
-
return require('./panningViews/panGestureView').default;
|
|
118
|
-
},
|
|
119
|
-
get PanListenerView() {
|
|
120
|
-
return require('./panningViews/panListenerView').default;
|
|
121
|
-
},
|
|
122
|
-
get PanDismissibleView() {
|
|
123
|
-
return require('./panningViews/panDismissibleView').default;
|
|
124
|
-
},
|
|
125
|
-
get PanResponderView() {
|
|
126
|
-
return require('./panningViews/panResponderView').default;
|
|
127
|
-
},
|
|
128
113
|
get Picker() {
|
|
129
114
|
return require('./picker').default;
|
|
130
115
|
},
|
|
@@ -158,10 +143,6 @@ export default {
|
|
|
158
143
|
get RadioGroup() {
|
|
159
144
|
return require('./radioButton').RadioGroup;
|
|
160
145
|
},
|
|
161
|
-
|
|
162
|
-
get SharedTransition() {
|
|
163
|
-
return require('./sharedTransition').default;
|
|
164
|
-
},
|
|
165
146
|
get StackAggregator() {
|
|
166
147
|
return require('./stackAggregator').default;
|
|
167
148
|
},
|
|
@@ -40,6 +40,11 @@ export interface ModalProps extends RNModalProps {
|
|
|
40
40
|
* Send additional props to the KeyboardAvoidingView (iOS only)
|
|
41
41
|
*/
|
|
42
42
|
keyboardAvoidingViewProps?: KeyboardAvoidingViewProps;
|
|
43
|
+
/**
|
|
44
|
+
* Fix RNModal's interaction with react-native-reanimated (Android only, default: true)
|
|
45
|
+
* See this https://github.com/software-mansion/react-native-reanimated/issues/6659#issuecomment-2704931585
|
|
46
|
+
*/
|
|
47
|
+
fixReanimatedInteraction?: boolean;
|
|
43
48
|
}
|
|
44
49
|
/**
|
|
45
50
|
* @description: Component that present content on top of the invoking screen
|