@tamagui/react-native-use-pressable 1.61.3 → 1.62.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/dist/cjs/PressResponder.js +69 -253
- package/dist/cjs/PressResponder.js.map +1 -1
- package/dist/cjs/PressResponder.native.js +235 -0
- package/dist/cjs/PressResponder.native.js.map +6 -0
- package/dist/cjs/index.js +13 -27
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +44 -0
- package/dist/cjs/index.native.js.map +6 -0
- package/dist/esm/PressResponder.js +64 -244
- package/dist/esm/PressResponder.js.map +1 -1
- package/dist/esm/index.js +5 -12
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,37 +1,23 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __defProp = Object.defineProperty;
|
|
3
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
5
|
var __export = (target, all) => {
|
|
7
6
|
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable:
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
8
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
12
10
|
for (let key of __getOwnPropNames(from))
|
|
13
|
-
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
11
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
12
|
return to;
|
|
17
13
|
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value:
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
19
15
|
var PressResponder_exports = {};
|
|
20
16
|
__export(PressResponder_exports, {
|
|
21
17
|
default: () => PressResponder
|
|
22
18
|
});
|
|
23
19
|
module.exports = __toCommonJS(PressResponder_exports);
|
|
24
|
-
const DELAY = "DELAY"
|
|
25
|
-
const ERROR = "ERROR";
|
|
26
|
-
const LONG_PRESS_DETECTED = "LONG_PRESS_DETECTED";
|
|
27
|
-
const NOT_RESPONDER = "NOT_RESPONDER";
|
|
28
|
-
const RESPONDER_ACTIVE_LONG_PRESS_START = "RESPONDER_ACTIVE_LONG_PRESS_START";
|
|
29
|
-
const RESPONDER_ACTIVE_PRESS_START = "RESPONDER_ACTIVE_PRESS_START";
|
|
30
|
-
const RESPONDER_INACTIVE_PRESS_START = "RESPONDER_INACTIVE_PRESS_START";
|
|
31
|
-
const RESPONDER_GRANT = "RESPONDER_GRANT";
|
|
32
|
-
const RESPONDER_RELEASE = "RESPONDER_RELEASE";
|
|
33
|
-
const RESPONDER_TERMINATED = "RESPONDER_TERMINATED";
|
|
34
|
-
const Transitions = Object.freeze({
|
|
20
|
+
const DELAY = "DELAY", ERROR = "ERROR", LONG_PRESS_DETECTED = "LONG_PRESS_DETECTED", NOT_RESPONDER = "NOT_RESPONDER", RESPONDER_ACTIVE_LONG_PRESS_START = "RESPONDER_ACTIVE_LONG_PRESS_START", RESPONDER_ACTIVE_PRESS_START = "RESPONDER_ACTIVE_PRESS_START", RESPONDER_INACTIVE_PRESS_START = "RESPONDER_INACTIVE_PRESS_START", RESPONDER_GRANT = "RESPONDER_GRANT", RESPONDER_RELEASE = "RESPONDER_RELEASE", RESPONDER_TERMINATED = "RESPONDER_TERMINATED", Transitions = Object.freeze({
|
|
35
21
|
NOT_RESPONDER: {
|
|
36
22
|
DELAY: ERROR,
|
|
37
23
|
RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,
|
|
@@ -67,32 +53,22 @@ const Transitions = Object.freeze({
|
|
|
67
53
|
RESPONDER_TERMINATED: NOT_RESPONDER,
|
|
68
54
|
LONG_PRESS_DETECTED: NOT_RESPONDER
|
|
69
55
|
}
|
|
70
|
-
})
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const isTerminalSignal = (signal) => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;
|
|
75
|
-
const isValidKeyPress = (event) => {
|
|
76
|
-
const key = event.key;
|
|
77
|
-
const target = event.target;
|
|
78
|
-
const role = target.getAttribute("role");
|
|
79
|
-
const isSpacebar = key === " " || key === "Spacebar";
|
|
80
|
-
return key === "Enter" || isSpacebar && role === "button";
|
|
81
|
-
};
|
|
82
|
-
const DEFAULT_LONG_PRESS_DELAY_MS = 450;
|
|
83
|
-
const DEFAULT_PRESS_DELAY_MS = 50;
|
|
56
|
+
}), isActiveSignal = (signal) => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START, isButtonRole = (element) => element.getAttribute("role") === "button", isPressStartSignal = (signal) => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START, isTerminalSignal = (signal) => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE, isValidKeyPress = (event) => {
|
|
57
|
+
const key = event.key, role = event.target.getAttribute("role");
|
|
58
|
+
return key === "Enter" || (key === " " || key === "Spacebar") && role === "button";
|
|
59
|
+
}, DEFAULT_LONG_PRESS_DELAY_MS = 450, DEFAULT_PRESS_DELAY_MS = 50;
|
|
84
60
|
class PressResponder {
|
|
61
|
+
_touchActivatePosition = null;
|
|
62
|
+
_pressDelayTimeout = 0;
|
|
63
|
+
_selectionTerminated = !1;
|
|
64
|
+
_isPointerTouch = !1;
|
|
65
|
+
_longPressDelayTimeout = 0;
|
|
66
|
+
_longPressDispatched = !1;
|
|
67
|
+
_pressOutDelayTimeout = 0;
|
|
68
|
+
_touchState = NOT_RESPONDER;
|
|
69
|
+
_config = null;
|
|
70
|
+
_eventHandlers = null;
|
|
85
71
|
constructor(config) {
|
|
86
|
-
this._touchActivatePosition = null;
|
|
87
|
-
this._pressDelayTimeout = 0;
|
|
88
|
-
this._selectionTerminated = false;
|
|
89
|
-
this._isPointerTouch = false;
|
|
90
|
-
this._longPressDelayTimeout = 0;
|
|
91
|
-
this._longPressDispatched = false;
|
|
92
|
-
this._pressOutDelayTimeout = 0;
|
|
93
|
-
this._touchState = NOT_RESPONDER;
|
|
94
|
-
this._config = null;
|
|
95
|
-
this._eventHandlers = null;
|
|
96
72
|
this.configure(config);
|
|
97
73
|
}
|
|
98
74
|
configure(config) {
|
|
@@ -102,40 +78,25 @@ class PressResponder {
|
|
|
102
78
|
* Resets any pending timers. This should be called on unmount.
|
|
103
79
|
*/
|
|
104
80
|
reset() {
|
|
105
|
-
this._cancelLongPressDelayTimeout();
|
|
106
|
-
this._cancelPressDelayTimeout();
|
|
107
|
-
this._cancelPressOutDelayTimeout();
|
|
81
|
+
this._cancelLongPressDelayTimeout(), this._cancelPressDelayTimeout(), this._cancelPressOutDelayTimeout();
|
|
108
82
|
}
|
|
109
83
|
/**
|
|
110
84
|
* Returns a set of props to spread into the interactive element.
|
|
111
85
|
*/
|
|
112
86
|
getEventHandlers() {
|
|
113
|
-
|
|
114
|
-
this._eventHandlers = this._createEventHandlers();
|
|
115
|
-
}
|
|
116
|
-
return this._eventHandlers;
|
|
87
|
+
return this._eventHandlers == null && (this._eventHandlers = this._createEventHandlers()), this._eventHandlers;
|
|
117
88
|
}
|
|
118
89
|
_createEventHandlers() {
|
|
119
90
|
const start = (event, shouldDelay) => {
|
|
120
|
-
event.persist();
|
|
121
|
-
this._cancelPressOutDelayTimeout();
|
|
122
|
-
this._longPressDispatched = false;
|
|
123
|
-
this._selectionTerminated = false;
|
|
124
|
-
this._touchState = NOT_RESPONDER;
|
|
125
|
-
this._isPointerTouch = event.nativeEvent.type === "touchstart";
|
|
126
|
-
this._receiveSignal(RESPONDER_GRANT, event);
|
|
91
|
+
event.persist(), this._cancelPressOutDelayTimeout(), this._longPressDispatched = !1, this._selectionTerminated = !1, this._touchState = NOT_RESPONDER, this._isPointerTouch = event.nativeEvent.type === "touchstart", this._receiveSignal(RESPONDER_GRANT, event);
|
|
127
92
|
const delayPressStart = normalizeDelay(
|
|
128
93
|
this._config.delayPressStart,
|
|
129
94
|
0,
|
|
130
95
|
DEFAULT_PRESS_DELAY_MS
|
|
131
96
|
);
|
|
132
|
-
|
|
133
|
-
this._pressDelayTimeout = setTimeout(() => {
|
|
134
|
-
this._receiveSignal(DELAY, event);
|
|
135
|
-
}, delayPressStart);
|
|
136
|
-
} else {
|
|
97
|
+
shouldDelay !== !1 && delayPressStart > 0 ? this._pressDelayTimeout = setTimeout(() => {
|
|
137
98
|
this._receiveSignal(DELAY, event);
|
|
138
|
-
}
|
|
99
|
+
}, delayPressStart) : this._receiveSignal(DELAY, event);
|
|
139
100
|
const delayLongPress = normalizeDelay(
|
|
140
101
|
this._config.delayLongPress,
|
|
141
102
|
10,
|
|
@@ -144,86 +105,45 @@ class PressResponder {
|
|
|
144
105
|
this._longPressDelayTimeout = setTimeout(() => {
|
|
145
106
|
this._handleLongPress(event);
|
|
146
107
|
}, delayLongPress + delayPressStart);
|
|
147
|
-
}
|
|
148
|
-
const end = (event) => {
|
|
108
|
+
}, end = (event) => {
|
|
149
109
|
this._receiveSignal(RESPONDER_RELEASE, event);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
const onPress = this._config.onPress;
|
|
153
|
-
const target = event.target;
|
|
110
|
+
}, keyupHandler = (event) => {
|
|
111
|
+
const onPress = this._config.onPress, target = event.target;
|
|
154
112
|
if (this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {
|
|
155
|
-
end(event);
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
const elementType = target.tagName.toLowerCase();
|
|
159
|
-
const isNativeInteractiveElement = role === "link" || elementType === "a" || elementType === "button" || elementType === "input" || elementType === "select" || elementType === "textarea";
|
|
160
|
-
if (onPress != null && !isNativeInteractiveElement) {
|
|
161
|
-
onPress(event);
|
|
162
|
-
}
|
|
113
|
+
end(event), document.removeEventListener("keyup", keyupHandler);
|
|
114
|
+
const role = target.getAttribute("role"), elementType = target.tagName.toLowerCase(), isNativeInteractiveElement = role === "link" || elementType === "a" || elementType === "button" || elementType === "input" || elementType === "select" || elementType === "textarea";
|
|
115
|
+
onPress != null && !isNativeInteractiveElement && onPress(event);
|
|
163
116
|
}
|
|
164
117
|
};
|
|
165
118
|
return {
|
|
166
119
|
onStartShouldSetResponder: (event) => {
|
|
167
120
|
const disabled = this._config.disabled;
|
|
168
|
-
|
|
169
|
-
event.stopPropagation();
|
|
170
|
-
}
|
|
171
|
-
if (disabled == null) {
|
|
172
|
-
return true;
|
|
173
|
-
}
|
|
174
|
-
return !disabled;
|
|
121
|
+
return disabled && isButtonRole(event.currentTarget) && event.stopPropagation(), disabled == null ? !0 : !disabled;
|
|
175
122
|
},
|
|
176
123
|
onKeyDown: (event) => {
|
|
177
|
-
const disabled = this._config.disabled;
|
|
178
|
-
const key = event.key;
|
|
179
|
-
const target = event.target;
|
|
124
|
+
const disabled = this._config.disabled, key = event.key, target = event.target;
|
|
180
125
|
if (!disabled && isValidKeyPress(event)) {
|
|
181
|
-
|
|
182
|
-
start(event, false);
|
|
183
|
-
document.addEventListener("keyup", keyupHandler);
|
|
184
|
-
}
|
|
126
|
+
this._touchState === NOT_RESPONDER && (start(event, !1), document.addEventListener("keyup", keyupHandler));
|
|
185
127
|
const role = target.getAttribute("role");
|
|
186
|
-
|
|
187
|
-
const _isButtonRole = role === "button" || role === "menuitem";
|
|
188
|
-
if (isSpacebarKey && _isButtonRole) {
|
|
189
|
-
event.preventDefault();
|
|
190
|
-
}
|
|
191
|
-
event.stopPropagation();
|
|
128
|
+
(key === " " || key === "Spacebar") && (role === "button" || role === "menuitem") && event.preventDefault(), event.stopPropagation();
|
|
192
129
|
}
|
|
193
130
|
},
|
|
194
131
|
onResponderGrant: (event) => start(event),
|
|
195
132
|
onResponderMove: (event) => {
|
|
196
|
-
|
|
197
|
-
this._config.onPressMove(event);
|
|
198
|
-
}
|
|
133
|
+
this._config.onPressMove != null && this._config.onPressMove(event);
|
|
199
134
|
const touch = getTouchFromResponderEvent(event);
|
|
200
135
|
if (this._touchActivatePosition != null) {
|
|
201
|
-
const deltaX = this._touchActivatePosition.pageX - touch.pageX;
|
|
202
|
-
|
|
203
|
-
if (Math.hypot(deltaX, deltaY) > 10) {
|
|
204
|
-
this._cancelLongPressDelayTimeout();
|
|
205
|
-
}
|
|
136
|
+
const deltaX = this._touchActivatePosition.pageX - touch.pageX, deltaY = this._touchActivatePosition.pageY - touch.pageY;
|
|
137
|
+
Math.hypot(deltaX, deltaY) > 10 && this._cancelLongPressDelayTimeout();
|
|
206
138
|
}
|
|
207
139
|
},
|
|
208
140
|
onResponderRelease: (event) => end(event),
|
|
209
141
|
onResponderTerminate: (event) => {
|
|
210
|
-
|
|
211
|
-
this._selectionTerminated = true;
|
|
212
|
-
}
|
|
213
|
-
this._receiveSignal(RESPONDER_TERMINATED, event);
|
|
142
|
+
event.nativeEvent.type === "selectionchange" && (this._selectionTerminated = !0), this._receiveSignal(RESPONDER_TERMINATED, event);
|
|
214
143
|
},
|
|
215
144
|
onResponderTerminationRequest: (event) => {
|
|
216
|
-
const _this$_config = this._config;
|
|
217
|
-
|
|
218
|
-
const disabled = _this$_config.disabled;
|
|
219
|
-
const onLongPress = _this$_config.onLongPress;
|
|
220
|
-
if (!disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === "contextmenu") {
|
|
221
|
-
return false;
|
|
222
|
-
}
|
|
223
|
-
if (cancelable == null) {
|
|
224
|
-
return true;
|
|
225
|
-
}
|
|
226
|
-
return cancelable;
|
|
145
|
+
const _this$_config = this._config, cancelable = _this$_config.cancelable, disabled = _this$_config.disabled, onLongPress = _this$_config.onLongPress;
|
|
146
|
+
return !disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === "contextmenu" ? !1 : cancelable ?? !0;
|
|
227
147
|
},
|
|
228
148
|
// NOTE: this diverges from react-native in 3 significant ways:
|
|
229
149
|
// * The `onPress` callback is not connected to the responder system (the native
|
|
@@ -234,38 +154,14 @@ class PressResponder {
|
|
|
234
154
|
// `click` target that is using the PressResponder.
|
|
235
155
|
// * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.
|
|
236
156
|
onClick: (event) => {
|
|
237
|
-
const _this$_config2 = this._config;
|
|
238
|
-
|
|
239
|
-
const onPress = _this$_config2.onPress;
|
|
240
|
-
if (!disabled) {
|
|
241
|
-
event.stopPropagation();
|
|
242
|
-
if (this._longPressDispatched || this._selectionTerminated) {
|
|
243
|
-
event.preventDefault();
|
|
244
|
-
} else if (onPress != null && event.altKey === false) {
|
|
245
|
-
onPress(event);
|
|
246
|
-
}
|
|
247
|
-
} else {
|
|
248
|
-
if (isButtonRole(event.currentTarget)) {
|
|
249
|
-
event.stopPropagation();
|
|
250
|
-
}
|
|
251
|
-
}
|
|
157
|
+
const _this$_config2 = this._config, disabled = _this$_config2.disabled, onPress = _this$_config2.onPress;
|
|
158
|
+
disabled ? isButtonRole(event.currentTarget) && event.stopPropagation() : (event.stopPropagation(), this._longPressDispatched || this._selectionTerminated ? event.preventDefault() : onPress != null && event.altKey === !1 && onPress(event));
|
|
252
159
|
},
|
|
253
160
|
// If `onLongPress` is provided and a touch pointer is being used, prevent the
|
|
254
161
|
// default context menu from opening.
|
|
255
162
|
onContextMenu: (event) => {
|
|
256
|
-
const _this$_config3 = this._config;
|
|
257
|
-
|
|
258
|
-
const onLongPress = _this$_config3.onLongPress;
|
|
259
|
-
if (!disabled) {
|
|
260
|
-
if (onLongPress != null && this._isPointerTouch && !event.defaultPrevented) {
|
|
261
|
-
event.preventDefault();
|
|
262
|
-
event.stopPropagation();
|
|
263
|
-
}
|
|
264
|
-
} else {
|
|
265
|
-
if (isButtonRole(event.currentTarget)) {
|
|
266
|
-
event.stopPropagation();
|
|
267
|
-
}
|
|
268
|
-
}
|
|
163
|
+
const _this$_config3 = this._config, disabled = _this$_config3.disabled, onLongPress = _this$_config3.onLongPress;
|
|
164
|
+
disabled ? isButtonRole(event.currentTarget) && event.stopPropagation() : onLongPress != null && this._isPointerTouch && !event.defaultPrevented && (event.preventDefault(), event.stopPropagation());
|
|
269
165
|
}
|
|
270
166
|
};
|
|
271
167
|
}
|
|
@@ -276,143 +172,63 @@ class PressResponder {
|
|
|
276
172
|
_receiveSignal(signal, event) {
|
|
277
173
|
const prevState = this._touchState;
|
|
278
174
|
let nextState = null;
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {
|
|
283
|
-
return;
|
|
284
|
-
}
|
|
285
|
-
if (nextState == null || nextState === ERROR) {
|
|
286
|
-
console.error(
|
|
287
|
-
`PressResponder: Invalid signal ${signal} for state ${prevState} on responder`
|
|
288
|
-
);
|
|
289
|
-
} else if (prevState !== nextState) {
|
|
290
|
-
this._performTransitionSideEffects(prevState, nextState, signal, event);
|
|
291
|
-
this._touchState = nextState;
|
|
292
|
-
}
|
|
175
|
+
Transitions[prevState] != null && (nextState = Transitions[prevState][signal]), !(this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) && (nextState == null || nextState === ERROR ? console.error(
|
|
176
|
+
`PressResponder: Invalid signal ${signal} for state ${prevState} on responder`
|
|
177
|
+
) : prevState !== nextState && (this._performTransitionSideEffects(prevState, nextState, signal, event), this._touchState = nextState));
|
|
293
178
|
}
|
|
294
179
|
/**
|
|
295
180
|
* Performs a transition between touchable states and identify any activations
|
|
296
181
|
* or deactivations (and callback invocations).
|
|
297
182
|
*/
|
|
298
183
|
_performTransitionSideEffects(prevState, nextState, signal, event) {
|
|
299
|
-
if (isTerminalSignal(signal)) {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
}, 0);
|
|
303
|
-
this._touchActivatePosition = null;
|
|
304
|
-
this._cancelLongPressDelayTimeout();
|
|
305
|
-
}
|
|
306
|
-
if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {
|
|
184
|
+
if (isTerminalSignal(signal) && (setTimeout(() => {
|
|
185
|
+
this._isPointerTouch = !1;
|
|
186
|
+
}, 0), this._touchActivatePosition = null, this._cancelLongPressDelayTimeout()), isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {
|
|
307
187
|
const onLongPress = this._config.onLongPress;
|
|
308
|
-
|
|
309
|
-
onLongPress(event);
|
|
310
|
-
this._longPressDispatched = true;
|
|
311
|
-
}
|
|
188
|
+
onLongPress != null && event.nativeEvent.key == null && (onLongPress(event), this._longPressDispatched = !0);
|
|
312
189
|
}
|
|
313
|
-
const isPrevActive = isActiveSignal(prevState);
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
this._activate(event);
|
|
317
|
-
} else if (isPrevActive && !isNextActive) {
|
|
318
|
-
this._deactivate(event);
|
|
319
|
-
}
|
|
320
|
-
if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {
|
|
321
|
-
const _this$_config4 = this._config;
|
|
322
|
-
const _onLongPress = _this$_config4.onLongPress;
|
|
323
|
-
const onPress = _this$_config4.onPress;
|
|
324
|
-
if (onPress != null) {
|
|
325
|
-
const isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;
|
|
326
|
-
if (!isPressCanceledByLongPress) {
|
|
327
|
-
if (!(isNextActive || isPrevActive)) {
|
|
328
|
-
this._activate(event);
|
|
329
|
-
this._deactivate(event);
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
}
|
|
190
|
+
const isPrevActive = isActiveSignal(prevState), isNextActive = isActiveSignal(nextState);
|
|
191
|
+
if (!isPrevActive && isNextActive ? this._activate(event) : isPrevActive && !isNextActive && this._deactivate(event), isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {
|
|
192
|
+
const _this$_config4 = this._config, _onLongPress = _this$_config4.onLongPress;
|
|
193
|
+
_this$_config4.onPress != null && (_onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START || isNextActive || isPrevActive || (this._activate(event), this._deactivate(event)));
|
|
333
194
|
}
|
|
334
195
|
this._cancelPressDelayTimeout();
|
|
335
196
|
}
|
|
336
197
|
_activate(event) {
|
|
337
|
-
const _this$_config5 = this._config;
|
|
338
|
-
const onPressChange = _this$_config5.onPressChange;
|
|
339
|
-
const onPressStart = _this$_config5.onPressStart;
|
|
340
|
-
const touch = getTouchFromResponderEvent(event);
|
|
198
|
+
const _this$_config5 = this._config, onPressChange = _this$_config5.onPressChange, onPressStart = _this$_config5.onPressStart, touch = getTouchFromResponderEvent(event);
|
|
341
199
|
this._touchActivatePosition = {
|
|
342
200
|
pageX: touch.pageX,
|
|
343
201
|
pageY: touch.pageY
|
|
344
|
-
};
|
|
345
|
-
if (onPressStart != null) {
|
|
346
|
-
onPressStart(event);
|
|
347
|
-
}
|
|
348
|
-
if (onPressChange != null) {
|
|
349
|
-
onPressChange(true);
|
|
350
|
-
}
|
|
202
|
+
}, onPressStart?.(event), onPressChange?.(!0);
|
|
351
203
|
}
|
|
352
204
|
_deactivate(event) {
|
|
353
|
-
const _this$_config6 = this._config;
|
|
354
|
-
const onPressChange = _this$_config6.onPressChange;
|
|
355
|
-
const onPressEnd = _this$_config6.onPressEnd;
|
|
205
|
+
const _this$_config6 = this._config, onPressChange = _this$_config6.onPressChange, onPressEnd = _this$_config6.onPressEnd;
|
|
356
206
|
function end() {
|
|
357
|
-
|
|
358
|
-
onPressEnd(event);
|
|
359
|
-
}
|
|
360
|
-
if (onPressChange != null) {
|
|
361
|
-
onPressChange(false);
|
|
362
|
-
}
|
|
207
|
+
onPressEnd?.(event), onPressChange?.(!1);
|
|
363
208
|
}
|
|
364
209
|
const delayPressEnd = normalizeDelay(this._config.delayPressEnd);
|
|
365
|
-
|
|
366
|
-
this._pressOutDelayTimeout = setTimeout(() => {
|
|
367
|
-
end();
|
|
368
|
-
}, delayPressEnd);
|
|
369
|
-
} else {
|
|
210
|
+
delayPressEnd > 0 ? this._pressOutDelayTimeout = setTimeout(() => {
|
|
370
211
|
end();
|
|
371
|
-
}
|
|
212
|
+
}, delayPressEnd) : end();
|
|
372
213
|
}
|
|
373
214
|
_handleLongPress(event) {
|
|
374
|
-
|
|
375
|
-
this._receiveSignal(LONG_PRESS_DETECTED, event);
|
|
376
|
-
}
|
|
215
|
+
(this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) && this._receiveSignal(LONG_PRESS_DETECTED, event);
|
|
377
216
|
}
|
|
378
217
|
_cancelLongPressDelayTimeout() {
|
|
379
|
-
|
|
380
|
-
clearTimeout(this._longPressDelayTimeout);
|
|
381
|
-
this._longPressDelayTimeout = null;
|
|
382
|
-
}
|
|
218
|
+
this._longPressDelayTimeout != null && (clearTimeout(this._longPressDelayTimeout), this._longPressDelayTimeout = null);
|
|
383
219
|
}
|
|
384
220
|
_cancelPressDelayTimeout() {
|
|
385
|
-
|
|
386
|
-
clearTimeout(this._pressDelayTimeout);
|
|
387
|
-
this._pressDelayTimeout = null;
|
|
388
|
-
}
|
|
221
|
+
this._pressDelayTimeout != null && (clearTimeout(this._pressDelayTimeout), this._pressDelayTimeout = null);
|
|
389
222
|
}
|
|
390
223
|
_cancelPressOutDelayTimeout() {
|
|
391
|
-
|
|
392
|
-
clearTimeout(this._pressOutDelayTimeout);
|
|
393
|
-
this._pressOutDelayTimeout = null;
|
|
394
|
-
}
|
|
224
|
+
this._pressOutDelayTimeout != null && (clearTimeout(this._pressOutDelayTimeout), this._pressOutDelayTimeout = null);
|
|
395
225
|
}
|
|
396
226
|
}
|
|
397
227
|
function normalizeDelay(delay, min, fallback) {
|
|
398
|
-
|
|
399
|
-
min = 0;
|
|
400
|
-
}
|
|
401
|
-
if (fallback === void 0) {
|
|
402
|
-
fallback = 0;
|
|
403
|
-
}
|
|
404
|
-
return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);
|
|
228
|
+
return min === void 0 && (min = 0), fallback === void 0 && (fallback = 0), Math.max(min, delay ?? fallback);
|
|
405
229
|
}
|
|
406
230
|
function getTouchFromResponderEvent(event) {
|
|
407
|
-
const _event$nativeEvent = event.nativeEvent;
|
|
408
|
-
|
|
409
|
-
const touches = _event$nativeEvent.touches;
|
|
410
|
-
if (touches != null && touches.length > 0) {
|
|
411
|
-
return touches[0];
|
|
412
|
-
}
|
|
413
|
-
if (changedTouches != null && changedTouches.length > 0) {
|
|
414
|
-
return changedTouches[0];
|
|
415
|
-
}
|
|
416
|
-
return event.nativeEvent;
|
|
231
|
+
const _event$nativeEvent = event.nativeEvent, changedTouches = _event$nativeEvent.changedTouches, touches = _event$nativeEvent.touches;
|
|
232
|
+
return touches != null && touches.length > 0 ? touches[0] : changedTouches != null && changedTouches.length > 0 ? changedTouches[0] : event.nativeEvent;
|
|
417
233
|
}
|
|
418
234
|
//# sourceMappingURL=PressResponder.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/PressResponder.ts"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|