@react-navigation/drawer 6.6.2 → 7.0.0-alpha.1
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/lib/commonjs/index.js +24 -27
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/navigators/createDrawerNavigator.js +8 -49
- package/lib/commonjs/navigators/createDrawerNavigator.js.map +1 -1
- package/lib/commonjs/utils/DrawerPositionContext.js +3 -3
- package/lib/commonjs/utils/DrawerPositionContext.js.map +1 -1
- package/lib/commonjs/utils/DrawerStatusContext.js +2 -3
- package/lib/commonjs/utils/DrawerStatusContext.js.map +1 -1
- package/lib/commonjs/utils/getDrawerStatusFromState.js +1 -1
- package/lib/commonjs/utils/getDrawerStatusFromState.js.map +1 -1
- package/lib/commonjs/utils/useDrawerStatus.js +3 -4
- package/lib/commonjs/utils/useDrawerStatus.js.map +1 -1
- package/lib/commonjs/views/DrawerContent.js +5 -6
- package/lib/commonjs/views/DrawerContent.js.map +1 -1
- package/lib/commonjs/views/DrawerContentScrollView.js +6 -7
- package/lib/commonjs/views/DrawerContentScrollView.js.map +1 -1
- package/lib/commonjs/views/DrawerItem.js +14 -10
- package/lib/commonjs/views/DrawerItem.js.map +1 -1
- package/lib/commonjs/views/DrawerItemList.js +9 -10
- package/lib/commonjs/views/DrawerItemList.js.map +1 -1
- package/lib/commonjs/views/DrawerToggleButton.js +1 -1
- package/lib/commonjs/views/DrawerToggleButton.js.map +1 -1
- package/lib/commonjs/views/DrawerView.js +78 -73
- package/lib/commonjs/views/DrawerView.js.map +1 -1
- package/lib/module/index.js +11 -13
- package/lib/module/index.js.map +1 -1
- package/lib/module/navigators/createDrawerNavigator.js +5 -45
- package/lib/module/navigators/createDrawerNavigator.js.map +1 -1
- package/lib/module/utils/DrawerPositionContext.js +1 -1
- package/lib/module/utils/DrawerPositionContext.js.map +1 -1
- package/lib/module/utils/DrawerStatusContext.js +1 -2
- package/lib/module/utils/DrawerStatusContext.js.map +1 -1
- package/lib/module/utils/getDrawerStatusFromState.js +1 -1
- package/lib/module/utils/getDrawerStatusFromState.js.map +1 -1
- package/lib/module/utils/useDrawerStatus.js +2 -2
- package/lib/module/utils/useDrawerStatus.js.map +1 -1
- package/lib/module/views/DrawerContent.js +3 -3
- package/lib/module/views/DrawerContent.js.map +1 -1
- package/lib/module/views/DrawerContentScrollView.js +3 -3
- package/lib/module/views/DrawerContentScrollView.js.map +1 -1
- package/lib/module/views/DrawerItem.js +15 -11
- package/lib/module/views/DrawerItem.js.map +1 -1
- package/lib/module/views/DrawerItemList.js +9 -9
- package/lib/module/views/DrawerItemList.js.map +1 -1
- package/lib/module/views/DrawerToggleButton.js +1 -1
- package/lib/module/views/DrawerToggleButton.js.map +1 -1
- package/lib/module/views/DrawerView.js +72 -67
- package/lib/module/views/DrawerView.js.map +1 -1
- package/lib/typescript/src/index.d.ts +11 -13
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/navigators/createDrawerNavigator.d.ts +9 -4
- package/lib/typescript/src/navigators/createDrawerNavigator.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +51 -16
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/DrawerPositionContext.d.ts +1 -2
- package/lib/typescript/src/utils/DrawerPositionContext.d.ts.map +1 -1
- package/lib/typescript/src/utils/DrawerStatusContext.d.ts +1 -2
- package/lib/typescript/src/utils/DrawerStatusContext.d.ts.map +1 -1
- package/lib/typescript/src/utils/getDrawerStatusFromState.d.ts +1 -1
- package/lib/typescript/src/utils/getDrawerStatusFromState.d.ts.map +1 -1
- package/lib/typescript/src/utils/useDrawerStatus.d.ts +1 -1
- package/lib/typescript/src/utils/useDrawerStatus.d.ts.map +1 -1
- package/lib/typescript/src/views/DrawerContent.d.ts +1 -1
- package/lib/typescript/src/views/DrawerContent.d.ts.map +1 -1
- package/lib/typescript/src/views/DrawerContentScrollView.d.ts +1 -2
- package/lib/typescript/src/views/DrawerContentScrollView.d.ts.map +1 -1
- package/lib/typescript/src/views/DrawerItem.d.ts +11 -6
- package/lib/typescript/src/views/DrawerItem.d.ts.map +1 -1
- package/lib/typescript/src/views/DrawerItemList.d.ts +2 -2
- package/lib/typescript/src/views/DrawerItemList.d.ts.map +1 -1
- package/lib/typescript/src/views/DrawerToggleButton.d.ts +2 -2
- package/lib/typescript/src/views/DrawerToggleButton.d.ts.map +1 -1
- package/lib/typescript/src/views/DrawerView.d.ts +2 -2
- package/lib/typescript/src/views/DrawerView.d.ts.map +1 -1
- package/lib/typescript/src/views/ScreenFallback.d.ts +1 -1
- package/lib/typescript/src/views/ScreenFallback.d.ts.map +1 -1
- package/package.json +15 -14
- package/src/index.tsx +15 -13
- package/src/navigators/createDrawerNavigator.tsx +4 -74
- package/src/types.tsx +24 -3
- package/src/utils/DrawerPositionContext.tsx +3 -1
- package/src/utils/DrawerStatusContext.tsx +3 -5
- package/src/utils/getDrawerStatusFromState.tsx +1 -1
- package/src/utils/useDrawerStatus.tsx +2 -2
- package/src/views/DrawerContent.tsx +3 -3
- package/src/views/DrawerContentScrollView.tsx +5 -3
- package/src/views/DrawerItem.tsx +23 -20
- package/src/views/DrawerItemList.tsx +7 -10
- package/src/views/DrawerToggleButton.tsx +1 -1
- package/src/views/DrawerView.tsx +68 -78
- package/lib/commonjs/utils/DrawerGestureContext.js +0 -12
- package/lib/commonjs/utils/DrawerGestureContext.js.map +0 -1
- package/lib/commonjs/utils/DrawerProgressContext.js +0 -12
- package/lib/commonjs/utils/DrawerProgressContext.js.map +0 -1
- package/lib/commonjs/utils/useDrawerProgress.js +0 -19
- package/lib/commonjs/utils/useDrawerProgress.js.map +0 -1
- package/lib/commonjs/views/GestureHandler.android.js +0 -17
- package/lib/commonjs/views/GestureHandler.android.js.map +0 -1
- package/lib/commonjs/views/GestureHandler.ios.js +0 -17
- package/lib/commonjs/views/GestureHandler.ios.js.map +0 -1
- package/lib/commonjs/views/GestureHandler.js +0 -32
- package/lib/commonjs/views/GestureHandler.js.map +0 -1
- package/lib/commonjs/views/GestureHandlerNative.js +0 -37
- package/lib/commonjs/views/GestureHandlerNative.js.map +0 -1
- package/lib/commonjs/views/legacy/Drawer.js +0 -438
- package/lib/commonjs/views/legacy/Drawer.js.map +0 -1
- package/lib/commonjs/views/legacy/Overlay.js +0 -74
- package/lib/commonjs/views/legacy/Overlay.js.map +0 -1
- package/lib/commonjs/views/modern/Drawer.js +0 -304
- package/lib/commonjs/views/modern/Drawer.js.map +0 -1
- package/lib/commonjs/views/modern/Overlay.js +0 -69
- package/lib/commonjs/views/modern/Overlay.js.map +0 -1
- package/lib/module/utils/DrawerGestureContext.js +0 -3
- package/lib/module/utils/DrawerGestureContext.js.map +0 -1
- package/lib/module/utils/DrawerProgressContext.js +0 -3
- package/lib/module/utils/DrawerProgressContext.js.map +0 -1
- package/lib/module/utils/useDrawerProgress.js +0 -10
- package/lib/module/utils/useDrawerProgress.js.map +0 -1
- package/lib/module/views/GestureHandler.android.js +0 -2
- package/lib/module/views/GestureHandler.android.js.map +0 -1
- package/lib/module/views/GestureHandler.ios.js +0 -2
- package/lib/module/views/GestureHandler.ios.js.map +0 -1
- package/lib/module/views/GestureHandler.js +0 -20
- package/lib/module/views/GestureHandler.js.map +0 -1
- package/lib/module/views/GestureHandlerNative.js +0 -11
- package/lib/module/views/GestureHandlerNative.js.map +0 -1
- package/lib/module/views/legacy/Drawer.js +0 -428
- package/lib/module/views/legacy/Drawer.js.map +0 -1
- package/lib/module/views/legacy/Overlay.js +0 -64
- package/lib/module/views/legacy/Overlay.js.map +0 -1
- package/lib/module/views/modern/Drawer.js +0 -295
- package/lib/module/views/modern/Drawer.js.map +0 -1
- package/lib/module/views/modern/Overlay.js +0 -60
- package/lib/module/views/modern/Overlay.js.map +0 -1
- package/lib/typescript/src/utils/DrawerGestureContext.d.ts +0 -4
- package/lib/typescript/src/utils/DrawerGestureContext.d.ts.map +0 -1
- package/lib/typescript/src/utils/DrawerProgressContext.d.ts +0 -5
- package/lib/typescript/src/utils/DrawerProgressContext.d.ts.map +0 -1
- package/lib/typescript/src/utils/useDrawerProgress.d.ts +0 -3
- package/lib/typescript/src/utils/useDrawerProgress.d.ts.map +0 -1
- package/lib/typescript/src/views/GestureHandler.android.d.ts +0 -2
- package/lib/typescript/src/views/GestureHandler.android.d.ts.map +0 -1
- package/lib/typescript/src/views/GestureHandler.d.ts +0 -15
- package/lib/typescript/src/views/GestureHandler.d.ts.map +0 -1
- package/lib/typescript/src/views/GestureHandler.ios.d.ts +0 -2
- package/lib/typescript/src/views/GestureHandler.ios.d.ts.map +0 -1
- package/lib/typescript/src/views/GestureHandlerNative.d.ts +0 -6
- package/lib/typescript/src/views/GestureHandlerNative.d.ts.map +0 -1
- package/lib/typescript/src/views/legacy/Drawer.d.ts +0 -45
- package/lib/typescript/src/views/legacy/Drawer.d.ts.map +0 -1
- package/lib/typescript/src/views/legacy/Overlay.d.ts +0 -75
- package/lib/typescript/src/views/legacy/Overlay.d.ts.map +0 -1
- package/lib/typescript/src/views/modern/Drawer.d.ts +0 -4
- package/lib/typescript/src/views/modern/Drawer.d.ts.map +0 -1
- package/lib/typescript/src/views/modern/Overlay.d.ts +0 -75
- package/lib/typescript/src/views/modern/Overlay.d.ts.map +0 -1
- package/src/utils/DrawerGestureContext.tsx +0 -3
- package/src/utils/DrawerProgressContext.tsx +0 -6
- package/src/utils/useDrawerProgress.tsx +0 -18
- package/src/views/GestureHandler.android.tsx +0 -1
- package/src/views/GestureHandler.ios.tsx +0 -1
- package/src/views/GestureHandler.tsx +0 -29
- package/src/views/GestureHandlerNative.tsx +0 -24
- package/src/views/legacy/Drawer.tsx +0 -672
- package/src/views/legacy/Overlay.tsx +0 -87
- package/src/views/modern/Drawer.tsx +0 -425
- package/src/views/modern/Overlay.tsx +0 -82
|
@@ -1,438 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var React = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _reactNative = require("react-native");
|
|
9
|
-
var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
|
|
10
|
-
var _DrawerProgressContext = _interopRequireDefault(require("../../utils/DrawerProgressContext"));
|
|
11
|
-
var _GestureHandler = require("../GestureHandler");
|
|
12
|
-
var _Overlay = _interopRequireDefault(require("./Overlay"));
|
|
13
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
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
|
-
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; }
|
|
16
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
17
|
-
const {
|
|
18
|
-
Clock,
|
|
19
|
-
Value,
|
|
20
|
-
onChange,
|
|
21
|
-
clockRunning,
|
|
22
|
-
startClock,
|
|
23
|
-
stopClock,
|
|
24
|
-
spring,
|
|
25
|
-
abs,
|
|
26
|
-
add,
|
|
27
|
-
and,
|
|
28
|
-
block,
|
|
29
|
-
call,
|
|
30
|
-
cond,
|
|
31
|
-
divide,
|
|
32
|
-
eq,
|
|
33
|
-
event,
|
|
34
|
-
greaterThan,
|
|
35
|
-
lessThan,
|
|
36
|
-
max,
|
|
37
|
-
min,
|
|
38
|
-
multiply,
|
|
39
|
-
neq,
|
|
40
|
-
or,
|
|
41
|
-
set,
|
|
42
|
-
sub
|
|
43
|
-
} = _reactNativeReanimated.default;
|
|
44
|
-
const TRUE = 1;
|
|
45
|
-
const FALSE = 0;
|
|
46
|
-
const NOOP = 0;
|
|
47
|
-
const UNSET = -1;
|
|
48
|
-
const DIRECTION_LEFT = 1;
|
|
49
|
-
const DIRECTION_RIGHT = -1;
|
|
50
|
-
const SWIPE_DISTANCE_MINIMUM = 5;
|
|
51
|
-
const DEFAULT_DRAWER_WIDTH = '80%';
|
|
52
|
-
const SPRING_CONFIG = {
|
|
53
|
-
stiffness: 1000,
|
|
54
|
-
damping: 500,
|
|
55
|
-
mass: 3,
|
|
56
|
-
overshootClamping: true,
|
|
57
|
-
restDisplacementThreshold: 0.01,
|
|
58
|
-
restSpeedThreshold: 0.01
|
|
59
|
-
};
|
|
60
|
-
const ANIMATED_ZERO = new _reactNativeReanimated.default.Value(0);
|
|
61
|
-
const ANIMATED_ONE = new _reactNativeReanimated.default.Value(1);
|
|
62
|
-
class DrawerView extends React.Component {
|
|
63
|
-
componentDidUpdate(prevProps) {
|
|
64
|
-
const {
|
|
65
|
-
open,
|
|
66
|
-
drawerPosition,
|
|
67
|
-
drawerType,
|
|
68
|
-
swipeDistanceThreshold,
|
|
69
|
-
swipeVelocityThreshold,
|
|
70
|
-
hideStatusBarOnOpen: hideStatusBar
|
|
71
|
-
} = this.props;
|
|
72
|
-
if (
|
|
73
|
-
// If we're not in the middle of a transition, sync the drawer's open state
|
|
74
|
-
typeof this.pendingOpenValue !== 'boolean' || open !== this.pendingOpenValue) {
|
|
75
|
-
this.toggleDrawer(open);
|
|
76
|
-
}
|
|
77
|
-
this.pendingOpenValue = undefined;
|
|
78
|
-
if (open !== prevProps.open && hideStatusBar) {
|
|
79
|
-
this.toggleStatusBar(open);
|
|
80
|
-
}
|
|
81
|
-
if (prevProps.drawerPosition !== drawerPosition) {
|
|
82
|
-
this.drawerPosition.setValue(drawerPosition === 'right' ? DIRECTION_RIGHT : DIRECTION_LEFT);
|
|
83
|
-
}
|
|
84
|
-
if (prevProps.drawerType !== drawerType) {
|
|
85
|
-
this.isDrawerTypeFront.setValue(drawerType === 'front' ? TRUE : FALSE);
|
|
86
|
-
}
|
|
87
|
-
if (prevProps.swipeDistanceThreshold !== swipeDistanceThreshold) {
|
|
88
|
-
this.swipeDistanceThreshold.setValue(swipeDistanceThreshold);
|
|
89
|
-
}
|
|
90
|
-
if (prevProps.swipeVelocityThreshold !== swipeVelocityThreshold) {
|
|
91
|
-
this.swipeVelocityThreshold.setValue(swipeVelocityThreshold);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
componentWillUnmount() {
|
|
95
|
-
this.toggleStatusBar(false);
|
|
96
|
-
this.handleEndInteraction();
|
|
97
|
-
}
|
|
98
|
-
handleEndInteraction = () => {
|
|
99
|
-
if (this.interactionHandle !== undefined) {
|
|
100
|
-
_reactNative.InteractionManager.clearInteractionHandle(this.interactionHandle);
|
|
101
|
-
this.interactionHandle = undefined;
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
handleStartInteraction = () => {
|
|
105
|
-
if (this.interactionHandle === undefined) {
|
|
106
|
-
this.interactionHandle = _reactNative.InteractionManager.createInteractionHandle();
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
getDrawerWidth = () => {
|
|
110
|
-
const {
|
|
111
|
-
drawerStyle,
|
|
112
|
-
dimensions
|
|
113
|
-
} = this.props;
|
|
114
|
-
const {
|
|
115
|
-
width = DEFAULT_DRAWER_WIDTH
|
|
116
|
-
} = _reactNative.StyleSheet.flatten(drawerStyle) || {};
|
|
117
|
-
if (typeof width === 'string' && width.endsWith('%')) {
|
|
118
|
-
// Try to calculate width if a percentage is given
|
|
119
|
-
const percentage = Number(width.replace(/%$/, ''));
|
|
120
|
-
if (Number.isFinite(percentage)) {
|
|
121
|
-
return dimensions.width * (percentage / 100);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return typeof width === 'number' ? width : 0;
|
|
125
|
-
};
|
|
126
|
-
clock = new Clock();
|
|
127
|
-
isDrawerTypeFront = new Value(this.props.drawerType === 'front' ? TRUE : FALSE);
|
|
128
|
-
isOpen = new Value(this.props.open ? TRUE : FALSE);
|
|
129
|
-
nextIsOpen = new Value(UNSET);
|
|
130
|
-
isSwiping = new Value(FALSE);
|
|
131
|
-
initialDrawerWidth = this.getDrawerWidth();
|
|
132
|
-
gestureState = new Value(_GestureHandler.GestureState.UNDETERMINED);
|
|
133
|
-
touchX = new Value(0);
|
|
134
|
-
velocityX = new Value(0);
|
|
135
|
-
gestureX = new Value(0);
|
|
136
|
-
offsetX = new Value(0);
|
|
137
|
-
position = new Value(this.props.open ? this.initialDrawerWidth * (this.props.drawerPosition === 'right' ? DIRECTION_RIGHT : DIRECTION_LEFT) : 0);
|
|
138
|
-
containerWidth = new Value(this.props.dimensions.width);
|
|
139
|
-
drawerWidth = new Value(this.initialDrawerWidth);
|
|
140
|
-
drawerOpacity = new Value(this.props.drawerType === 'permanent' ? 1 : 0);
|
|
141
|
-
drawerPosition = new Value(this.props.drawerPosition === 'right' ? DIRECTION_RIGHT : DIRECTION_LEFT);
|
|
142
|
-
|
|
143
|
-
// Comment stolen from react-native-gesture-handler/DrawerLayout
|
|
144
|
-
//
|
|
145
|
-
// While closing the drawer when user starts gesture outside of its area (in greyed
|
|
146
|
-
// out part of the window), we want the drawer to follow only once finger reaches the
|
|
147
|
-
// edge of the drawer.
|
|
148
|
-
// E.g. on the diagram below drawer is illustrate by X signs and the greyed out area by
|
|
149
|
-
// dots. The touch gesture starts at '*' and moves left, touch path is indicated by
|
|
150
|
-
// an arrow pointing left
|
|
151
|
-
// 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+
|
|
152
|
-
// |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
|
|
153
|
-
// |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
|
|
154
|
-
// |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
|
|
155
|
-
// |XXXXXXXX|......| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|
|
|
156
|
-
// |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
|
|
157
|
-
// |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
|
|
158
|
-
// |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|
|
|
159
|
-
// +---------------+ +---------------+ +---------------+ +---------------+
|
|
160
|
-
//
|
|
161
|
-
// For the above to work properly we define animated value that will keep start position
|
|
162
|
-
// of the gesture. Then we use that value to calculate how much we need to subtract from
|
|
163
|
-
// the dragX. If the gesture started on the greyed out area we take the distance from the
|
|
164
|
-
// edge of the drawer to the start position. Otherwise we don't subtract at all and the
|
|
165
|
-
// drawer be pulled back as soon as you start the pan.
|
|
166
|
-
//
|
|
167
|
-
// This is used only when drawerType is "front"
|
|
168
|
-
touchDistanceFromDrawer = cond(this.isDrawerTypeFront, cond(eq(this.drawerPosition, DIRECTION_LEFT), max(
|
|
169
|
-
// Distance of touch start from left screen edge - Drawer width
|
|
170
|
-
sub(sub(this.touchX, this.gestureX), this.drawerWidth), 0), min(multiply(
|
|
171
|
-
// Distance of drawer from left screen edge - Touch start point
|
|
172
|
-
sub(sub(this.containerWidth, this.drawerWidth), sub(this.touchX, this.gestureX)), DIRECTION_RIGHT), 0)), 0);
|
|
173
|
-
swipeDistanceThreshold = new Value(this.props.swipeDistanceThreshold);
|
|
174
|
-
swipeVelocityThreshold = new Value(this.props.swipeVelocityThreshold);
|
|
175
|
-
currentOpenValue = this.props.open;
|
|
176
|
-
isStatusBarHidden = false;
|
|
177
|
-
manuallyTriggerSpring = new Value(FALSE);
|
|
178
|
-
transitionTo = isOpen => {
|
|
179
|
-
const toValue = new Value(0);
|
|
180
|
-
const frameTime = new Value(0);
|
|
181
|
-
const state = {
|
|
182
|
-
position: this.position,
|
|
183
|
-
time: new Value(0),
|
|
184
|
-
finished: new Value(FALSE),
|
|
185
|
-
velocity: new Value(0)
|
|
186
|
-
};
|
|
187
|
-
return block([cond(clockRunning(this.clock), NOOP, [
|
|
188
|
-
// Animation wasn't running before
|
|
189
|
-
// Set the initial values and start the clock
|
|
190
|
-
set(toValue, multiply(isOpen, this.drawerWidth, this.drawerPosition)), set(frameTime, 0), set(state.time, 0), set(state.finished, FALSE), set(state.velocity, this.velocityX), set(this.isOpen, isOpen), startClock(this.clock), call([], this.handleStartInteraction), set(this.manuallyTriggerSpring, FALSE)]), spring(this.clock, state, {
|
|
191
|
-
...SPRING_CONFIG,
|
|
192
|
-
toValue
|
|
193
|
-
}), cond(state.finished, [
|
|
194
|
-
// Reset gesture and velocity from previous gesture
|
|
195
|
-
set(this.touchX, 0), set(this.gestureX, 0), set(this.velocityX, 0), set(this.offsetX, 0),
|
|
196
|
-
// When the animation finishes, stop the clock
|
|
197
|
-
stopClock(this.clock), call([this.isOpen], _ref => {
|
|
198
|
-
let [value] = _ref;
|
|
199
|
-
const open = Boolean(value);
|
|
200
|
-
this.handleEndInteraction();
|
|
201
|
-
if (open !== this.props.open) {
|
|
202
|
-
// Sync drawer's state after animation finished
|
|
203
|
-
// This shouldn't be necessary, but there seems to be an issue on iOS
|
|
204
|
-
this.toggleDrawer(this.props.open);
|
|
205
|
-
}
|
|
206
|
-
})])]);
|
|
207
|
-
};
|
|
208
|
-
dragX = block([onChange(this.isOpen, call([this.isOpen], _ref2 => {
|
|
209
|
-
let [value] = _ref2;
|
|
210
|
-
const open = Boolean(value);
|
|
211
|
-
this.currentOpenValue = open;
|
|
212
|
-
|
|
213
|
-
// Without this check, the drawer can go to an infinite update <-> animate loop for sync updates
|
|
214
|
-
if (open !== this.props.open) {
|
|
215
|
-
// If the mode changed, update state
|
|
216
|
-
if (open) {
|
|
217
|
-
this.props.onOpen();
|
|
218
|
-
} else {
|
|
219
|
-
this.props.onClose();
|
|
220
|
-
}
|
|
221
|
-
this.pendingOpenValue = open;
|
|
222
|
-
|
|
223
|
-
// Force componentDidUpdate to fire, whether user does a setState or not
|
|
224
|
-
// This allows us to detect when the user drops the update and revert back
|
|
225
|
-
// It's necessary to make sure that the state stays in sync
|
|
226
|
-
this.forceUpdate();
|
|
227
|
-
}
|
|
228
|
-
})), onChange(this.nextIsOpen, cond(neq(this.nextIsOpen, UNSET), [
|
|
229
|
-
// Stop any running animations
|
|
230
|
-
cond(clockRunning(this.clock), stopClock(this.clock)),
|
|
231
|
-
// Update the open value to trigger the transition
|
|
232
|
-
set(this.isOpen, this.nextIsOpen), set(this.gestureX, 0), set(this.nextIsOpen, UNSET)])),
|
|
233
|
-
// This block must be after the this.isOpen listener since we check for current value
|
|
234
|
-
onChange(this.isSwiping,
|
|
235
|
-
// Listen to updates for this value only when it changes
|
|
236
|
-
// Without `onChange`, this will fire even if the value didn't change
|
|
237
|
-
// We don't want to call the listeners if the value didn't change
|
|
238
|
-
call([this.isSwiping], _ref3 => {
|
|
239
|
-
let [value] = _ref3;
|
|
240
|
-
const {
|
|
241
|
-
keyboardDismissMode
|
|
242
|
-
} = this.props;
|
|
243
|
-
if (value === TRUE) {
|
|
244
|
-
if (keyboardDismissMode === 'on-drag') {
|
|
245
|
-
_reactNative.Keyboard.dismiss();
|
|
246
|
-
}
|
|
247
|
-
this.toggleStatusBar(true);
|
|
248
|
-
} else {
|
|
249
|
-
this.toggleStatusBar(this.currentOpenValue);
|
|
250
|
-
}
|
|
251
|
-
})), onChange(this.gestureState, cond(eq(this.gestureState, _GestureHandler.GestureState.ACTIVE), call([], this.handleStartInteraction))), cond(eq(this.gestureState, _GestureHandler.GestureState.ACTIVE), [cond(this.isSwiping, NOOP, [
|
|
252
|
-
// We weren't dragging before, set it to true
|
|
253
|
-
set(this.isSwiping, TRUE),
|
|
254
|
-
// Also update the drag offset to the last position
|
|
255
|
-
set(this.offsetX, this.position)]),
|
|
256
|
-
// Update position with previous offset + gesture distance
|
|
257
|
-
set(this.position, add(this.offsetX, this.gestureX, this.touchDistanceFromDrawer)),
|
|
258
|
-
// Stop animations while we're dragging
|
|
259
|
-
stopClock(this.clock)], [set(this.isSwiping, FALSE), set(this.touchX, 0), this.transitionTo(cond(this.manuallyTriggerSpring, this.isOpen, cond(or(and(greaterThan(abs(this.gestureX), SWIPE_DISTANCE_MINIMUM), greaterThan(abs(this.velocityX), this.swipeVelocityThreshold)), greaterThan(abs(this.gestureX), this.swipeDistanceThreshold)), cond(eq(this.drawerPosition, DIRECTION_LEFT),
|
|
260
|
-
// If swiped to right, open the drawer, otherwise close it
|
|
261
|
-
greaterThan(cond(eq(this.velocityX, 0), this.gestureX, this.velocityX), 0),
|
|
262
|
-
// If swiped to left, open the drawer, otherwise close it
|
|
263
|
-
lessThan(cond(eq(this.velocityX, 0), this.gestureX, this.velocityX), 0)), this.isOpen)))]), this.position]);
|
|
264
|
-
translateX = cond(eq(this.drawerPosition, DIRECTION_RIGHT), min(max(multiply(this.drawerWidth, -1), this.dragX), 0), max(min(this.drawerWidth, this.dragX), 0));
|
|
265
|
-
progress = cond(
|
|
266
|
-
// Check if the drawer width is available to avoid division by zero
|
|
267
|
-
eq(this.drawerWidth, 0), 0, abs(divide(this.translateX, this.drawerWidth)));
|
|
268
|
-
handleGestureEvent = event([{
|
|
269
|
-
nativeEvent: {
|
|
270
|
-
x: this.touchX,
|
|
271
|
-
translationX: this.gestureX,
|
|
272
|
-
velocityX: this.velocityX
|
|
273
|
-
}
|
|
274
|
-
}]);
|
|
275
|
-
handleGestureStateChange = event([{
|
|
276
|
-
nativeEvent: {
|
|
277
|
-
state: s => set(this.gestureState, s)
|
|
278
|
-
}
|
|
279
|
-
}]);
|
|
280
|
-
handleContainerLayout = e => this.containerWidth.setValue(e.nativeEvent.layout.width);
|
|
281
|
-
handleDrawerLayout = e => {
|
|
282
|
-
this.drawerWidth.setValue(e.nativeEvent.layout.width);
|
|
283
|
-
this.toggleDrawer(this.props.open);
|
|
284
|
-
|
|
285
|
-
// Until layout is available, drawer is hidden with opacity: 0 by default
|
|
286
|
-
// Show it in the next frame when layout is available
|
|
287
|
-
// If we don't delay it until the next frame, there's a visible flicker
|
|
288
|
-
requestAnimationFrame(() => requestAnimationFrame(() => this.drawerOpacity.setValue(1)));
|
|
289
|
-
};
|
|
290
|
-
toggleDrawer = open => {
|
|
291
|
-
if (this.currentOpenValue !== open) {
|
|
292
|
-
this.nextIsOpen.setValue(open ? TRUE : FALSE);
|
|
293
|
-
|
|
294
|
-
// This value will also be set shortly after as changing this.nextIsOpen changes this.isOpen
|
|
295
|
-
// However, there's a race condition on Android, so we need to set a bit earlier
|
|
296
|
-
this.currentOpenValue = open;
|
|
297
|
-
}
|
|
298
|
-
};
|
|
299
|
-
toggleStatusBar = hidden => {
|
|
300
|
-
const {
|
|
301
|
-
hideStatusBarOnOpen: hideStatusBar,
|
|
302
|
-
statusBarAnimation
|
|
303
|
-
} = this.props;
|
|
304
|
-
if (hideStatusBar && this.isStatusBarHidden !== hidden) {
|
|
305
|
-
this.isStatusBarHidden = hidden;
|
|
306
|
-
_reactNative.StatusBar.setHidden(hidden, statusBarAnimation);
|
|
307
|
-
}
|
|
308
|
-
};
|
|
309
|
-
render() {
|
|
310
|
-
const {
|
|
311
|
-
open,
|
|
312
|
-
swipeEnabled,
|
|
313
|
-
drawerPosition,
|
|
314
|
-
drawerType,
|
|
315
|
-
swipeEdgeWidth,
|
|
316
|
-
drawerStyle,
|
|
317
|
-
overlayStyle,
|
|
318
|
-
renderDrawerContent,
|
|
319
|
-
renderSceneContent,
|
|
320
|
-
gestureHandlerProps,
|
|
321
|
-
overlayAccessibilityLabel
|
|
322
|
-
} = this.props;
|
|
323
|
-
const isOpen = drawerType === 'permanent' ? true : open;
|
|
324
|
-
const isRight = drawerPosition === 'right';
|
|
325
|
-
const contentTranslateX = drawerType === 'front' ? ANIMATED_ZERO : this.translateX;
|
|
326
|
-
const drawerTranslateX = drawerType === 'back' ? _reactNative.I18nManager.getConstants().isRTL ? multiply(sub(this.containerWidth, this.drawerWidth), isRight ? 1 : -1) : ANIMATED_ZERO : this.translateX;
|
|
327
|
-
const offset = drawerType === 'back' ? 0 : _reactNative.I18nManager.getConstants().isRTL ? '100%' : multiply(this.drawerWidth, -1);
|
|
328
|
-
|
|
329
|
-
// FIXME: Currently hitSlop is broken when on Android when drawer is on right
|
|
330
|
-
// https://github.com/software-mansion/react-native-gesture-handler/issues/569
|
|
331
|
-
const hitSlop = isRight ?
|
|
332
|
-
// Extend hitSlop to the side of the screen when drawer is closed
|
|
333
|
-
// This lets the user drag the drawer from the side of the screen
|
|
334
|
-
{
|
|
335
|
-
right: 0,
|
|
336
|
-
width: isOpen ? undefined : swipeEdgeWidth
|
|
337
|
-
} : {
|
|
338
|
-
left: 0,
|
|
339
|
-
width: isOpen ? undefined : swipeEdgeWidth
|
|
340
|
-
};
|
|
341
|
-
const progress = drawerType === 'permanent' ? ANIMATED_ONE : this.progress;
|
|
342
|
-
return /*#__PURE__*/React.createElement(_DrawerProgressContext.default.Provider, {
|
|
343
|
-
value: progress
|
|
344
|
-
}, /*#__PURE__*/React.createElement(_GestureHandler.PanGestureHandler, _extends({
|
|
345
|
-
activeOffsetX: [-SWIPE_DISTANCE_MINIMUM, SWIPE_DISTANCE_MINIMUM],
|
|
346
|
-
failOffsetY: [-SWIPE_DISTANCE_MINIMUM, SWIPE_DISTANCE_MINIMUM],
|
|
347
|
-
onGestureEvent: this.handleGestureEvent,
|
|
348
|
-
onHandlerStateChange: this.handleGestureStateChange,
|
|
349
|
-
hitSlop: hitSlop,
|
|
350
|
-
enabled: drawerType !== 'permanent' && swipeEnabled
|
|
351
|
-
}, gestureHandlerProps), /*#__PURE__*/React.createElement(_reactNativeReanimated.default.View, {
|
|
352
|
-
onLayout: this.handleContainerLayout,
|
|
353
|
-
style: [styles.main, {
|
|
354
|
-
flexDirection: drawerType === 'permanent' && !isRight ? 'row-reverse' : 'row'
|
|
355
|
-
}]
|
|
356
|
-
}, /*#__PURE__*/React.createElement(_reactNativeReanimated.default.View, {
|
|
357
|
-
style: [styles.content, {
|
|
358
|
-
transform: drawerType === 'permanent' ?
|
|
359
|
-
// Reanimated needs the property to be present, but it results in Browser bug
|
|
360
|
-
// https://bugs.chromium.org/p/chromium/issues/detail?id=20574
|
|
361
|
-
[] : [{
|
|
362
|
-
translateX: contentTranslateX
|
|
363
|
-
}]
|
|
364
|
-
}]
|
|
365
|
-
}, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
366
|
-
accessibilityElementsHidden: isOpen && drawerType !== 'permanent',
|
|
367
|
-
importantForAccessibility: isOpen && drawerType !== 'permanent' ? 'no-hide-descendants' : 'auto',
|
|
368
|
-
style: styles.content
|
|
369
|
-
}, renderSceneContent()),
|
|
370
|
-
// Disable overlay if sidebar is permanent
|
|
371
|
-
drawerType === 'permanent' ? null : /*#__PURE__*/React.createElement(_Overlay.default, {
|
|
372
|
-
progress: progress,
|
|
373
|
-
onPress: () => this.toggleDrawer(false),
|
|
374
|
-
accessibilityLabel: overlayAccessibilityLabel,
|
|
375
|
-
style: overlayStyle,
|
|
376
|
-
accessibilityElementsHidden: !isOpen,
|
|
377
|
-
importantForAccessibility: isOpen ? 'auto' : 'no-hide-descendants'
|
|
378
|
-
})), /*#__PURE__*/React.createElement(_reactNativeReanimated.default.Code, {
|
|
379
|
-
// This is needed to make sure that container width updates with `setValue`
|
|
380
|
-
// Without this, it won't update when not used in styles
|
|
381
|
-
exec: this.containerWidth
|
|
382
|
-
}), drawerType === 'permanent' ? null : /*#__PURE__*/React.createElement(_reactNativeReanimated.default.Code, {
|
|
383
|
-
exec: block([onChange(this.manuallyTriggerSpring, [cond(eq(this.manuallyTriggerSpring, TRUE), [set(this.nextIsOpen, FALSE), call([], () => this.currentOpenValue = false)])])])
|
|
384
|
-
}), /*#__PURE__*/React.createElement(_reactNativeReanimated.default.View, {
|
|
385
|
-
removeClippedSubviews: _reactNative.Platform.OS !== 'ios',
|
|
386
|
-
onLayout: this.handleDrawerLayout,
|
|
387
|
-
style: [styles.container, {
|
|
388
|
-
transform: drawerType === 'permanent' ?
|
|
389
|
-
// Reanimated needs the property to be present, but it results in Browser bug
|
|
390
|
-
// https://bugs.chromium.org/p/chromium/issues/detail?id=20574
|
|
391
|
-
[] : [{
|
|
392
|
-
translateX: drawerTranslateX
|
|
393
|
-
}],
|
|
394
|
-
opacity: this.drawerOpacity
|
|
395
|
-
}, drawerType === 'permanent' ?
|
|
396
|
-
// Without this, the `left`/`right` values don't get reset
|
|
397
|
-
isRight ? {
|
|
398
|
-
right: 0
|
|
399
|
-
} : {
|
|
400
|
-
left: 0
|
|
401
|
-
} : [styles.nonPermanent, isRight ? {
|
|
402
|
-
right: offset
|
|
403
|
-
} : {
|
|
404
|
-
left: offset
|
|
405
|
-
}, {
|
|
406
|
-
zIndex: drawerType === 'back' ? -1 : 0
|
|
407
|
-
}], drawerStyle]
|
|
408
|
-
}, renderDrawerContent()))));
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
exports.default = DrawerView;
|
|
412
|
-
const styles = _reactNative.StyleSheet.create({
|
|
413
|
-
container: {
|
|
414
|
-
backgroundColor: 'white',
|
|
415
|
-
maxWidth: '100%'
|
|
416
|
-
},
|
|
417
|
-
nonPermanent: {
|
|
418
|
-
position: 'absolute',
|
|
419
|
-
top: 0,
|
|
420
|
-
bottom: 0,
|
|
421
|
-
width: DEFAULT_DRAWER_WIDTH
|
|
422
|
-
},
|
|
423
|
-
content: {
|
|
424
|
-
flex: 1
|
|
425
|
-
},
|
|
426
|
-
main: {
|
|
427
|
-
flex: 1,
|
|
428
|
-
..._reactNative.Platform.select({
|
|
429
|
-
// FIXME: We need to hide `overflowX` on Web so the translated content doesn't show offscreen.
|
|
430
|
-
// But adding `overflowX: 'hidden'` prevents content from collapsing the URL bar.
|
|
431
|
-
web: null,
|
|
432
|
-
default: {
|
|
433
|
-
overflow: 'hidden'
|
|
434
|
-
}
|
|
435
|
-
})
|
|
436
|
-
}
|
|
437
|
-
});
|
|
438
|
-
//# sourceMappingURL=Drawer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Clock","Value","onChange","clockRunning","startClock","stopClock","spring","abs","add","and","block","call","cond","divide","eq","event","greaterThan","lessThan","max","min","multiply","neq","or","set","sub","Animated","TRUE","FALSE","NOOP","UNSET","DIRECTION_LEFT","DIRECTION_RIGHT","SWIPE_DISTANCE_MINIMUM","DEFAULT_DRAWER_WIDTH","SPRING_CONFIG","stiffness","damping","mass","overshootClamping","restDisplacementThreshold","restSpeedThreshold","ANIMATED_ZERO","ANIMATED_ONE","DrawerView","React","Component","componentDidUpdate","prevProps","open","drawerPosition","drawerType","swipeDistanceThreshold","swipeVelocityThreshold","hideStatusBarOnOpen","hideStatusBar","props","pendingOpenValue","toggleDrawer","undefined","toggleStatusBar","setValue","isDrawerTypeFront","componentWillUnmount","handleEndInteraction","interactionHandle","InteractionManager","clearInteractionHandle","handleStartInteraction","createInteractionHandle","getDrawerWidth","drawerStyle","dimensions","width","StyleSheet","flatten","endsWith","percentage","Number","replace","isFinite","clock","isOpen","nextIsOpen","isSwiping","initialDrawerWidth","gestureState","GestureState","UNDETERMINED","touchX","velocityX","gestureX","offsetX","position","containerWidth","drawerWidth","drawerOpacity","touchDistanceFromDrawer","currentOpenValue","isStatusBarHidden","manuallyTriggerSpring","transitionTo","toValue","frameTime","state","time","finished","velocity","value","Boolean","dragX","onOpen","onClose","forceUpdate","keyboardDismissMode","Keyboard","dismiss","ACTIVE","translateX","progress","handleGestureEvent","nativeEvent","x","translationX","handleGestureStateChange","s","handleContainerLayout","e","layout","handleDrawerLayout","requestAnimationFrame","hidden","statusBarAnimation","StatusBar","setHidden","render","swipeEnabled","swipeEdgeWidth","overlayStyle","renderDrawerContent","renderSceneContent","gestureHandlerProps","overlayAccessibilityLabel","isRight","contentTranslateX","drawerTranslateX","I18nManager","getConstants","isRTL","offset","hitSlop","right","left","styles","main","flexDirection","content","transform","Platform","OS","container","opacity","nonPermanent","zIndex","create","backgroundColor","maxWidth","top","bottom","flex","select","web","default","overflow"],"sourceRoot":"../../../../src","sources":["views/legacy/Drawer.tsx"],"mappings":"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"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var React = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _reactNative = require("react-native");
|
|
9
|
-
var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
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); }
|
|
12
|
-
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; }
|
|
13
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
14
|
-
const {
|
|
15
|
-
// @ts-expect-error: this is to support reanimated 1
|
|
16
|
-
interpolate: interpolateDeprecated,
|
|
17
|
-
interpolateNode,
|
|
18
|
-
cond,
|
|
19
|
-
greaterThan
|
|
20
|
-
} = _reactNativeReanimated.default;
|
|
21
|
-
const interpolate = interpolateNode ?? interpolateDeprecated;
|
|
22
|
-
const PROGRESS_EPSILON = 0.05;
|
|
23
|
-
const Overlay = /*#__PURE__*/React.forwardRef(function Overlay(_ref, ref) {
|
|
24
|
-
let {
|
|
25
|
-
progress,
|
|
26
|
-
onPress,
|
|
27
|
-
style,
|
|
28
|
-
accessibilityLabel = 'Close drawer',
|
|
29
|
-
...props
|
|
30
|
-
} = _ref;
|
|
31
|
-
const animatedStyle = {
|
|
32
|
-
opacity: interpolate(progress, {
|
|
33
|
-
// Default input range is [PROGRESS_EPSILON, 1]
|
|
34
|
-
// On Windows, the output value is 1 when input value is out of range for some reason
|
|
35
|
-
// The default value 0 will be interpolated to 1 in this case, which is not what we want.
|
|
36
|
-
// Therefore changing input range on Windows to [0,1] instead.
|
|
37
|
-
inputRange: _reactNative.Platform.OS === 'windows' || _reactNative.Platform.OS === 'macos' ? [0, 1] : [PROGRESS_EPSILON, 1],
|
|
38
|
-
outputRange: [0, 1]
|
|
39
|
-
}),
|
|
40
|
-
// We don't want the user to be able to press through the overlay when drawer is open
|
|
41
|
-
// One approach is to adjust the pointerEvents based on the progress
|
|
42
|
-
// But we can also send the overlay behind the screen, which works, and is much less code
|
|
43
|
-
zIndex: cond(greaterThan(progress, PROGRESS_EPSILON), 0, -1)
|
|
44
|
-
};
|
|
45
|
-
return /*#__PURE__*/React.createElement(_reactNativeReanimated.default.View, _extends({}, props, {
|
|
46
|
-
ref: ref,
|
|
47
|
-
style: [styles.overlay, overlayStyle, animatedStyle, style]
|
|
48
|
-
}), /*#__PURE__*/React.createElement(_reactNative.Pressable, {
|
|
49
|
-
onPress: onPress,
|
|
50
|
-
style: styles.pressable,
|
|
51
|
-
accessibilityRole: "button",
|
|
52
|
-
accessibilityLabel: accessibilityLabel
|
|
53
|
-
}));
|
|
54
|
-
});
|
|
55
|
-
const overlayStyle = _reactNative.Platform.select({
|
|
56
|
-
web: {
|
|
57
|
-
// Disable touch highlight on mobile Safari.
|
|
58
|
-
// WebkitTapHighlightColor must be used outside of StyleSheet.create because react-native-web will omit the property.
|
|
59
|
-
WebkitTapHighlightColor: 'transparent'
|
|
60
|
-
},
|
|
61
|
-
default: {}
|
|
62
|
-
});
|
|
63
|
-
const styles = _reactNative.StyleSheet.create({
|
|
64
|
-
overlay: {
|
|
65
|
-
..._reactNative.StyleSheet.absoluteFillObject,
|
|
66
|
-
backgroundColor: 'rgba(0, 0, 0, 0.5)'
|
|
67
|
-
},
|
|
68
|
-
pressable: {
|
|
69
|
-
flex: 1
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
var _default = Overlay;
|
|
73
|
-
exports.default = _default;
|
|
74
|
-
//# sourceMappingURL=Overlay.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["interpolate","interpolateDeprecated","interpolateNode","cond","greaterThan","Animated","PROGRESS_EPSILON","Overlay","React","forwardRef","ref","progress","onPress","style","accessibilityLabel","props","animatedStyle","opacity","inputRange","Platform","OS","outputRange","zIndex","styles","overlay","overlayStyle","pressable","select","web","WebkitTapHighlightColor","default","StyleSheet","create","absoluteFillObject","backgroundColor","flex"],"sourceRoot":"../../../../src","sources":["views/legacy/Overlay.tsx"],"mappings":";;;;;;AAAA;AACA;AACA;AAA+C;AAAA;AAAA;AAAA;AAE/C,MAAM;EACJ;EACAA,WAAW,EAAEC,qBAAqB;EAClCC,eAAe;EACfC,IAAI;EACJC;AACF,CAAC,GAAGC,8BAAQ;AAEZ,MAAML,WAAmC,GACvCE,eAAe,IAAID,qBAAqB;AAE1C,MAAMK,gBAAgB,GAAG,IAAI;AAQ7B,MAAMC,OAAO,gBAAGC,KAAK,CAACC,UAAU,CAAC,SAASF,OAAO,OAQ/CG,GAA6B,EAC7B;EAAA,IARA;IACEC,QAAQ;IACRC,OAAO;IACPC,KAAK;IACLC,kBAAkB,GAAG,cAAc;IACnC,GAAGC;EACE,CAAC;EAGR,MAAMC,aAAa,GAAG;IACpBC,OAAO,EAAEjB,WAAW,CAACW,QAAQ,EAAE;MAC7B;MACA;MACA;MACA;MACAO,UAAU,EACRC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAID,qBAAQ,CAACC,EAAE,KAAK,OAAO,GAChD,CAAC,CAAC,EAAE,CAAC,CAAC,GACN,CAACd,gBAAgB,EAAE,CAAC,CAAC;MAC3Be,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;IACpB,CAAC,CAAC;IACF;IACA;IACA;IACAC,MAAM,EAAEnB,IAAI,CAACC,WAAW,CAACO,QAAQ,EAAEL,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EAC7D,CAAC;EAED,oBACE,oBAAC,8BAAQ,CAAC,IAAI,eACRS,KAAK;IACT,GAAG,EAAEL,GAAI;IACT,KAAK,EAAE,CAACa,MAAM,CAACC,OAAO,EAAEC,YAAY,EAAET,aAAa,EAAEH,KAAK;EAAE,iBAE5D,oBAAC,sBAAS;IACR,OAAO,EAAED,OAAQ;IACjB,KAAK,EAAEW,MAAM,CAACG,SAAU;IACxB,iBAAiB,EAAC,QAAQ;IAC1B,kBAAkB,EAAEZ;EAAmB,EACvC,CACY;AAEpB,CAAC,CAAC;AAEF,MAAMW,YAAY,GAAGN,qBAAQ,CAACQ,MAAM,CAAyB;EAC3DC,GAAG,EAAE;IACH;IACA;IACAC,uBAAuB,EAAE;EAC3B,CAAC;EACDC,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAMP,MAAM,GAAGQ,uBAAU,CAACC,MAAM,CAAC;EAC/BR,OAAO,EAAE;IACP,GAAGO,uBAAU,CAACE,kBAAkB;IAChCC,eAAe,EAAE;EACnB,CAAC;EACDR,SAAS,EAAE;IACTS,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAAC,eAEY5B,OAAO;AAAA"}
|