UNPKG

@shopgate/pwa-common-commerce

Version:

Commerce library for the Shopgate Connect PWA.

10 lines 2.28 kB
import Scanner from'@shopgate/pwa-core/classes/Scanner';import ScannerEventListener from'@shopgate/pwa-core/classes/ScannerEventListener';import{SCANNER_SCOPE_DEFAULT}from'@shopgate/pwa-core/constants/Scanner';import{appDidStart$}from'@shopgate/pwa-common/streams';import scannerFinished from"../action-creators/scannerFinished";import handleBarCode from"../actions/handleBarCode";import handleQrCode from"../actions/handleQrCode";import{SCANNER_FORMATS_BARCODE,SCANNER_FORMATS_QR_CODE}from"../constants";import{startScanner$,scannerFinishedBarCode$,scannerFinishedQrCode$}from"../streams";// Scanner payload formats which are handled by the subscriptions. export var handledFormats=[].concat(SCANNER_FORMATS_BARCODE,SCANNER_FORMATS_QR_CODE);/** * Scanner subscriptions. * @param {Function} subscribe The subscribe function. */export default(function(subscribe){// Register global listener to convert to stream subscribe(appDidStart$,function(_ref){var dispatch=_ref.dispatch;Scanner.addListener(new ScannerEventListener('Scanner listener',null,null,handledFormats).setHandler(function(_ref2){var scope=_ref2.scope,_ref2$payload=_ref2.payload,_ref2$payload2=_ref2$payload===void 0?{}:_ref2$payload,format=_ref2$payload2.format,payload=_ref2$payload2.code;dispatch(scannerFinished(scope,format,payload));}));});subscribe(startScanner$,function(){Scanner.start();});// Default scope stream var scannerFinishedBarCodeDefault$=scannerFinishedBarCode$.filter(function(_ref3){var action=_ref3.action;return action.scope===SCANNER_SCOPE_DEFAULT;});// Default scope bar code handler subscribe(scannerFinishedBarCodeDefault$,function(_ref4){var dispatch=_ref4.dispatch,action=_ref4.action;var scope=action.scope,format=action.format,payload=action.payload;dispatch(handleBarCode({scope:scope,format:format,payload:payload}));});// Default scope qr code stream var scannerFinishedQrCodeDefault$=scannerFinishedQrCode$.filter(function(_ref5){var action=_ref5.action;return action.scope===SCANNER_SCOPE_DEFAULT;});// Default scope qr code handler subscribe(scannerFinishedQrCodeDefault$,function(_ref6){var dispatch=_ref6.dispatch,action=_ref6.action;var scope=action.scope,format=action.format,payload=action.payload;dispatch(handleQrCode({scope:scope,format:format,payload:payload}));});});