UNPKG

react-native-urovo

Version:
48 lines (47 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useUrovo = void 0; var _react = require("react"); var _reactNative = require("react-native"); var _reactNativeUrovo = require("react-native-urovo"); var _NativeUrovo = _interopRequireDefault(require("../NativeUrovo")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const useUrovo = ({ onScan, outputMode = _reactNativeUrovo.OutputMode.INTENT }) => { const [isScannerOpened, setIsScannerOpened] = (0, _react.useState)(false); (0, _react.useEffect)(() => { let isMounted = true; const open = async () => { const isOpened = await (0, _reactNativeUrovo.openScanner)(outputMode); if (isMounted) { setIsScannerOpened(!!isOpened); } }; open(); return () => { isMounted = false; (0, _reactNativeUrovo.closeScanner)(); }; }, []); (0, _react.useEffect)(() => { let eventListener; if (isScannerOpened && _NativeUrovo.default) { const eventEmitter = _reactNative.Platform.OS === 'android' ? new _reactNative.NativeEventEmitter() : new _reactNative.NativeEventEmitter(_NativeUrovo.default); eventListener = eventEmitter.addListener(_reactNativeUrovo.UROVO_EVENTS.ON_SCAN, scan => { onScan(scan); }); } return () => { eventListener?.remove(); }; }, [isScannerOpened, onScan]); return { isScannerOpened }; }; exports.useUrovo = useUrovo; //# sourceMappingURL=useUrovo.js.map