@hanzogui/react-native-use-pressable 2.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.
@@ -0,0 +1,307 @@
1
+ function _class_call_check(instance, Constructor) {
2
+ if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
3
+ }
4
+ function _defineProperties(target, props) {
5
+ for (var i = 0; i < props.length; i++) {
6
+ var descriptor = props[i];
7
+ descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor);
8
+ }
9
+ }
10
+ function _create_class(Constructor, protoProps, staticProps) {
11
+ return protoProps && _defineProperties(Constructor.prototype, protoProps), staticProps && _defineProperties(Constructor, staticProps), Constructor;
12
+ }
13
+ function _define_property(obj, key, value) {
14
+ return key in obj ? Object.defineProperty(obj, key, {
15
+ value,
16
+ enumerable: !0,
17
+ configurable: !0,
18
+ writable: !0
19
+ }) : obj[key] = value, obj;
20
+ }
21
+ var DELAY = "DELAY",
22
+ ERROR = "ERROR",
23
+ LONG_PRESS_DETECTED = "LONG_PRESS_DETECTED",
24
+ NOT_RESPONDER = "NOT_RESPONDER",
25
+ RESPONDER_ACTIVE_LONG_PRESS_START = "RESPONDER_ACTIVE_LONG_PRESS_START",
26
+ RESPONDER_ACTIVE_PRESS_START = "RESPONDER_ACTIVE_PRESS_START",
27
+ RESPONDER_INACTIVE_PRESS_START = "RESPONDER_INACTIVE_PRESS_START",
28
+ RESPONDER_GRANT = "RESPONDER_GRANT",
29
+ RESPONDER_RELEASE = "RESPONDER_RELEASE",
30
+ RESPONDER_TERMINATED = "RESPONDER_TERMINATED",
31
+ Transitions = Object.freeze({
32
+ NOT_RESPONDER: {
33
+ DELAY: ERROR,
34
+ RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,
35
+ RESPONDER_RELEASE: ERROR,
36
+ RESPONDER_TERMINATED: ERROR,
37
+ LONG_PRESS_DETECTED: ERROR
38
+ },
39
+ RESPONDER_INACTIVE_PRESS_START: {
40
+ DELAY: RESPONDER_ACTIVE_PRESS_START,
41
+ RESPONDER_GRANT: ERROR,
42
+ RESPONDER_RELEASE: NOT_RESPONDER,
43
+ RESPONDER_TERMINATED: NOT_RESPONDER,
44
+ LONG_PRESS_DETECTED: ERROR
45
+ },
46
+ RESPONDER_ACTIVE_PRESS_START: {
47
+ DELAY: ERROR,
48
+ RESPONDER_GRANT: ERROR,
49
+ RESPONDER_RELEASE: NOT_RESPONDER,
50
+ RESPONDER_TERMINATED: NOT_RESPONDER,
51
+ LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START
52
+ },
53
+ RESPONDER_ACTIVE_LONG_PRESS_START: {
54
+ DELAY: ERROR,
55
+ RESPONDER_GRANT: ERROR,
56
+ RESPONDER_RELEASE: NOT_RESPONDER,
57
+ RESPONDER_TERMINATED: NOT_RESPONDER,
58
+ LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START
59
+ },
60
+ ERROR: {
61
+ DELAY: NOT_RESPONDER,
62
+ RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,
63
+ RESPONDER_RELEASE: NOT_RESPONDER,
64
+ RESPONDER_TERMINATED: NOT_RESPONDER,
65
+ LONG_PRESS_DETECTED: NOT_RESPONDER
66
+ }
67
+ }),
68
+ isActiveSignal = function (signal) {
69
+ return signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;
70
+ },
71
+ isButtonRole = function (element) {
72
+ return element.getAttribute("role") === "button";
73
+ },
74
+ isPressStartSignal = function (signal) {
75
+ return signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;
76
+ },
77
+ isTerminalSignal = function (signal) {
78
+ return signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;
79
+ },
80
+ isValidKeyPress = function (event) {
81
+ var key = event.key,
82
+ target = event.target,
83
+ role = target.getAttribute("role"),
84
+ isSpacebar = key === " " || key === "Spacebar";
85
+ return key === "Enter" || isSpacebar && role === "button";
86
+ },
87
+ DEFAULT_LONG_PRESS_DELAY_MS = 450,
88
+ DEFAULT_PRESS_DELAY_MS = 50,
89
+ PressResponder = /* @__PURE__ */function () {
90
+ "use strict";
91
+
92
+ function PressResponder2(config) {
93
+ _class_call_check(this, PressResponder2), _define_property(this, "_touchActivatePosition", null), _define_property(this, "_pressDelayTimeout", 0), _define_property(this, "_selectionTerminated", !1), _define_property(this, "_isPointerTouch", !1), _define_property(this, "_longPressDelayTimeout", 0), _define_property(this, "_longPressDispatched", !1), _define_property(this, "_pressOutDelayTimeout", 0), _define_property(this, "_touchState", NOT_RESPONDER), _define_property(this, "_config", null), _define_property(this, "_eventHandlers", null), this.configure(config);
94
+ }
95
+ return _create_class(PressResponder2, [{
96
+ key: "configure",
97
+ value: function (config) {
98
+ this._config = config;
99
+ }
100
+ }, {
101
+ /**
102
+ * Resets any pending timers. This should be called on unmount.
103
+ */
104
+ key: "reset",
105
+ value: function () {
106
+ this._cancelLongPressDelayTimeout(), this._cancelPressDelayTimeout(), this._cancelPressOutDelayTimeout();
107
+ }
108
+ }, {
109
+ /**
110
+ * Returns a set of props to spread into the interactive element.
111
+ */
112
+ key: "getEventHandlers",
113
+ value: function () {
114
+ return this._eventHandlers == null && (this._eventHandlers = this._createEventHandlers()), this._eventHandlers;
115
+ }
116
+ }, {
117
+ key: "_createEventHandlers",
118
+ value: function () {
119
+ var _this = this,
120
+ start = function (event, shouldDelay) {
121
+ 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);
122
+ var delayPressStart = normalizeDelay(_this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);
123
+ shouldDelay !== !1 && delayPressStart > 0 ? _this._pressDelayTimeout = setTimeout(function () {
124
+ _this._receiveSignal(DELAY, event);
125
+ }, delayPressStart) : _this._receiveSignal(DELAY, event);
126
+ var delayLongPress = normalizeDelay(_this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);
127
+ _this._longPressDelayTimeout = setTimeout(function () {
128
+ _this._handleLongPress(event);
129
+ }, delayLongPress + delayPressStart);
130
+ },
131
+ end = function (event) {
132
+ _this._receiveSignal(RESPONDER_RELEASE, event);
133
+ },
134
+ keyupHandler = function (event) {
135
+ var onPress = _this._config.onPress,
136
+ target = event.target;
137
+ if (_this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {
138
+ end(event), document.removeEventListener("keyup", keyupHandler);
139
+ var role = target.getAttribute("role"),
140
+ elementType = target.tagName.toLowerCase(),
141
+ isNativeInteractiveElement = role === "link" || elementType === "a" || elementType === "button" || elementType === "input" || elementType === "select" || elementType === "textarea";
142
+ onPress != null && !isNativeInteractiveElement && onPress(event);
143
+ }
144
+ };
145
+ return {
146
+ onStartShouldSetResponder: function (event) {
147
+ var disabled = _this._config.disabled;
148
+ return disabled && isButtonRole(event.currentTarget) && event.stopPropagation(), disabled == null ? !0 : !disabled;
149
+ },
150
+ onKeyDown: function (event) {
151
+ var disabled = _this._config.disabled,
152
+ key = event.key,
153
+ target = event.target;
154
+ if (!disabled && isValidKeyPress(event)) {
155
+ _this._touchState === NOT_RESPONDER && (start(event, !1), document.addEventListener("keyup", keyupHandler));
156
+ var role = target.getAttribute("role"),
157
+ isSpacebarKey = key === " " || key === "Spacebar",
158
+ _isButtonRole = role === "button" || role === "menuitem";
159
+ isSpacebarKey && _isButtonRole && event.preventDefault(), event.stopPropagation();
160
+ }
161
+ },
162
+ onResponderGrant: function (event) {
163
+ return start(event);
164
+ },
165
+ onResponderMove: function (event) {
166
+ _this._config.onPressMove != null && _this._config.onPressMove(event);
167
+ var touch = getTouchFromResponderEvent(event);
168
+ if (_this._touchActivatePosition != null) {
169
+ var deltaX = _this._touchActivatePosition.pageX - touch.pageX,
170
+ deltaY = _this._touchActivatePosition.pageY - touch.pageY;
171
+ Math.hypot(deltaX, deltaY) > 10 && _this._cancelLongPressDelayTimeout();
172
+ }
173
+ },
174
+ onResponderRelease: function (event) {
175
+ return end(event);
176
+ },
177
+ onResponderTerminate: function (event) {
178
+ event.nativeEvent.type === "selectionchange" && (_this._selectionTerminated = !0), _this._receiveSignal(RESPONDER_TERMINATED, event);
179
+ },
180
+ onResponderTerminationRequest: function (event) {
181
+ var _this$_config = _this._config,
182
+ cancelable = _this$_config.cancelable,
183
+ disabled = _this$_config.disabled,
184
+ onLongPress = _this$_config.onLongPress;
185
+ return !disabled && onLongPress != null && _this._isPointerTouch && event.nativeEvent.type === "contextmenu" ? !1 : cancelable ?? !0;
186
+ },
187
+ // NOTE: this diverges from react-native in 3 significant ways:
188
+ // * The `onPress` callback is not connected to the responder system (the native
189
+ // `click` event must be used but is dispatched in many scenarios where no pointers
190
+ // are on the screen.) Therefore, it's possible for `onPress` to be called without
191
+ // `onPress{Start,End}` being called first.
192
+ // * The `onPress` callback is only be called on the first ancestor of the native
193
+ // `click` target that is using the PressResponder.
194
+ // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.
195
+ onClick: function (event) {
196
+ var _this$_config2 = _this._config,
197
+ disabled = _this$_config2.disabled,
198
+ onPress = _this$_config2.onPress;
199
+ disabled ? isButtonRole(event.currentTarget) && event.stopPropagation() : (event.stopPropagation(), _this._longPressDispatched || _this._selectionTerminated ? event.preventDefault() : onPress != null && event.altKey === !1 && onPress(event));
200
+ },
201
+ // If `onLongPress` is provided and a touch pointer is being used, prevent the
202
+ // default context menu from opening.
203
+ onContextMenu: function (event) {
204
+ var _this$_config3 = _this._config,
205
+ disabled = _this$_config3.disabled,
206
+ onLongPress = _this$_config3.onLongPress;
207
+ disabled ? isButtonRole(event.currentTarget) && event.stopPropagation() : onLongPress != null && _this._isPointerTouch && !event.defaultPrevented && (event.preventDefault(), event.stopPropagation());
208
+ }
209
+ };
210
+ }
211
+ }, {
212
+ /**
213
+ * Receives a state machine signal, performs side effects of the transition
214
+ * and stores the new state. Validates the transition as well.
215
+ */
216
+ key: "_receiveSignal",
217
+ value: function (signal, event) {
218
+ var prevState = this._touchState,
219
+ nextState = null;
220
+ Transitions[prevState] != null && (nextState = Transitions[prevState][signal]), !(this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) && (nextState == null || nextState === ERROR ? console.error(`PressResponder: Invalid signal ${signal} for state ${prevState} on responder`) : prevState !== nextState && (this._performTransitionSideEffects(prevState, nextState, signal, event), this._touchState = nextState));
221
+ }
222
+ }, {
223
+ /**
224
+ * Performs a transition between touchable states and identify any activations
225
+ * or deactivations (and callback invocations).
226
+ */
227
+ key: "_performTransitionSideEffects",
228
+ value: function (prevState, nextState, signal, event) {
229
+ var _this = this;
230
+ if (isTerminalSignal(signal) && (setTimeout(function () {
231
+ _this._isPointerTouch = !1;
232
+ }, 0), this._touchActivatePosition = null, this._cancelLongPressDelayTimeout()), isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {
233
+ var onLongPress = this._config.onLongPress;
234
+ onLongPress != null && event.nativeEvent.key == null && (onLongPress(event), this._longPressDispatched = !0);
235
+ }
236
+ var isPrevActive = isActiveSignal(prevState),
237
+ isNextActive = isActiveSignal(nextState);
238
+ if (!isPrevActive && isNextActive ? this._activate(event) : isPrevActive && !isNextActive && this._deactivate(event), isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {
239
+ var _this$_config4 = this._config,
240
+ _onLongPress = _this$_config4.onLongPress,
241
+ onPress = _this$_config4.onPress;
242
+ if (onPress != null) {
243
+ var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;
244
+ isPressCanceledByLongPress || isNextActive || isPrevActive || (this._activate(event), this._deactivate(event));
245
+ }
246
+ }
247
+ this._cancelPressDelayTimeout();
248
+ }
249
+ }, {
250
+ key: "_activate",
251
+ value: function (event) {
252
+ var _this$_config5 = this._config,
253
+ onPressChange = _this$_config5.onPressChange,
254
+ onPressStart = _this$_config5.onPressStart,
255
+ touch = getTouchFromResponderEvent(event);
256
+ this._touchActivatePosition = {
257
+ pageX: touch.pageX,
258
+ pageY: touch.pageY
259
+ }, onPressStart?.(event), onPressChange?.(!0);
260
+ }
261
+ }, {
262
+ key: "_deactivate",
263
+ value: function (event) {
264
+ var _this$_config6 = this._config,
265
+ onPressChange = _this$_config6.onPressChange,
266
+ onPressEnd = _this$_config6.onPressEnd;
267
+ function end() {
268
+ onPressEnd?.(event), onPressChange?.(!1);
269
+ }
270
+ var delayPressEnd = normalizeDelay(this._config.delayPressEnd);
271
+ delayPressEnd > 0 ? this._pressOutDelayTimeout = setTimeout(function () {
272
+ end();
273
+ }, delayPressEnd) : end();
274
+ }
275
+ }, {
276
+ key: "_handleLongPress",
277
+ value: function (event) {
278
+ (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) && this._receiveSignal(LONG_PRESS_DETECTED, event);
279
+ }
280
+ }, {
281
+ key: "_cancelLongPressDelayTimeout",
282
+ value: function () {
283
+ this._longPressDelayTimeout != null && (clearTimeout(this._longPressDelayTimeout), this._longPressDelayTimeout = null);
284
+ }
285
+ }, {
286
+ key: "_cancelPressDelayTimeout",
287
+ value: function () {
288
+ this._pressDelayTimeout != null && (clearTimeout(this._pressDelayTimeout), this._pressDelayTimeout = null);
289
+ }
290
+ }, {
291
+ key: "_cancelPressOutDelayTimeout",
292
+ value: function () {
293
+ this._pressOutDelayTimeout != null && (clearTimeout(this._pressOutDelayTimeout), this._pressOutDelayTimeout = null);
294
+ }
295
+ }]), PressResponder2;
296
+ }();
297
+ function normalizeDelay(delay, min, fallback) {
298
+ return min === void 0 && (min = 0), fallback === void 0 && (fallback = 0), Math.max(min, delay ?? fallback);
299
+ }
300
+ function getTouchFromResponderEvent(event) {
301
+ var _event$nativeEvent = event.nativeEvent,
302
+ changedTouches = _event$nativeEvent.changedTouches,
303
+ touches = _event$nativeEvent.touches;
304
+ return touches != null && touches.length > 0 ? touches[0] : changedTouches != null && changedTouches.length > 0 ? changedTouches[0] : event.nativeEvent;
305
+ }
306
+ export { PressResponder };
307
+ //# sourceMappingURL=PressResponder.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","DELAY","ERROR","LONG_PRESS_DETECTED","NOT_RESPONDER","RESPONDER_ACTIVE_LONG_PRESS_START","RESPONDER_ACTIVE_PRESS_START","RESPONDER_INACTIVE_PRESS_START","RESPONDER_GRANT","RESPONDER_RELEASE","RESPONDER_TERMINATED","Transitions","freeze","isActiveSignal","signal","isButtonRole","element","getAttribute","isPressStartSignal","isTerminalSignal","isValidKeyPress","event","role","isSpacebar","DEFAULT_LONG_PRESS_DELAY_MS","DEFAULT_PRESS_DELAY_MS","PressResponder","PressResponder2","config","configure","_config","_cancelLongPressDelayTimeout","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","_eventHandlers","_createEventHandlers","_this","start","shouldDelay","persist","_longPressDispatched","_selectionTerminated","_touchState","_isPointerTouch","nativeEvent","type","_receiveSignal","delayPressStart","normalizeDelay","_pressDelayTimeout","setTimeout","delayLongPress","_longPressDelayTimeout","_handleLongPress","end","keyupHandler","onPress","document","removeEventListener","elementType","tagName","toLowerCase","isNativeInteractiveElement","onStartShouldSetResponder","disabled","currentTarget","stopPropagation","onKeyDown","addEventListener","isSpacebarKey","_isButtonRole","preventDefault","onResponderGrant","onResponderMove","onPressMove","touch","getTouchFromResponderEvent","_touchActivatePosition","deltaX","pageX","deltaY","pageY","Math","hypot","onResponderRelease","onResponderTerminate","onResponderTerminationRequest","_this$_config","cancelable","onLongPress","onClick","_this$_config2","altKey","onContextMenu","_this$_config3","defaultPrevented","prevState","nextState","console","error","_performTransitionSideEffects","isPrevActive","isNextActive","_activate","_deactivate","_this$_config4","_onLongPress","isPressCanceledByLongPress"],"sources":["../../src/PressResponder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import { PressResponder } from "./PressResponder.mjs";
3
+ function usePressEvents(_, config) {
4
+ const pressResponderRef = React.useRef(null);
5
+ pressResponderRef.current == null && (pressResponderRef.current = new PressResponder(config));
6
+ const pressResponder = pressResponderRef.current;
7
+ return React.useEffect(() => {
8
+ pressResponder.configure(config);
9
+ }, [config, pressResponder]), React.useEffect(() => () => {
10
+ pressResponder.reset();
11
+ }, [pressResponder]), React.useDebugValue(config), pressResponder.getEventHandlers();
12
+ }
13
+ export { usePressEvents };
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","PressResponder","usePressEvents","_","config","pressResponderRef","useRef","current","pressResponder","useEffect","configure","reset","useDebugValue","getEventHandlers"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAYlB,SAASC,cAAA,QAAsB;AAKxB,SAASC,eAAeC,CAAA,EAAGC,MAAA,EAAc;EAC9C,MAAMC,iBAAA,GAAoBL,KAAA,CAAMM,MAAA,CAAY,IAAI;EAE5CD,iBAAA,CAAkBE,OAAA,IAAW,SAC/BF,iBAAA,CAAkBE,OAAA,GAAU,IAAIN,cAAA,CAAeG,MAAM;EAGvD,MAAMI,cAAA,GAAiBH,iBAAA,CAAkBE,OAAA;EAEzC,OAAAP,KAAA,CAAMS,SAAA,CAAU,MAAM;IACpBD,cAAA,CAAeE,SAAA,CAAUN,MAAM;EACjC,GAAG,CAACA,MAAA,EAAQI,cAAc,CAAC,GAG3BR,KAAA,CAAMS,SAAA,CAAU,MACP,MAAM;IACXD,cAAA,CAAeG,KAAA,CAAM;EACvB,GACC,CAACH,cAAc,CAAC,GACnBR,KAAA,CAAMY,aAAA,CAAcR,MAAM,GACnBI,cAAA,CAAeK,gBAAA,CAAiB;AACzC","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import { PressResponder } from "./PressResponder.mjs";
3
+ function usePressEvents(_, config) {
4
+ const pressResponderRef = React.useRef(null);
5
+ pressResponderRef.current == null && (pressResponderRef.current = new PressResponder(config));
6
+ const pressResponder = pressResponderRef.current;
7
+ return React.useEffect(() => {
8
+ pressResponder.configure(config);
9
+ }, [config, pressResponder]), React.useEffect(() => () => {
10
+ pressResponder.reset();
11
+ }, [pressResponder]), React.useDebugValue(config), pressResponder.getEventHandlers();
12
+ }
13
+ export { usePressEvents };
14
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","PressResponder","usePressEvents","_","config","pressResponderRef","useRef","current","pressResponder","useEffect","configure","reset","useDebugValue","getEventHandlers"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAYlB,SAASC,cAAA,QAAsB;AAKxB,SAASC,eAAeC,CAAA,EAAGC,MAAA,EAAc;EAC9C,MAAMC,iBAAA,GAAoBL,KAAA,CAAMM,MAAA,CAAY,IAAI;EAE5CD,iBAAA,CAAkBE,OAAA,IAAW,SAC/BF,iBAAA,CAAkBE,OAAA,GAAU,IAAIN,cAAA,CAAeG,MAAM;EAGvD,MAAMI,cAAA,GAAiBH,iBAAA,CAAkBE,OAAA;EAEzC,OAAAP,KAAA,CAAMS,SAAA,CAAU,MAAM;IACpBD,cAAA,CAAeE,SAAA,CAAUN,MAAM;EACjC,GAAG,CAACA,MAAA,EAAQI,cAAc,CAAC,GAG3BR,KAAA,CAAMS,SAAA,CAAU,MACP,MAAM;IACXD,cAAA,CAAeG,KAAA,CAAM;EACvB,GACC,CAACH,cAAc,CAAC,GACnBR,KAAA,CAAMY,aAAA,CAAcR,MAAM,GACnBI,cAAA,CAAeK,gBAAA,CAAiB;AACzC","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ import { PressResponder } from "./PressResponder.native.js";
3
+ function usePressEvents(_, config) {
4
+ var pressResponderRef = React.useRef(null);
5
+ pressResponderRef.current == null && (pressResponderRef.current = new PressResponder(config));
6
+ var pressResponder = pressResponderRef.current;
7
+ return React.useEffect(function () {
8
+ pressResponder.configure(config);
9
+ }, [config, pressResponder]), React.useEffect(function () {
10
+ return function () {
11
+ pressResponder.reset();
12
+ };
13
+ }, [pressResponder]), React.useDebugValue(config), pressResponder.getEventHandlers();
14
+ }
15
+ export { usePressEvents };
16
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","PressResponder","usePressEvents","_","config","pressResponderRef","useRef","current","pressResponder","useEffect","configure"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAYlB,SAASC,cAAA,QAAsB;AAKxB,SAASC,eAAeC,CAAA,EAAGC,MAAA,EAAc;EAC9C,IAAAC,iBAAM,GAAAL,KAAoB,CAAAM,MAAM,KAAY;EAExCD,iBAAA,CAAkBE,OAAA,IAAW,SAC/BF,iBAAA,CAAkBE,OAAA,GAAU,IAAIN,cAAA,CAAeG,MAAM;EAGvD,IAAAI,cAAM,GAAAH,iBAAiB,CAAAE,OAAkB;EAEzC,OAAAP,KAAA,CAAMS,SAAA,CAAU,YAAM;IACpBD,cAAA,CAAeE,SAAA,CAAUN,MAAM;EACjC,GAAG,CAKCA,MAAA,EACFI,cACE,CAGN,GAAAR,KAAA,CAAAS,SAAA","ignoreList":[]}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@hanzogui/react-native-use-pressable",
3
+ "version": "2.0.0",
4
+ "files": [
5
+ "src",
6
+ "types",
7
+ "dist"
8
+ ],
9
+ "type": "module",
10
+ "sideEffects": false,
11
+ "main": "dist/cjs",
12
+ "module": "dist/esm",
13
+ "types": "./types/index.d.ts",
14
+ "exports": {
15
+ "./package.json": "./package.json",
16
+ ".": {
17
+ "types": "./types/index.d.ts",
18
+ "react-native": "./dist/esm/index.native.js",
19
+ "browser": "./dist/esm/index.mjs",
20
+ "module": "./dist/esm/index.mjs",
21
+ "import": "./dist/esm/index.mjs",
22
+ "require": "./dist/cjs/index.cjs",
23
+ "default": "./dist/esm/index.mjs"
24
+ }
25
+ },
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
29
+ "scripts": {
30
+ "build": "hanzo-gui-build",
31
+ "watch": "hanzo-gui-build --watch",
32
+ "clean": "hanzo-gui-build clean",
33
+ "clean:build": "hanzo-gui-build clean:build"
34
+ },
35
+ "devDependencies": {
36
+ "@hanzogui/build": "workspace:*",
37
+ "react": ">=19"
38
+ },
39
+ "peerDependencies": {
40
+ "react": ">=19"
41
+ }
42
+ }