react-native-urovo
Version:
React native bindings for urovo scanners
48 lines (47 loc) • 1.52 kB
JavaScript
;
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