@osobh/reactar
Version:
AR Library for React Native and Expo
52 lines • 2.32 kB
JavaScript
"use strict";
// src/ui/GestureHandler.tsx
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = GestureHandler;
const react_1 = __importDefault(require("react"));
const react_native_1 = require("react-native");
const react_native_gesture_handler_1 = require("react-native-gesture-handler");
function GestureHandler({ onTap, onPinch, onPan, children, }) {
const handleTapStateChange = (event) => {
if (event.nativeEvent.state === react_native_gesture_handler_1.State.ACTIVE && onTap) {
onTap();
}
};
const handlePinchStateChange = (event) => {
if (event.nativeEvent.state === react_native_gesture_handler_1.State.ACTIVE && onPinch) {
onPinch(event.nativeEvent.scale);
}
};
const handlePanStateChange = (event) => {
if (event.nativeEvent.state === react_native_gesture_handler_1.State.ACTIVE && onPan) {
onPan(event.nativeEvent.translationX, event.nativeEvent.translationY);
}
};
return (react_1.default.createElement(react_native_gesture_handler_1.PanGestureHandler, { onHandlerStateChange: handlePanStateChange },
react_1.default.createElement(react_native_gesture_handler_1.PinchGestureHandler, { onHandlerStateChange: handlePinchStateChange },
react_1.default.createElement(react_native_gesture_handler_1.TapGestureHandler, { onHandlerStateChange: handleTapStateChange },
react_1.default.createElement(react_native_1.View, { style: styles.container },
children,
react_1.default.createElement(react_native_1.View, { style: styles.overlay },
react_1.default.createElement(react_native_1.Text, { style: styles.overlayText }, "Gesture Overlay")))))));
}
const styles = react_native_1.StyleSheet.create({
container: {
flex: 1,
},
overlay: {
position: 'absolute',
top: 20,
left: 20,
backgroundColor: 'rgba(0, 0, 0, 0.5)',
padding: 10,
borderRadius: 8,
},
overlayText: {
color: '#fff',
fontSize: 16,
},
});
//# sourceMappingURL=GestureHandler.js.map