react-native-ui-lib 7.46.3 → 8.0.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.
- package/babel.config.js +12 -0
- package/incubator.d.ts +2 -2
- package/incubator.js +0 -2
- 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 +56 -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 +134 -44
- package/lib/package.json +3 -3
- package/lib/react-native.config.js +1 -3
- package/metro.config.js +2 -2
- package/package.json +33 -32
- package/panView.d.ts +2 -0
- package/panView.js +1 -0
- package/scripts/release/prReleaseNotesCommon.js +15 -4
- package/src/commons/Constants.js +2 -5
- package/src/commons/modifiers.d.ts +1 -0
- package/src/commons/modifiers.js +5 -2
- 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/animatedImage/index.js +12 -2
- 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 +34 -35
- 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 +205 -212
- package/src/{incubator → components}/dialog/types.d.ts +7 -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/hint/index.d.ts +0 -8
- package/src/components/hint/index.js +4 -6
- package/src/components/image/index.js +4 -0
- package/src/components/index.js +0 -19
- package/src/components/marquee/types.js +4 -1
- 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/slider/index.js +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/tabController/TabPage.js +18 -14
- package/src/components/text/Text.driver.new.d.ts +2 -2
- package/src/components/text/Text.driver.new.js +2 -2
- package/src/components/text/index.js +2 -3
- 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/types.js +1 -0
- package/src/components/textField/usePreset.d.ts +72 -44
- package/src/components/timeline/types.js +3 -0
- 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/slider/SliderPresenter.js +2 -1
- package/src/incubator/toast/index.js +1 -1
- package/src/index.d.ts +3 -10
- package/src/index.js +42 -162
- 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/react-native.config.js +0 -22
- 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,54 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Dialog",
|
|
3
|
-
"category": "incubator",
|
|
4
|
-
"description": "Component for displaying custom content inside a popup dialog",
|
|
5
|
-
"note": "Use alignment modifiers to control the dialog position (top, bottom, centerV, centerH, etc... by default the dialog is aligned to center). \nWhen adding a `FlatList` \\ `ScrollView` to the content be sure to use one from `react-native-gesture-handler` (see [this link](https://github.com/software-mansion/react-native-gesture-handler/issues/1380) for `SectionList`).",
|
|
6
|
-
"modifiers": ["alignment"],
|
|
7
|
-
"example": "https://github.com/wix/react-native-ui-lib/blob/master/demo/src/screens/incubatorScreens/IncubatorDialogScreen.tsx",
|
|
8
|
-
"props": [
|
|
9
|
-
{"name": "visible", "type": "boolean", "description": "The visibility of the dialog"},
|
|
10
|
-
{"name": "headerProps", "type": "DialogHeaderProps", "description": "The Dialog's header (title, subtitle etc)"},
|
|
11
|
-
{
|
|
12
|
-
"name": "containerStyle",
|
|
13
|
-
"type": "ViewStyle",
|
|
14
|
-
"description": "The Dialog`s container style (it is set to {position: 'absolute'})"
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"name": "containerProps",
|
|
18
|
-
"type": "ViewProps",
|
|
19
|
-
"description": "Extra props for the container"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"name": "onDismiss",
|
|
23
|
-
"type": "(props?: DialogProps) => void",
|
|
24
|
-
"description": "Callback that is called after the dialog's dismiss (after the animation has ended)."
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"name": "direction",
|
|
28
|
-
"type": "up | down | left | right",
|
|
29
|
-
"description": "The direction from which and to which the dialog is animating \\ panning (default down).",
|
|
30
|
-
"default": "down"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"name": "showClose",
|
|
34
|
-
"type": "boolean",
|
|
35
|
-
"description": "Show the close button"
|
|
36
|
-
},
|
|
37
|
-
{"name": "ignoreBackgroundPress", "type": "boolean", "description": "Whether or not to ignore background press."},
|
|
38
|
-
{"name": "modalProps", "type": "ModalProps", "description": "Pass props to the dialog modal"},
|
|
39
|
-
{
|
|
40
|
-
"name": "testID",
|
|
41
|
-
"type": "string",
|
|
42
|
-
"description": "Used to locate this view in end-to-end tests. \nThe container has the original id. \nSupported inner elements IDs: \n`${TestID}.modal` - the Modal's id. \n`${TestID}.overlayFadingBackground` - the fading background id."
|
|
43
|
-
}
|
|
44
|
-
],
|
|
45
|
-
"snippet": [
|
|
46
|
-
"<Dialog",
|
|
47
|
-
" visible={isVisible$1}",
|
|
48
|
-
" onDismiss={() => console.log('dismissed')$2}",
|
|
49
|
-
" panDirection={PanningProvider.Directions.DOWN$3}",
|
|
50
|
-
">",
|
|
51
|
-
" <Text text60>Content</Text>$4",
|
|
52
|
-
"</Dialog>"
|
|
53
|
-
]
|
|
54
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import DialogHeader from './DialogHeader';
|
|
3
|
-
import { DialogProps, DialogDirections, DialogDirectionsEnum, DialogHeaderProps, DialogMigrationProps } from './types';
|
|
4
|
-
export { DialogProps, DialogDirections, DialogDirectionsEnum, DialogHeaderProps, DialogMigrationProps };
|
|
5
|
-
export interface DialogStatics {
|
|
6
|
-
directions: typeof DialogDirectionsEnum;
|
|
7
|
-
Header: typeof DialogHeader;
|
|
8
|
-
}
|
|
9
|
-
export interface DialogImperativeMethods {
|
|
10
|
-
dismiss: () => void;
|
|
11
|
-
}
|
|
12
|
-
declare const _default: React.ForwardRefExoticComponent<import("./types")._DialogProps & {
|
|
13
|
-
children?: React.ReactNode;
|
|
14
|
-
} & React.RefAttributes<any>> & DialogStatics;
|
|
15
|
-
export default _default;
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import React, { useMemo, useCallback, useImperativeHandle, forwardRef, useEffect, useState } from 'react';
|
|
2
|
-
import { StyleSheet } from 'react-native';
|
|
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";
|
|
11
|
-
import { extractAlignmentsValues } from "../../commons/modifiers";
|
|
12
|
-
import useHiddenLocation from "../hooks/useHiddenLocation";
|
|
13
|
-
import DialogHeader from "./DialogHeader";
|
|
14
|
-
import useDialogContent from "./useDialogContent";
|
|
15
|
-
import { DialogProps, DialogDirections, DialogDirectionsEnum, DialogHeaderProps, DialogMigrationProps } from "./types";
|
|
16
|
-
export { DialogProps, DialogDirections, DialogDirectionsEnum, DialogHeaderProps, DialogMigrationProps };
|
|
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)
|
|
43
|
-
|
|
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';
|
|
53
|
-
|
|
54
|
-
return direction === DialogDirectionsEnum.DOWN || direction === DialogDirectionsEnum.UP;
|
|
55
|
-
}, [direction]);
|
|
56
|
-
const getTranslationInterpolation = useCallback(value => {
|
|
57
|
-
'worklet';
|
|
58
|
-
|
|
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';
|
|
79
|
-
|
|
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();
|
|
89
|
-
}
|
|
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?.();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
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
|
-
};
|
|
136
|
-
}
|
|
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';
|
|
150
|
-
|
|
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;
|
|
170
|
-
};
|
|
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();
|
|
180
|
-
}
|
|
181
|
-
});
|
|
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 = 'Incubator.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
|
-
});
|
/package/lib/components/{HighlighterOverlayView.web.js → HighlighterOverlayView/index.web.js}
RENAMED
|
File without changes
|
|
File without changes
|
/package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/index.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/{incubator/hooks/useHiddenLocation.web.js → hooks/useHiddenLocation/index.web.js}
RENAMED
|
File without changes
|