@hanzogui/native 4.3.1 → 7.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/.turbo/turbo-build.log +1 -1
- package/dist/cjs/PressBoundary.cjs +92 -0
- package/dist/cjs/PressBoundary.native.js +105 -0
- package/dist/cjs/PressBoundary.native.js.map +1 -0
- package/dist/cjs/gesture-handler.cjs +36 -0
- package/dist/cjs/gesture-handler.native.js +39 -0
- package/dist/cjs/gesture-handler.native.js.map +1 -0
- package/dist/cjs/gestureState.cjs +94 -5
- package/dist/cjs/gestureState.native.js +98 -13
- package/dist/cjs/gestureState.native.js.map +1 -1
- package/dist/cjs/index.cjs +4 -1
- package/dist/cjs/index.native.js +4 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/setup-gesture-handler.cjs +44 -8
- package/dist/cjs/setup-gesture-handler.native.js +44 -8
- package/dist/cjs/setup-gesture-handler.native.js.map +1 -1
- package/dist/esm/PressBoundary.mjs +56 -0
- package/dist/esm/PressBoundary.mjs.map +1 -0
- package/dist/esm/PressBoundary.native.js +66 -0
- package/dist/esm/PressBoundary.native.js.map +1 -0
- package/dist/esm/gesture-handler.mjs +6 -0
- package/dist/esm/gesture-handler.mjs.map +1 -0
- package/dist/esm/gesture-handler.native.js +6 -0
- package/dist/esm/gesture-handler.native.js.map +1 -0
- package/dist/esm/gestureState.mjs +92 -5
- package/dist/esm/gestureState.mjs.map +1 -1
- package/dist/esm/gestureState.native.js +96 -13
- package/dist/esm/gestureState.native.js.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/setup-gesture-handler.mjs +17 -8
- package/dist/esm/setup-gesture-handler.mjs.map +1 -1
- package/dist/esm/setup-gesture-handler.native.js +17 -8
- package/dist/esm/setup-gesture-handler.native.js.map +1 -1
- package/gesture-handler/index.cjs +1 -0
- package/gesture-handler/index.js +1 -0
- package/gesture-handler/index.native.cjs +1 -0
- package/gesture-handler/index.native.js +1 -0
- package/gesture-handler.cjs +1 -0
- package/package.json +17 -4
- package/src/PressBoundary.tsx +81 -0
- package/src/gesture-handler.ts +17 -0
- package/src/gestureState.ts +137 -6
- package/src/index.ts +12 -1
- package/src/setup-gesture-handler.ts +38 -11
- package/types/PressBoundary.d.ts +14 -0
- package/types/PressBoundary.d.ts.map +11 -0
- package/types/gesture-handler.d.ts +8 -0
- package/types/gesture-handler.d.ts.map +11 -0
- package/types/gestureState.d.ts +4 -0
- package/types/gestureState.d.ts.map +2 -2
- package/types/index.d.ts +3 -1
- package/types/index.d.ts.map +2 -2
- package/types/setup-gesture-handler.d.ts +8 -1
- package/types/setup-gesture-handler.d.ts.map +2 -2
|
@@ -1,10 +1,46 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var setup_gesture_handler_exports = {};
|
|
24
|
+
__export(setup_gesture_handler_exports, {
|
|
25
|
+
getGestureHandlerConfig: () => getGestureHandlerConfig,
|
|
26
|
+
setupGestureHandler: () => setupGestureHandler
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(setup_gesture_handler_exports);
|
|
1
29
|
var import_gestureState = require("./gestureState.cjs");
|
|
2
|
-
|
|
30
|
+
let currentConfig = {
|
|
31
|
+
pressEvents: true,
|
|
32
|
+
sheet: true
|
|
33
|
+
};
|
|
34
|
+
function getGestureHandlerConfig() {
|
|
35
|
+
return currentConfig;
|
|
36
|
+
}
|
|
37
|
+
function setupGestureHandler(config) {
|
|
3
38
|
const g = globalThis;
|
|
4
|
-
if (
|
|
5
|
-
|
|
39
|
+
if (config) {
|
|
40
|
+
currentConfig = config;
|
|
6
41
|
}
|
|
7
|
-
|
|
42
|
+
const isFirstRun = !g.__tamagui_native_gesture_setup_complete;
|
|
43
|
+
g.__tamagui_native_gesture_setup_complete = true;
|
|
8
44
|
try {
|
|
9
45
|
const rngh = require("react-native-gesture-handler");
|
|
10
46
|
const {
|
|
@@ -14,13 +50,13 @@ function setup() {
|
|
|
14
50
|
} = rngh;
|
|
15
51
|
if (Gesture && GestureDetector) {
|
|
16
52
|
(0, import_gestureState.getGestureHandler)().set({
|
|
17
|
-
enabled:
|
|
53
|
+
enabled: currentConfig.pressEvents !== false,
|
|
18
54
|
Gesture,
|
|
19
55
|
GestureDetector,
|
|
20
56
|
ScrollView: ScrollView || null
|
|
21
57
|
});
|
|
22
|
-
g.
|
|
23
|
-
enabled:
|
|
58
|
+
g.__tamagui_sheet_gesture_state__ = {
|
|
59
|
+
enabled: currentConfig.sheet !== false,
|
|
24
60
|
Gesture,
|
|
25
61
|
GestureDetector,
|
|
26
62
|
ScrollView: ScrollView || null
|
|
@@ -28,4 +64,4 @@ function setup() {
|
|
|
28
64
|
}
|
|
29
65
|
} catch {}
|
|
30
66
|
}
|
|
31
|
-
|
|
67
|
+
setupGestureHandler();
|
|
@@ -1,12 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var setup_gesture_handler_exports = {};
|
|
26
|
+
__export(setup_gesture_handler_exports, {
|
|
27
|
+
getGestureHandlerConfig: () => getGestureHandlerConfig,
|
|
28
|
+
setupGestureHandler: () => setupGestureHandler
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(setup_gesture_handler_exports);
|
|
3
31
|
var import_gestureState = require("./gestureState.native.js");
|
|
4
|
-
|
|
32
|
+
var currentConfig = {
|
|
33
|
+
pressEvents: true,
|
|
34
|
+
sheet: true
|
|
35
|
+
};
|
|
36
|
+
function getGestureHandlerConfig() {
|
|
37
|
+
return currentConfig;
|
|
38
|
+
}
|
|
39
|
+
function setupGestureHandler(config) {
|
|
5
40
|
var g = globalThis;
|
|
6
|
-
if (
|
|
7
|
-
|
|
41
|
+
if (config) {
|
|
42
|
+
currentConfig = config;
|
|
8
43
|
}
|
|
9
|
-
|
|
44
|
+
var isFirstRun = !g.__tamagui_native_gesture_setup_complete;
|
|
45
|
+
g.__tamagui_native_gesture_setup_complete = true;
|
|
10
46
|
try {
|
|
11
47
|
var rngh = require("react-native-gesture-handler");
|
|
12
48
|
var {
|
|
@@ -16,13 +52,13 @@ function setup() {
|
|
|
16
52
|
} = rngh;
|
|
17
53
|
if (Gesture && GestureDetector) {
|
|
18
54
|
(0, import_gestureState.getGestureHandler)().set({
|
|
19
|
-
enabled:
|
|
55
|
+
enabled: currentConfig.pressEvents !== false,
|
|
20
56
|
Gesture,
|
|
21
57
|
GestureDetector,
|
|
22
58
|
ScrollView: ScrollView || null
|
|
23
59
|
});
|
|
24
|
-
g.
|
|
25
|
-
enabled:
|
|
60
|
+
g.__tamagui_sheet_gesture_state__ = {
|
|
61
|
+
enabled: currentConfig.sheet !== false,
|
|
26
62
|
Gesture,
|
|
27
63
|
GestureDetector,
|
|
28
64
|
ScrollView: ScrollView || null
|
|
@@ -30,5 +66,5 @@ function setup() {
|
|
|
30
66
|
}
|
|
31
67
|
} catch (e) {}
|
|
32
68
|
}
|
|
33
|
-
|
|
69
|
+
setupGestureHandler();
|
|
34
70
|
//# sourceMappingURL=setup-gesture-handler.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["import_gestureState","require","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","setup_gesture_handler_exports","__export","getGestureHandlerConfig","setupGestureHandler","module","exports","import_gestureState","require","currentConfig","pressEvents","sheet","config","g","globalThis","isFirstRun","__tamagui_native_gesture_setup_complete","rngh","Gesture","GestureDetector","ScrollView","getGestureHandler","set","enabled","__tamagui_sheet_gesture_state__","e"],"sources":["../../src/setup-gesture-handler.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,6BAAA;AAAAC,QAAA,CAAAD,6BAAA;EAAAE,uBAAA,EAAAA,CAAA,KAAAA,uBAAA;EAAAC,mBAAA,EAAAA,CAAA,KAAAA;AAAA;AAmBAC,MAAA,CAAAC,OAAA,GAAAV,YAAkC,CAAAK,6BAAA;AASlC,IAAIM,mBAAsC,GAAAC,OAAA;AAAA,IACxCC,aAAa;EACbC,WAAO;EACTC,KAAA;AAEO;AACL,SAAOR,wBAAA;EACT,OAAAM,aAAA;AAEO;AACL,SAAML,mBAAIA,CAAAQ,MAAA;EAGV,IAAIC,CAAA,GAAAC,UAAQ;EACV,IAAAF,MAAA;IACFH,aAAA,GAAAG,MAAA;EAGA;EACA,IAAEG,UAAA,IAAAF,CAAA,CAAAG,uCAA0C;EAE5CH,CAAA,CAAAG,uCAAI;EAEF;IACA,IAAAC,IAAQ,GAAAT,OAAS,+BAAgC;IAEjD,IAAI;MAAAU,OAAA;MAAWC,eAAA;MAAiBC;IAAA,IAAAH,IAAA;IAE9B,IAAAC,OAAA,IAAAC,eAAA;MAAwB,EACtB,EAAAZ,mBAAS,CAAAc,iBAA8B,IAAAC,GAAA;QACvCC,OAAA,EAAAd,aAAA,CAAAC,WAAA;QACAQ,OAAA;QACAC,eAAY;QACbC,UAAA,EAAAA,UAAA;MAGD,EAAE;MAAkCP,CAAA,CAClCW,+BAAuB,GAAU;QACjCD,OAAA,EAAAd,aAAA,CAAAE,KAAA;QACAO,OAAA;QACAC,eAAY;QACdC,UAAA,EAAAA,UAAA;MACF;IACF;EAEA,SAAAK,CAAA,GACF;AAGA","ignoreList":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { View } from "react-native-web";
|
|
3
|
+
import { claimExternalPressOwnership, releaseExternalPressOwnership } from "./gestureState.mjs";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
function composeFirst(ours, theirs) {
|
|
6
|
+
return (...args) => {
|
|
7
|
+
ours(...args);
|
|
8
|
+
theirs?.(...args);
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function composeLast(theirs, ours) {
|
|
12
|
+
return (...args) => {
|
|
13
|
+
theirs?.(...args);
|
|
14
|
+
ours(...args);
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const PressBoundary = React.forwardRef(function PressBoundary2({
|
|
18
|
+
enabled,
|
|
19
|
+
stopPropagation,
|
|
20
|
+
debugName,
|
|
21
|
+
onTouchStart,
|
|
22
|
+
onTouchEnd,
|
|
23
|
+
onTouchCancel,
|
|
24
|
+
onResponderGrant,
|
|
25
|
+
onResponderRelease,
|
|
26
|
+
onResponderTerminate,
|
|
27
|
+
...props
|
|
28
|
+
}, forwardedRef) {
|
|
29
|
+
const tokenRef = React.useRef(null);
|
|
30
|
+
const isEnabled = enabled ?? stopPropagation ?? true;
|
|
31
|
+
const claim = React.useCallback(() => {
|
|
32
|
+
if (!isEnabled) return;
|
|
33
|
+
if (tokenRef.current) {
|
|
34
|
+
releaseExternalPressOwnership(tokenRef.current, debugName);
|
|
35
|
+
}
|
|
36
|
+
tokenRef.current = claimExternalPressOwnership(debugName);
|
|
37
|
+
}, [debugName, isEnabled]);
|
|
38
|
+
const release = React.useCallback(() => {
|
|
39
|
+
if (!tokenRef.current) return;
|
|
40
|
+
releaseExternalPressOwnership(tokenRef.current, debugName);
|
|
41
|
+
tokenRef.current = null;
|
|
42
|
+
}, [debugName]);
|
|
43
|
+
React.useEffect(() => release, [release]);
|
|
44
|
+
return /* @__PURE__ */jsx(View, {
|
|
45
|
+
ref: forwardedRef,
|
|
46
|
+
...props,
|
|
47
|
+
onTouchStart: composeFirst(claim, onTouchStart),
|
|
48
|
+
onTouchEnd: composeLast(onTouchEnd, release),
|
|
49
|
+
onTouchCancel: composeLast(onTouchCancel, release),
|
|
50
|
+
onResponderGrant: composeFirst(claim, onResponderGrant),
|
|
51
|
+
onResponderRelease: composeLast(onResponderRelease, release),
|
|
52
|
+
onResponderTerminate: composeLast(onResponderTerminate, release)
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
export { PressBoundary };
|
|
56
|
+
//# sourceMappingURL=PressBoundary.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","claimExternalPressOwnership","releaseExternalPressOwnership","jsx","composeFirst","ours","theirs","args","composeLast","PressBoundary","forwardRef","PressBoundary2","enabled","stopPropagation","debugName","onTouchStart","onTouchEnd","onTouchCancel","onResponderGrant","onResponderRelease","onResponderTerminate","props","forwardedRef","tokenRef","useRef","isEnabled","claim","useCallback","current","release","useEffect","ref"],"sources":["../../src/PressBoundary.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAClB,SAASC,IAAA,QAA4B;AACrC,SACEC,2BAAA,EACAC,6BAAA,QAEK;AA+DH,SAAAC,GAAA;AAnDJ,SAASC,aAAiDC,IAAA,EAASC,MAAA,EAAY;EAC7E,OAAO,IAAIC,IAAA,KAAwB;IACjCF,IAAA,CAAK,GAAGE,IAAI;IACZD,MAAA,GAAS,GAAGC,IAAI;EAClB;AACF;AAEA,SAASC,YAAgDF,MAAA,EAAuBD,IAAA,EAAS;EACvF,OAAO,IAAIE,IAAA,KAAwB;IACjCD,MAAA,GAAS,GAAGC,IAAI;IAChBF,IAAA,CAAK,GAAGE,IAAI;EACd;AACF;AAEO,MAAME,aAAA,GAETV,KAAA,CAAMW,UAAA,CAAqC,SAASC,eACtD;EACEC,OAAA;EACAC,eAAA;EACAC,SAAA;EACAC,YAAA;EACAC,UAAA;EACAC,aAAA;EACAC,gBAAA;EACAC,kBAAA;EACAC,oBAAA;EACA,GAAGC;AACL,GACAC,YAAA,EACA;EACA,MAAMC,QAAA,GAAWxB,KAAA,CAAMyB,MAAA,CAA2C,IAAI;EACtE,MAAMC,SAAA,GAAYb,OAAA,IAAWC,eAAA,IAAmB;EAEhD,MAAMa,KAAA,GAAQ3B,KAAA,CAAM4B,WAAA,CAAY,MAAY;IAC1C,IAAI,CAACF,SAAA,EAAW;IAChB,IAAIF,QAAA,CAASK,OAAA,EAAS;MACpB1B,6BAAA,CAA8BqB,QAAA,CAASK,OAAA,EAASd,SAAS;IAC3D;IACAS,QAAA,CAASK,OAAA,GAAU3B,2BAAA,CAA4Ba,SAAS;EAC1D,GAAG,CAACA,SAAA,EAAWW,SAAS,CAAC;EAEzB,MAAMI,OAAA,GAAU9B,KAAA,CAAM4B,WAAA,CAAY,MAAY;IAC5C,IAAI,CAACJ,QAAA,CAASK,OAAA,EAAS;IACvB1B,6BAAA,CAA8BqB,QAAA,CAASK,OAAA,EAASd,SAAS;IACzDS,QAAA,CAASK,OAAA,GAAU;EACrB,GAAG,CAACd,SAAS,CAAC;EAEdf,KAAA,CAAM+B,SAAA,CAAU,MAAMD,OAAA,EAAS,CAACA,OAAO,CAAC;EAExC,OACE,eAAA1B,GAAA,CAACH,IAAA;IACC+B,GAAA,EAAKT,YAAA;IACJ,GAAGD,KAAA;IACJN,YAAA,EAAcX,YAAA,CAAasB,KAAA,EAAOX,YAAY;IAC9CC,UAAA,EAAYR,WAAA,CAAYQ,UAAA,EAAYa,OAAO;IAC3CZ,aAAA,EAAeT,WAAA,CAAYS,aAAA,EAAeY,OAAO;IACjDX,gBAAA,EAAkBd,YAAA,CAAasB,KAAA,EAAOR,gBAAgB;IACtDC,kBAAA,EAAoBX,WAAA,CAAYW,kBAAA,EAAoBU,OAAO;IAC3DT,oBAAA,EAAsBZ,WAAA,CAAYY,oBAAA,EAAsBS,OAAO;EAAA,CACjE;AAEJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { View } from "react-native";
|
|
4
|
+
import { claimExternalPressOwnership, releaseExternalPressOwnership } from "./gestureState.native.js";
|
|
5
|
+
function composeFirst(ours, theirs) {
|
|
6
|
+
return function () {
|
|
7
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
8
|
+
args[_key] = arguments[_key];
|
|
9
|
+
}
|
|
10
|
+
ours(...args);
|
|
11
|
+
theirs === null || theirs === void 0 ? void 0 : theirs(...args);
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function composeLast(theirs, ours) {
|
|
15
|
+
return function () {
|
|
16
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
17
|
+
args[_key] = arguments[_key];
|
|
18
|
+
}
|
|
19
|
+
theirs === null || theirs === void 0 ? void 0 : theirs(...args);
|
|
20
|
+
ours(...args);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
var PressBoundary = /* @__PURE__ */React.forwardRef(function PressBoundary2(param, forwardedRef) {
|
|
24
|
+
var {
|
|
25
|
+
enabled,
|
|
26
|
+
stopPropagation,
|
|
27
|
+
debugName,
|
|
28
|
+
onTouchStart,
|
|
29
|
+
onTouchEnd,
|
|
30
|
+
onTouchCancel,
|
|
31
|
+
onResponderGrant,
|
|
32
|
+
onResponderRelease,
|
|
33
|
+
onResponderTerminate,
|
|
34
|
+
...props
|
|
35
|
+
} = param;
|
|
36
|
+
var tokenRef = React.useRef(null);
|
|
37
|
+
var _ref;
|
|
38
|
+
var isEnabled = (_ref = enabled !== null && enabled !== void 0 ? enabled : stopPropagation) !== null && _ref !== void 0 ? _ref : true;
|
|
39
|
+
var claim = React.useCallback(function () {
|
|
40
|
+
if (!isEnabled) return;
|
|
41
|
+
if (tokenRef.current) {
|
|
42
|
+
releaseExternalPressOwnership(tokenRef.current, debugName);
|
|
43
|
+
}
|
|
44
|
+
tokenRef.current = claimExternalPressOwnership(debugName);
|
|
45
|
+
}, [debugName, isEnabled]);
|
|
46
|
+
var release = React.useCallback(function () {
|
|
47
|
+
if (!tokenRef.current) return;
|
|
48
|
+
releaseExternalPressOwnership(tokenRef.current, debugName);
|
|
49
|
+
tokenRef.current = null;
|
|
50
|
+
}, [debugName]);
|
|
51
|
+
React.useEffect(function () {
|
|
52
|
+
return release;
|
|
53
|
+
}, [release]);
|
|
54
|
+
return /* @__PURE__ */_jsx(View, {
|
|
55
|
+
ref: forwardedRef,
|
|
56
|
+
...props,
|
|
57
|
+
onTouchStart: composeFirst(claim, onTouchStart),
|
|
58
|
+
onTouchEnd: composeLast(onTouchEnd, release),
|
|
59
|
+
onTouchCancel: composeLast(onTouchCancel, release),
|
|
60
|
+
onResponderGrant: composeFirst(claim, onResponderGrant),
|
|
61
|
+
onResponderRelease: composeLast(onResponderRelease, release),
|
|
62
|
+
onResponderTerminate: composeLast(onResponderTerminate, release)
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
export { PressBoundary };
|
|
66
|
+
//# sourceMappingURL=PressBoundary.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","React","View","claimExternalPressOwnership","releaseExternalPressOwnership","composeFirst","ours","theirs","_len","arguments","length","args","Array","_key","composeLast","PressBoundary","forwardRef","PressBoundary2","param","forwardedRef","enabled","stopPropagation","debugName","onTouchStart","onTouchEnd","onTouchCancel","onResponderGrant","onResponderRelease","onResponderTerminate","props","tokenRef","useRef","_ref","isEnabled","claim","useCallback","current","release","useEffect","ref"],"sources":["../../src/PressBoundary.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAAOA,GAAA,IAAAC,IAAW;AAClB,OAAAC,KAAS,aAA4B;AACrC,SAAAC,IAAA;AAAA,SACEC,2BAAA,EAAAC,6BAAA;AAAA,SACAC,aAAAC,IAAA,EAAAC,MAAA;EAAA,OAEK;IA+DH,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAnDJF,IAAS,CAAAE,IAAA,IAAAJ,SAA0D,CAAAI,IAAA;IACjE;IACEP,IAAA,CAAK,GAAGK,IAAI;IACZJ,MAAA,KAAS,IAAG,IAAIA,MAAA,uBAAAA,MAAA,IAAAI,IAAA;EAClB;AACF;AAEA,SAASG,YAAgDP,MAAA,EAAuBD,IAAA,EAAS;EACvF,OAAO,YAAI;IACT,SAASE,IAAG,GAAIC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAChBF,IAAK,CAAAE,IAAG,CAAI,GAAAJ,SAAA,CAAAI,IAAA;IACd;IACFN,MAAA,aAAAA,MAAA,uBAAAA,MAAA,IAAAI,IAAA;IAEOL,IAAM,IAAAK,IAAA;EAIT;AAAA;AACA,IACAI,aAAA,kBAAAd,KAAA,CAAAe,UAAA,UAAAC,eAAAC,KAAA,EAAAC,YAAA;EACA;IAAAC,OAAA;IAAAC,eAAA;IAAAC,SAAA;IAAAC,YAAA;IAAAC,UAAA;IAAAC,aAAA;IAAAC,gBAAA;IAAAC,kBAAA;IAAAC,oBAAA;IAAA,GAAAC;EAAA,IAAAX,KAAA;EACA,IAAAY,QAAA,GAAA7B,KAAA,CAAA8B,MAAA;EACA,IAAAC,IAAA;EACA,IAAAC,SAAA,IAAAD,IAAA,GAAAZ,OAAA,aAAAA,OAAA,cAAAA,OAAA,GAAAC,eAAA,cAAAW,IAAA,cAAAA,IAAA;EACA,IAAAE,KAAA,GAAAjC,KAAA,CAAAkC,WAAA;IACA,KAAAF,SAAA;IACA,IAAGH,QAAA,CAAAM,OAAA;MAELhC,6BACA,CAAA0B,QAAA,CAAAM,OAAA,EAAAd,SAAA;IACA;IACAQ,QAAM,CAAAM,OAAY,GAAAjC,2BAA8B,CAAAmB,SAAA;EAEhD,IACEA,SAAK,EACLW,SAAI,CACF;EAAyD,IAC3DI,OAAA,GAAApC,KAAA,CAAAkC,WAAA;IACA,KAAAL,QAAS,CAAAM,OAAU;IACrBhC,6BAAyB,CAAA0B,QAAA,CAAAM,OAAA,EAAAd,SAAA;IAEzBQ,QAAM,CAAAM,OAAU,OAAM;EACpB,IACAd,SAAA,CACA;EACFrB,KAAI,CAAAqC,SAAU;IAEd,OAAMD,OAAU;EAEhB,IACGA,OAAA;EAAA,OACC,eAAKrC,IAAA,CAAAE,IAAA;IAAAqC,GACJ,EAAGpB,YAAA;IAAA,GACJU,KAAA;IAA8CN,YAC9C,EAAYlB,YAAY,CAAA6B,KAAA,EAAAX,YAAmB;IAAAC,UAC3C,EAAAV,WAAe,CAAAU,UAAY,EAAAa,OAAA,CAAe;IAAOZ,aACjD,EAAAX,WAAkB,CAAAW,aAAoB,EAAAY,OAAA;IAAgBX,gBACtD,EAAArB,YAAoB,CAAA6B,KAAY,EAAAR,gBAAoB;IAAOC,kBAC3D,EAAAb,WAAsB,CAAAa,kBAAY,EAAAU,OAAsB;IAAOT,oBAAA,EAAAd,WAAA,CAAAc,oBAAA,EAAAS,OAAA;EACjE;AAEJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { getGestureHandler } from "./gestureState.mjs";
|
|
2
|
+
import { claimExternalPressOwnership, releaseExternalPressOwnership } from "./gestureState.mjs";
|
|
3
|
+
import { PressBoundary } from "./PressBoundary.mjs";
|
|
4
|
+
import { getGestureHandlerConfig, setupGestureHandler } from "./setup-gesture-handler.mjs";
|
|
5
|
+
export { PressBoundary, getGestureHandler, getGestureHandlerConfig, setupGestureHandler, claimExternalPressOwnership as unstable_claimExternalPressOwnership, releaseExternalPressOwnership as unstable_releaseExternalPressOwnership };
|
|
6
|
+
//# sourceMappingURL=gesture-handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getGestureHandler","claimExternalPressOwnership","releaseExternalPressOwnership","PressBoundary","getGestureHandlerConfig","setupGestureHandler"],"sources":["../../src/gesture-handler.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,iBAAA,QAAyB;AAMlC,SACiCC,2BAAA,EACEC,6BAAA,QAC5B;AACP,SAASC,aAAA,QAAqB;AAE9B,SACEC,uBAAA,EACAC,mBAAA,QAEK","ignoreList":[]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { getGestureHandler } from "./gestureState.native.js";
|
|
2
|
+
import { claimExternalPressOwnership, releaseExternalPressOwnership } from "./gestureState.native.js";
|
|
3
|
+
import { PressBoundary } from "./PressBoundary.native.js";
|
|
4
|
+
import { getGestureHandlerConfig, setupGestureHandler } from "./setup-gesture-handler.native.js";
|
|
5
|
+
export { PressBoundary, getGestureHandler, getGestureHandlerConfig, setupGestureHandler, claimExternalPressOwnership as unstable_claimExternalPressOwnership, releaseExternalPressOwnership as unstable_releaseExternalPressOwnership };
|
|
6
|
+
//# sourceMappingURL=gesture-handler.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getGestureHandler","claimExternalPressOwnership","releaseExternalPressOwnership","PressBoundary","getGestureHandlerConfig","setupGestureHandler","unstable_claimExternalPressOwnership"],"sources":["../../src/gesture-handler.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,iBAAA,QAAyB;AAMlC,SAAAC,2BAAA,EAAAC,6BAAA;AAAA,SACiCC,aAAA;AAAA,SACEC,uBAAA,EAAAC,mBAAA;AAAA,SAEnCF,aAAS,EAETH,iBAAA,EACEI,uBAAA,EACAC,mBAAA,EAAAJ,2BAEK,IAAAK,oCAAA,E","ignoreList":[]}
|
|
@@ -5,6 +5,44 @@ const state = createGlobalState(`gesture`, {
|
|
|
5
5
|
GestureDetector: null,
|
|
6
6
|
ScrollView: null
|
|
7
7
|
});
|
|
8
|
+
let pressGestureDebugId = 0;
|
|
9
|
+
let externalPressDebugId = 0;
|
|
10
|
+
const pressState = {
|
|
11
|
+
owner: null,
|
|
12
|
+
ownerId: null,
|
|
13
|
+
ownerSource: null,
|
|
14
|
+
timestamp: 0
|
|
15
|
+
};
|
|
16
|
+
function resetPressOwner() {
|
|
17
|
+
pressState.owner = null;
|
|
18
|
+
pressState.ownerId = null;
|
|
19
|
+
pressState.ownerSource = null;
|
|
20
|
+
pressState.timestamp = 0;
|
|
21
|
+
}
|
|
22
|
+
function resetStaleOwner(now, debugName) {
|
|
23
|
+
if (now - pressState.timestamp > 2e3) {
|
|
24
|
+
resetPressOwner();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function claimExternalPressOwnership(debugName) {
|
|
28
|
+
const now = Date.now();
|
|
29
|
+
resetStaleOwner(now, debugName);
|
|
30
|
+
const token = {};
|
|
31
|
+
const ownerId = ++externalPressDebugId;
|
|
32
|
+
const previousOwnerId = pressState.ownerId;
|
|
33
|
+
const previousOwnerSource = pressState.ownerSource;
|
|
34
|
+
pressState.owner = token;
|
|
35
|
+
pressState.ownerId = ownerId;
|
|
36
|
+
pressState.ownerSource = "external";
|
|
37
|
+
pressState.timestamp = now;
|
|
38
|
+
return token;
|
|
39
|
+
}
|
|
40
|
+
function releaseExternalPressOwnership(token, debugName) {
|
|
41
|
+
if (!token || pressState.owner !== token) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
resetPressOwner();
|
|
45
|
+
}
|
|
8
46
|
function getGestureHandler() {
|
|
9
47
|
return {
|
|
10
48
|
get isEnabled() {
|
|
@@ -25,20 +63,69 @@ function getGestureHandler() {
|
|
|
25
63
|
} = state.get();
|
|
26
64
|
if (!Gesture) return null;
|
|
27
65
|
const longPressDuration = config.delayLongPress ?? 500;
|
|
66
|
+
const myToken = {};
|
|
67
|
+
const myDebugId = ++pressGestureDebugId;
|
|
68
|
+
const GRACE_PERIOD_MS = process.env.TAMAGUI_RNGH_PRESS_DELAY ? +process.env.TAMAGUI_RNGH_PRESS_DELAY : 24;
|
|
69
|
+
const tryClaimOwnership = () => {
|
|
70
|
+
const now = Date.now();
|
|
71
|
+
resetStaleOwner(now, config.debugName);
|
|
72
|
+
const withinGrace = now - pressState.timestamp < GRACE_PERIOD_MS;
|
|
73
|
+
const previousOwnerId = pressState.ownerId;
|
|
74
|
+
const previousOwnerSource = pressState.ownerSource;
|
|
75
|
+
if (pressState.owner === null || withinGrace && pressState.ownerSource !== "external") {
|
|
76
|
+
pressState.owner = myToken;
|
|
77
|
+
pressState.ownerId = myDebugId;
|
|
78
|
+
pressState.ownerSource = "internal";
|
|
79
|
+
pressState.timestamp = now;
|
|
80
|
+
}
|
|
81
|
+
return pressState.owner === myToken;
|
|
82
|
+
};
|
|
83
|
+
const isOwner = () => pressState.owner === myToken;
|
|
84
|
+
const releaseOwnership = () => {
|
|
85
|
+
if (pressState.owner === myToken) {
|
|
86
|
+
resetPressOwner();
|
|
87
|
+
}
|
|
88
|
+
};
|
|
28
89
|
const tap = Gesture.Tap().runOnJS(true).maxDuration(1e4).onBegin(e => {
|
|
29
|
-
|
|
90
|
+
tryClaimOwnership();
|
|
91
|
+
setTimeout(() => {
|
|
92
|
+
if (isOwner()) {
|
|
93
|
+
config.onPressIn?.(e);
|
|
94
|
+
}
|
|
95
|
+
}, GRACE_PERIOD_MS + 1);
|
|
30
96
|
}).onEnd(e => {
|
|
31
|
-
|
|
97
|
+
if (isOwner()) {
|
|
98
|
+
config.onPress?.(e);
|
|
99
|
+
}
|
|
32
100
|
}).onFinalize(e => {
|
|
33
|
-
|
|
101
|
+
if (isOwner()) {
|
|
102
|
+
config.onPressOut?.(e);
|
|
103
|
+
releaseOwnership();
|
|
104
|
+
}
|
|
34
105
|
});
|
|
35
106
|
if (config.hitSlop) tap.hitSlop(config.hitSlop);
|
|
36
107
|
if (!config.onLongPress) return tap;
|
|
37
|
-
const longPress = Gesture.LongPress().runOnJS(true).minDuration(longPressDuration).onBegin(e =>
|
|
108
|
+
const longPress = Gesture.LongPress().runOnJS(true).minDuration(longPressDuration).onBegin(e => {
|
|
109
|
+
tryClaimOwnership();
|
|
110
|
+
setTimeout(() => {
|
|
111
|
+
if (isOwner()) {
|
|
112
|
+
config.onPressIn?.(e);
|
|
113
|
+
}
|
|
114
|
+
}, GRACE_PERIOD_MS + 1);
|
|
115
|
+
}).onStart(e => {
|
|
116
|
+
if (isOwner()) {
|
|
117
|
+
config.onLongPress?.(e);
|
|
118
|
+
}
|
|
119
|
+
}).onFinalize(e => {
|
|
120
|
+
if (isOwner()) {
|
|
121
|
+
config.onPressOut?.(e);
|
|
122
|
+
releaseOwnership();
|
|
123
|
+
}
|
|
124
|
+
});
|
|
38
125
|
if (config.hitSlop) longPress.hitSlop(config.hitSlop);
|
|
39
126
|
return Gesture.Exclusive(longPress, tap);
|
|
40
127
|
}
|
|
41
128
|
};
|
|
42
129
|
}
|
|
43
|
-
export { getGestureHandler };
|
|
130
|
+
export { claimExternalPressOwnership, getGestureHandler, releaseExternalPressOwnership };
|
|
44
131
|
//# sourceMappingURL=gestureState.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createGlobalState","state","enabled","Gesture","GestureDetector","ScrollView","getGestureHandler","isEnabled","get","set","updates","Object","assign","disable","createPressGesture","config","longPressDuration","delayLongPress","tap","Tap","runOnJS","maxDuration","onBegin","e","onPressIn","onEnd","onPress","onFinalize","onPressOut","hitSlop","onLongPress","longPress","LongPress","minDuration","onStart","Exclusive"],"sources":["../../src/gestureState.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,iBAAA,QAAyB;AAGlC,MAAMC,KAAA,GAAQD,iBAAA,CAAgC,WAAW;EACvDE,OAAA,EAAS;EACTC,OAAA,EAAS;EACTC,eAAA,EAAiB;EACjBC,UAAA,EAAY;AACd,CAAC;
|
|
1
|
+
{"version":3,"names":["createGlobalState","state","enabled","Gesture","GestureDetector","ScrollView","pressGestureDebugId","externalPressDebugId","pressState","owner","ownerId","ownerSource","timestamp","resetPressOwner","resetStaleOwner","now","debugName","claimExternalPressOwnership","Date","token","previousOwnerId","previousOwnerSource","releaseExternalPressOwnership","getGestureHandler","isEnabled","get","set","updates","Object","assign","disable","createPressGesture","config","longPressDuration","delayLongPress","myToken","myDebugId","GRACE_PERIOD_MS","process","env","TAMAGUI_RNGH_PRESS_DELAY","tryClaimOwnership","withinGrace","isOwner","releaseOwnership","tap","Tap","runOnJS","maxDuration","onBegin","e","setTimeout","onPressIn","onEnd","onPress","onFinalize","onPressOut","hitSlop","onLongPress","longPress","LongPress","minDuration","onStart","Exclusive"],"sources":["../../src/gestureState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,44 @@ var state = createGlobalState(`gesture`, {
|
|
|
5
5
|
GestureDetector: null,
|
|
6
6
|
ScrollView: null
|
|
7
7
|
});
|
|
8
|
+
var pressGestureDebugId = 0;
|
|
9
|
+
var externalPressDebugId = 0;
|
|
10
|
+
var pressState = {
|
|
11
|
+
owner: null,
|
|
12
|
+
ownerId: null,
|
|
13
|
+
ownerSource: null,
|
|
14
|
+
timestamp: 0
|
|
15
|
+
};
|
|
16
|
+
function resetPressOwner() {
|
|
17
|
+
pressState.owner = null;
|
|
18
|
+
pressState.ownerId = null;
|
|
19
|
+
pressState.ownerSource = null;
|
|
20
|
+
pressState.timestamp = 0;
|
|
21
|
+
}
|
|
22
|
+
function resetStaleOwner(now, debugName) {
|
|
23
|
+
if (now - pressState.timestamp > 2e3) {
|
|
24
|
+
resetPressOwner();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function claimExternalPressOwnership(debugName) {
|
|
28
|
+
var now = Date.now();
|
|
29
|
+
resetStaleOwner(now, debugName);
|
|
30
|
+
var token = {};
|
|
31
|
+
var ownerId = ++externalPressDebugId;
|
|
32
|
+
var previousOwnerId = pressState.ownerId;
|
|
33
|
+
var previousOwnerSource = pressState.ownerSource;
|
|
34
|
+
pressState.owner = token;
|
|
35
|
+
pressState.ownerId = ownerId;
|
|
36
|
+
pressState.ownerSource = "external";
|
|
37
|
+
pressState.timestamp = now;
|
|
38
|
+
return token;
|
|
39
|
+
}
|
|
40
|
+
function releaseExternalPressOwnership(token, debugName) {
|
|
41
|
+
if (!token || pressState.owner !== token) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
resetPressOwner();
|
|
45
|
+
}
|
|
8
46
|
function getGestureHandler() {
|
|
9
47
|
return {
|
|
10
48
|
get isEnabled() {
|
|
@@ -26,32 +64,77 @@ function getGestureHandler() {
|
|
|
26
64
|
if (!Gesture) return null;
|
|
27
65
|
var _config_delayLongPress;
|
|
28
66
|
var longPressDuration = (_config_delayLongPress = config.delayLongPress) !== null && _config_delayLongPress !== void 0 ? _config_delayLongPress : 500;
|
|
67
|
+
var myToken = {};
|
|
68
|
+
var myDebugId = ++pressGestureDebugId;
|
|
69
|
+
var GRACE_PERIOD_MS = process.env.TAMAGUI_RNGH_PRESS_DELAY ? +process.env.TAMAGUI_RNGH_PRESS_DELAY : 24;
|
|
70
|
+
var tryClaimOwnership = function () {
|
|
71
|
+
var now = Date.now();
|
|
72
|
+
resetStaleOwner(now, config.debugName);
|
|
73
|
+
var withinGrace = now - pressState.timestamp < GRACE_PERIOD_MS;
|
|
74
|
+
var previousOwnerId = pressState.ownerId;
|
|
75
|
+
var previousOwnerSource = pressState.ownerSource;
|
|
76
|
+
if (pressState.owner === null || withinGrace && pressState.ownerSource !== "external") {
|
|
77
|
+
pressState.owner = myToken;
|
|
78
|
+
pressState.ownerId = myDebugId;
|
|
79
|
+
pressState.ownerSource = "internal";
|
|
80
|
+
pressState.timestamp = now;
|
|
81
|
+
}
|
|
82
|
+
return pressState.owner === myToken;
|
|
83
|
+
};
|
|
84
|
+
var isOwner = function () {
|
|
85
|
+
return pressState.owner === myToken;
|
|
86
|
+
};
|
|
87
|
+
var releaseOwnership = function () {
|
|
88
|
+
if (pressState.owner === myToken) {
|
|
89
|
+
resetPressOwner();
|
|
90
|
+
}
|
|
91
|
+
};
|
|
29
92
|
var tap = Gesture.Tap().runOnJS(true).maxDuration(1e4).onBegin(function (e) {
|
|
30
|
-
|
|
31
|
-
(
|
|
93
|
+
tryClaimOwnership();
|
|
94
|
+
setTimeout(function () {
|
|
95
|
+
if (isOwner()) {
|
|
96
|
+
var _config_onPressIn;
|
|
97
|
+
(_config_onPressIn = config.onPressIn) === null || _config_onPressIn === void 0 ? void 0 : _config_onPressIn.call(config, e);
|
|
98
|
+
}
|
|
99
|
+
}, GRACE_PERIOD_MS + 1);
|
|
32
100
|
}).onEnd(function (e) {
|
|
33
|
-
|
|
34
|
-
|
|
101
|
+
if (isOwner()) {
|
|
102
|
+
var _config_onPress;
|
|
103
|
+
(_config_onPress = config.onPress) === null || _config_onPress === void 0 ? void 0 : _config_onPress.call(config, e);
|
|
104
|
+
}
|
|
35
105
|
}).onFinalize(function (e) {
|
|
36
|
-
|
|
37
|
-
|
|
106
|
+
if (isOwner()) {
|
|
107
|
+
var _config_onPressOut;
|
|
108
|
+
(_config_onPressOut = config.onPressOut) === null || _config_onPressOut === void 0 ? void 0 : _config_onPressOut.call(config, e);
|
|
109
|
+
releaseOwnership();
|
|
110
|
+
}
|
|
38
111
|
});
|
|
39
112
|
if (config.hitSlop) tap.hitSlop(config.hitSlop);
|
|
40
113
|
if (!config.onLongPress) return tap;
|
|
41
114
|
var longPress = Gesture.LongPress().runOnJS(true).minDuration(longPressDuration).onBegin(function (e) {
|
|
42
|
-
|
|
43
|
-
|
|
115
|
+
tryClaimOwnership();
|
|
116
|
+
setTimeout(function () {
|
|
117
|
+
if (isOwner()) {
|
|
118
|
+
var _config_onPressIn;
|
|
119
|
+
(_config_onPressIn = config.onPressIn) === null || _config_onPressIn === void 0 ? void 0 : _config_onPressIn.call(config, e);
|
|
120
|
+
}
|
|
121
|
+
}, GRACE_PERIOD_MS + 1);
|
|
44
122
|
}).onStart(function (e) {
|
|
45
|
-
|
|
46
|
-
|
|
123
|
+
if (isOwner()) {
|
|
124
|
+
var _config_onLongPress;
|
|
125
|
+
(_config_onLongPress = config.onLongPress) === null || _config_onLongPress === void 0 ? void 0 : _config_onLongPress.call(config, e);
|
|
126
|
+
}
|
|
47
127
|
}).onFinalize(function (e) {
|
|
48
|
-
|
|
49
|
-
|
|
128
|
+
if (isOwner()) {
|
|
129
|
+
var _config_onPressOut;
|
|
130
|
+
(_config_onPressOut = config.onPressOut) === null || _config_onPressOut === void 0 ? void 0 : _config_onPressOut.call(config, e);
|
|
131
|
+
releaseOwnership();
|
|
132
|
+
}
|
|
50
133
|
});
|
|
51
134
|
if (config.hitSlop) longPress.hitSlop(config.hitSlop);
|
|
52
135
|
return Gesture.Exclusive(longPress, tap);
|
|
53
136
|
}
|
|
54
137
|
};
|
|
55
138
|
}
|
|
56
|
-
export { getGestureHandler };
|
|
139
|
+
export { claimExternalPressOwnership, getGestureHandler, releaseExternalPressOwnership };
|
|
57
140
|
//# sourceMappingURL=gestureState.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createGlobalState","state","enabled","Gesture","GestureDetector","ScrollView","getGestureHandler","isEnabled","get","set","updates","Object","assign","disable","createPressGesture","config","_config_delayLongPress","longPressDuration","delayLongPress","tap","Tap","runOnJS","maxDuration","onBegin","e","_config_onPressIn","onPressIn","call","onEnd","_config_onPress","onPress","onFinalize","_config_onPressOut","onPressOut","hitSlop","onLongPress","longPress","LongPress","minDuration"],"sources":["../../src/gestureState.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,iBAAA,QAAyB;AAGlC,IAAAC,KAAM,GAAAD,iBAAQ,UAAgC;EAC5CE,OAAA,EAAS;EACTC,OAAA,EAAS;EACTC,eAAA,EAAiB;EACjBC,UAAA,EAAY;AACd,CAAC;
|
|
1
|
+
{"version":3,"names":["createGlobalState","state","enabled","Gesture","GestureDetector","ScrollView","pressGestureDebugId","externalPressDebugId","pressState","owner","ownerId","ownerSource","timestamp","resetPressOwner","resetStaleOwner","now","debugName","claimExternalPressOwnership","Date","token","previousOwnerId","previousOwnerSource","releaseExternalPressOwnership","getGestureHandler","isEnabled","get","set","updates","Object","assign","disable","createPressGesture","config","_config_delayLongPress","longPressDuration","delayLongPress","myToken","myDebugId","GRACE_PERIOD_MS","process","env","TAMAGUI_RNGH_PRESS_DELAY","tryClaimOwnership","withinGrace","isOwner","releaseOwnership","tap","Tap","runOnJS","maxDuration","onBegin","e","setTimeout","_config_onPressIn","onPressIn","call","onEnd","_config_onPress","onPress","onFinalize","_config_onPressOut","onPressOut","hitSlop","onLongPress","longPress","LongPress","minDuration","onStart","_config_onLongPress"],"sources":["../../src/gestureState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getPortal } from "./portalState.mjs";
|
|
2
2
|
import { getGestureHandler } from "./gestureState.mjs";
|
|
3
|
+
import { claimExternalPressOwnership, releaseExternalPressOwnership } from "./gestureState.mjs";
|
|
3
4
|
import { getWorklets } from "./workletsState.mjs";
|
|
4
5
|
import { getSafeArea } from "./safeAreaState.mjs";
|
|
5
6
|
import { getLinearGradient } from "./linearGradientState.mjs";
|
|
@@ -8,5 +9,5 @@ import { getZeego } from "./zeegoState.mjs";
|
|
|
8
9
|
import { NativeMenuContext } from "./nativeMenuContext.mjs";
|
|
9
10
|
import { getBurnt } from "./burntState.mjs";
|
|
10
11
|
import { NativePortal, NativePortalHost, NativePortalProvider } from "./components.mjs";
|
|
11
|
-
export { NativeMenuContext, NativePortal, NativePortalHost, NativePortalProvider, getBurnt, getGestureHandler, getKeyboardControllerState, getLinearGradient, getPortal, getSafeArea, getWorklets, getZeego, isKeyboardControllerEnabled, setKeyboardControllerState };
|
|
12
|
+
export { NativeMenuContext, NativePortal, NativePortalHost, NativePortalProvider, getBurnt, getGestureHandler, getKeyboardControllerState, getLinearGradient, getPortal, getSafeArea, getWorklets, getZeego, isKeyboardControllerEnabled, setKeyboardControllerState, claimExternalPressOwnership as unstable_claimExternalPressOwnership, releaseExternalPressOwnership as unstable_releaseExternalPressOwnership };
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getPortal","getGestureHandler","getWorklets","getSafeArea","getLinearGradient","isKeyboardControllerEnabled","getKeyboardControllerState","setKeyboardControllerState","getZeego","NativeMenuContext","getBurnt","NativePortal","NativePortalHost","NativePortalProvider"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAuCA,SAASA,SAAA,QAAiB;AAI1B,SAASC,iBAAA,QAAyB;
|
|
1
|
+
{"version":3,"names":["getPortal","getGestureHandler","claimExternalPressOwnership","releaseExternalPressOwnership","getWorklets","getSafeArea","getLinearGradient","isKeyboardControllerEnabled","getKeyboardControllerState","setKeyboardControllerState","getZeego","NativeMenuContext","getBurnt","NativePortal","NativePortalHost","NativePortalProvider"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAuCA,SAASA,SAAA,QAAiB;AAI1B,SAASC,iBAAA,QAAyB;AAClC,SACiCC,2BAAA,EACEC,6BAAA,QAC5B;AAWP,SAASC,WAAA,QAAmB;AAI5B,SAASC,WAAA,QAAmB;AAI5B,SAASC,iBAAA,QAAyB;AAIlC,SACEC,2BAAA,EACAC,0BAAA,EACAC,0BAAA,QACK;AAIP,SAASC,QAAA,QAAgB;AAEzB,SAASC,iBAAA,QAAyB;AAGlC,SAASC,QAAA,QAAgB;AAIzB,SAASC,YAAA,EAAcC,gBAAA,EAAkBC,oBAAA,QAA4B","ignoreList":[]}
|