create-expo-cljs-app
Version:
Create a react native application with Expo and Shadow-CLJS!
124 lines (96 loc) • 6.28 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.startListening = startListening;
exports.stopListening = stopListening;
var _reactNative = require("react-native");
var _State = require("../../State");
var _EventType = require("../../EventType");
var _handlersRegistry = require("../handlersRegistry");
let gestureHandlerEventSubscription = null;
let gestureHandlerStateChangeEventSubscription = null;
const dummyStateManager = {
begin: () => {
console.warn('You have to use react-native-reanimated in order to control the state of the gesture.');
},
activate: () => {
console.warn('You have to use react-native-reanimated in order to control the state of the gesture.');
},
end: () => {
console.warn('You have to use react-native-reanimated in order to control the state of the gesture.');
},
fail: () => {
console.warn('You have to use react-native-reanimated in order to control the state of the gesture.');
}
};
function isStateChangeEvent(event) {
// @ts-ignore oldState doesn't exist on GestureTouchEvent and that's the point
return event.oldState != null;
}
function isTouchEvent(event) {
return event.eventType != null;
}
function onGestureHandlerEvent(event) {
var _handler$handlers7, _handler$handlers7$on, _handler$handlers8, _handler$handlers8$on, _handler$handlers9, _handler$handlers9$on, _handler$handlers10, _handler$handlers10$o;
const handler = (0, _handlersRegistry.findHandler)(event.handlerTag);
if (handler) {
if (isStateChangeEvent(event)) {
if (event.oldState === _State.State.UNDETERMINED && event.state === _State.State.BEGAN) {
var _handler$handlers$onB, _handler$handlers;
(_handler$handlers$onB = (_handler$handlers = handler.handlers).onBegin) === null || _handler$handlers$onB === void 0 ? void 0 : _handler$handlers$onB.call(_handler$handlers, event);
} else if ((event.oldState === _State.State.BEGAN || event.oldState === _State.State.UNDETERMINED) && event.state === _State.State.ACTIVE) {
var _handler$handlers$onS, _handler$handlers2;
(_handler$handlers$onS = (_handler$handlers2 = handler.handlers).onStart) === null || _handler$handlers$onS === void 0 ? void 0 : _handler$handlers$onS.call(_handler$handlers2, event);
} else if (event.oldState !== event.state && event.state === _State.State.END) {
var _handler$handlers$onF, _handler$handlers4;
if (event.oldState === _State.State.ACTIVE) {
var _handler$handlers$onE, _handler$handlers3;
(_handler$handlers$onE = (_handler$handlers3 = handler.handlers).onEnd) === null || _handler$handlers$onE === void 0 ? void 0 : _handler$handlers$onE.call(_handler$handlers3, event, true);
}
(_handler$handlers$onF = (_handler$handlers4 = handler.handlers).onFinalize) === null || _handler$handlers$onF === void 0 ? void 0 : _handler$handlers$onF.call(_handler$handlers4, event, true);
} else if ((event.state === _State.State.FAILED || event.state === _State.State.CANCELLED) && event.oldState !== event.state) {
var _handler$handlers$onF2, _handler$handlers6;
if (event.oldState === _State.State.ACTIVE) {
var _handler$handlers$onE2, _handler$handlers5;
(_handler$handlers$onE2 = (_handler$handlers5 = handler.handlers).onEnd) === null || _handler$handlers$onE2 === void 0 ? void 0 : _handler$handlers$onE2.call(_handler$handlers5, event, false);
}
(_handler$handlers$onF2 = (_handler$handlers6 = handler.handlers).onFinalize) === null || _handler$handlers$onF2 === void 0 ? void 0 : _handler$handlers$onF2.call(_handler$handlers6, event, false);
}
} else if (isTouchEvent(event)) {
switch (event.eventType) {
case _EventType.EventType.TOUCHES_DOWN:
(_handler$handlers7 = handler.handlers) === null || _handler$handlers7 === void 0 ? void 0 : (_handler$handlers7$on = _handler$handlers7.onTouchesDown) === null || _handler$handlers7$on === void 0 ? void 0 : _handler$handlers7$on.call(_handler$handlers7, event, dummyStateManager);
break;
case _EventType.EventType.TOUCHES_MOVE:
(_handler$handlers8 = handler.handlers) === null || _handler$handlers8 === void 0 ? void 0 : (_handler$handlers8$on = _handler$handlers8.onTouchesMove) === null || _handler$handlers8$on === void 0 ? void 0 : _handler$handlers8$on.call(_handler$handlers8, event, dummyStateManager);
break;
case _EventType.EventType.TOUCHES_UP:
(_handler$handlers9 = handler.handlers) === null || _handler$handlers9 === void 0 ? void 0 : (_handler$handlers9$on = _handler$handlers9.onTouchesUp) === null || _handler$handlers9$on === void 0 ? void 0 : _handler$handlers9$on.call(_handler$handlers9, event, dummyStateManager);
break;
case _EventType.EventType.TOUCHES_CANCELLED:
(_handler$handlers10 = handler.handlers) === null || _handler$handlers10 === void 0 ? void 0 : (_handler$handlers10$o = _handler$handlers10.onTouchesCancelled) === null || _handler$handlers10$o === void 0 ? void 0 : _handler$handlers10$o.call(_handler$handlers10, event, dummyStateManager);
break;
}
} else {
var _handler$handlers$onU, _handler$handlers11;
(_handler$handlers$onU = (_handler$handlers11 = handler.handlers).onUpdate) === null || _handler$handlers$onU === void 0 ? void 0 : _handler$handlers$onU.call(_handler$handlers11, event);
}
}
}
function startListening() {
stopListening();
gestureHandlerEventSubscription = _reactNative.DeviceEventEmitter.addListener('onGestureHandlerEvent', onGestureHandlerEvent);
gestureHandlerStateChangeEventSubscription = _reactNative.DeviceEventEmitter.addListener('onGestureHandlerStateChange', onGestureHandlerEvent);
}
function stopListening() {
if (gestureHandlerEventSubscription) {
_reactNative.DeviceEventEmitter.removeSubscription(gestureHandlerEventSubscription);
gestureHandlerEventSubscription = null;
}
if (gestureHandlerStateChangeEventSubscription) {
_reactNative.DeviceEventEmitter.removeSubscription(gestureHandlerStateChangeEventSubscription);
gestureHandlerStateChangeEventSubscription = null;
}
}
//# sourceMappingURL=eventReceiver.js.map