react-native-gesture-handler
Version:
Declarative API exposing native platform touch and gesture system to React Native
83 lines (82 loc) • 2.62 kB
JavaScript
;
import { Platform } from 'react-native';
export let StateMachineEvent = /*#__PURE__*/function (StateMachineEvent) {
StateMachineEvent["NATIVE_BEGIN"] = "nativeBegin";
StateMachineEvent["NATIVE_START"] = "nativeStart";
StateMachineEvent["FINALIZE"] = "finalize";
StateMachineEvent["LONG_PRESS_TOUCHES_DOWN"] = "longPressTouchesDown";
StateMachineEvent["CANCEL"] = "cancel";
return StateMachineEvent;
}({});
function getAndroidStatesConfig(handlePressIn, handlePressOut) {
return [{
eventName: StateMachineEvent.NATIVE_BEGIN
}, {
eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
callback: handlePressIn
}, {
eventName: StateMachineEvent.FINALIZE,
callback: handlePressOut
}];
}
function getIosStatesConfig(handlePressIn, handlePressOut) {
return [{
eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN
}, {
eventName: StateMachineEvent.NATIVE_START,
callback: handlePressIn
}, {
eventName: StateMachineEvent.FINALIZE,
callback: handlePressOut
}];
}
function getWebStatesConfig(handlePressIn, handlePressOut) {
return [{
eventName: StateMachineEvent.NATIVE_BEGIN
}, {
eventName: StateMachineEvent.NATIVE_START
}, {
eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
callback: handlePressIn
}, {
eventName: StateMachineEvent.FINALIZE,
callback: handlePressOut
}];
}
function getMacosStatesConfig(handlePressIn, handlePressOut) {
return [{
eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN
}, {
eventName: StateMachineEvent.NATIVE_BEGIN,
callback: handlePressIn
}, {
eventName: StateMachineEvent.NATIVE_START
}, {
eventName: StateMachineEvent.FINALIZE,
callback: handlePressOut
}];
}
function getUniversalStatesConfig(handlePressIn, handlePressOut) {
return [{
eventName: StateMachineEvent.FINALIZE,
callback: event => {
handlePressIn(event);
handlePressOut(event);
}
}];
}
export function getStatesConfig(handlePressIn, handlePressOut) {
if (Platform.OS === 'android') {
return getAndroidStatesConfig(handlePressIn, handlePressOut);
} else if (Platform.OS === 'ios') {
return getIosStatesConfig(handlePressIn, handlePressOut);
} else if (Platform.OS === 'web') {
return getWebStatesConfig(handlePressIn, handlePressOut);
} else if (Platform.OS === 'macos') {
return getMacosStatesConfig(handlePressIn, handlePressOut);
} else {
// Unknown platform - using minimal universal setup.
return getUniversalStatesConfig(handlePressIn, handlePressOut);
}
}
//# sourceMappingURL=stateDefinitions.js.map