react-native-scanbot-barcode-scanner-sdk 6.2.1-beta.2 → 6.2.1-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,6 +15,7 @@ const ScanbotBarcodeCameraView = exports.ScanbotBarcodeCameraView = /*#__PURE__*
15
15
  }, forwardedRef) => {
16
16
  const viewRef = (0, _react.useRef)(null);
17
17
  const boundBarcodeItemOverlayViews = (0, _react.useRef)(new Set());
18
+ const lastBarcodeScannerResult = (0, _react.useRef)(undefined);
18
19
  (0, _react.useImperativeHandle)(forwardedRef, () => {
19
20
  return {
20
21
  freezeCamera() {
@@ -40,21 +41,25 @@ const ScanbotBarcodeCameraView = exports.ScanbotBarcodeCameraView = /*#__PURE__*
40
41
  onBarcodeScannerResult(barcodeScannerResult);
41
42
  }
42
43
  if (props.selectionOverlayConfig?.barcodeItemOverlayViewBinder) {
43
- for (let barcode of barcodeScannerResult.barcodes) {
44
- const barcodeItemUuid = barcode.textWithExtension + '_' + barcode.type;
45
- if (!boundBarcodeItemOverlayViews.current.has(barcodeItemUuid)) {
46
- const bindingConfig = await props.selectionOverlayConfig.barcodeItemOverlayViewBinder(barcode);
47
- if (bindingConfig.saveConfig !== false) {
48
- boundBarcodeItemOverlayViews.current.add(barcodeItemUuid);
49
- }
50
- if (viewRef.current != null) {
51
- _ScanbotBarcodeScannerViewNativeComponent.Commands.bindBarcodeItemOverlayView(
52
- //@ts-ignore
53
- viewRef.current, barcodeItemUuid, JSON.stringify(bindingConfig));
44
+ const barcodeScannerResultIsDuplicate = lastBarcodeScannerResult.current?.barcodes !== undefined && barcodeScannerResult?.barcodes !== undefined && lastBarcodeScannerResult.current.barcodes.length === barcodeScannerResult.barcodes.length && JSON.stringify(lastBarcodeScannerResult.current.barcodes.map(item => _barcodeItemUuid(item))) === JSON.stringify(barcodeScannerResult.barcodes.map(item => _barcodeItemUuid(item)));
45
+ if (!barcodeScannerResultIsDuplicate) {
46
+ for (let barcode of barcodeScannerResult.barcodes) {
47
+ const barcodeItemUuid = _barcodeItemUuid(barcode);
48
+ if (!boundBarcodeItemOverlayViews.current.has(barcodeItemUuid)) {
49
+ const bindingConfig = await props.selectionOverlayConfig.barcodeItemOverlayViewBinder(barcode);
50
+ if (bindingConfig.saveConfig !== false) {
51
+ boundBarcodeItemOverlayViews.current.add(barcodeItemUuid);
52
+ }
53
+ if (viewRef.current != null) {
54
+ _ScanbotBarcodeScannerViewNativeComponent.Commands.bindBarcodeItemOverlayView(
55
+ //@ts-ignore
56
+ viewRef.current, barcodeItemUuid, JSON.stringify(bindingConfig));
57
+ }
54
58
  }
55
59
  }
56
60
  }
57
61
  }
62
+ lastBarcodeScannerResult.current = barcodeScannerResult;
58
63
  }
59
64
  }, [props.selectionOverlayConfig, boundBarcodeItemOverlayViews, onBarcodeScannerResult]);
60
65
  const _onBarcodeSelectionResult = (0, _react.useCallback)(event => {
@@ -70,6 +75,9 @@ const ScanbotBarcodeCameraView = exports.ScanbotBarcodeCameraView = /*#__PURE__*
70
75
  onBarcodeScannerResult(barcodeResult);
71
76
  }
72
77
  }, [onBarcodeScannerResult, props.selectionOverlayConfig?.automaticSelectionEnabled, props.selectionOverlayConfig?.overlayEnabled]);
78
+ function _barcodeItemUuid(barcode) {
79
+ return barcode.textWithExtension + '_' + barcode.type;
80
+ }
73
81
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
74
82
  style: [styles.container, props.style]
75
83
  }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_ScanbotBarcodeScannerViewNativeComponent","_reactNative","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ScanbotBarcodeCameraView","exports","forwardRef","onBarcodeScannerResult","props","forwardedRef","viewRef","useRef","boundBarcodeItemOverlayViews","Set","useImperativeHandle","freezeCamera","current","Commands","unfreezeCamera","_onBarcodeScannerResult","useCallback","event","result","nativeEvent","selectionOverlayAutoSelectDisabled","selectionOverlayConfig","overlayEnabled","automaticSelectionEnabled","barcodeScannerResult","Platform","OS","JSON","parse","barcodeItemOverlayViewBinder","barcode","barcodes","barcodeItemUuid","textWithExtension","type","bindingConfig","saveConfig","add","bindBarcodeItemOverlayView","stringify","_onBarcodeSelectionResult","barcodeItemResult","barcodeResult","createElement","View","style","styles","container","pointerEvents","contentContainerStyle","children","finderEnabled","finderConfig","viewFinderEnabled","finderStrokeWidth","finderLineWidth","finderMinPadding","minPadding","finderStrokeColor","finderLineColor","finderOverlayColor","overlayColor","finderInset","finderRequiredAspectRatios","requiredAspectRatio","cameraZoomFactor","select","ios","cameraConfig","parseFloat","toFixed","undefined","android","cameraZoomRange","minZoom","maxZoom","minFocusDistanceLock","cameraModule","detectorConfig","overlayPolygonColor","polygonColor","overlayStrokeColor","strokeColor","overlayTextFormat","textFormat","overlayTextColor","textColor","overlayTextContainerColor","textContainerColor","overlayLoadingTextValue","loadingTextValue","overlayBarcodeItemOverlayViewBinder","flashEnabled","scanningEnabled","ref","onSelectBarcodeResult","StyleSheet","create","flex","position","width","height","zIndex"],"sourceRoot":"../../../../src","sources":["component/barcode-camera-view/ScanbotBarcodeCameraView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_ScanbotBarcodeScannerViewNativeComponent","_reactNative","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ScanbotBarcodeCameraView","exports","forwardRef","onBarcodeScannerResult","props","forwardedRef","viewRef","useRef","boundBarcodeItemOverlayViews","Set","lastBarcodeScannerResult","undefined","useImperativeHandle","freezeCamera","current","Commands","unfreezeCamera","_onBarcodeScannerResult","useCallback","event","result","nativeEvent","selectionOverlayAutoSelectDisabled","selectionOverlayConfig","overlayEnabled","automaticSelectionEnabled","barcodeScannerResult","Platform","OS","JSON","parse","barcodeItemOverlayViewBinder","barcodeScannerResultIsDuplicate","barcodes","length","stringify","map","item","_barcodeItemUuid","barcode","barcodeItemUuid","bindingConfig","saveConfig","add","bindBarcodeItemOverlayView","_onBarcodeSelectionResult","barcodeItemResult","barcodeResult","textWithExtension","type","createElement","View","style","styles","container","pointerEvents","contentContainerStyle","children","finderEnabled","finderConfig","viewFinderEnabled","finderStrokeWidth","finderLineWidth","finderMinPadding","minPadding","finderStrokeColor","finderLineColor","finderOverlayColor","overlayColor","finderInset","finderRequiredAspectRatios","requiredAspectRatio","cameraZoomFactor","select","ios","cameraConfig","parseFloat","toFixed","android","cameraZoomRange","minZoom","maxZoom","minFocusDistanceLock","cameraModule","detectorConfig","overlayPolygonColor","polygonColor","overlayStrokeColor","strokeColor","overlayTextFormat","textFormat","overlayTextColor","textColor","overlayTextContainerColor","textContainerColor","overlayLoadingTextValue","loadingTextValue","overlayBarcodeItemOverlayViewBinder","flashEnabled","scanningEnabled","ref","onSelectBarcodeResult","StyleSheet","create","flex","position","width","height","zIndex"],"sourceRoot":"../../../../src","sources":["component/barcode-camera-view/ScanbotBarcodeCameraView.tsx"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ export const ScanbotBarcodeCameraView = /*#__PURE__*/forwardRef(({
7
7
  }, forwardedRef) => {
8
8
  const viewRef = useRef(null);
9
9
  const boundBarcodeItemOverlayViews = useRef(new Set());
10
+ const lastBarcodeScannerResult = useRef(undefined);
10
11
  useImperativeHandle(forwardedRef, () => {
11
12
  return {
12
13
  freezeCamera() {
@@ -32,21 +33,25 @@ export const ScanbotBarcodeCameraView = /*#__PURE__*/forwardRef(({
32
33
  onBarcodeScannerResult(barcodeScannerResult);
33
34
  }
34
35
  if (props.selectionOverlayConfig?.barcodeItemOverlayViewBinder) {
35
- for (let barcode of barcodeScannerResult.barcodes) {
36
- const barcodeItemUuid = barcode.textWithExtension + '_' + barcode.type;
37
- if (!boundBarcodeItemOverlayViews.current.has(barcodeItemUuid)) {
38
- const bindingConfig = await props.selectionOverlayConfig.barcodeItemOverlayViewBinder(barcode);
39
- if (bindingConfig.saveConfig !== false) {
40
- boundBarcodeItemOverlayViews.current.add(barcodeItemUuid);
41
- }
42
- if (viewRef.current != null) {
43
- Commands.bindBarcodeItemOverlayView(
44
- //@ts-ignore
45
- viewRef.current, barcodeItemUuid, JSON.stringify(bindingConfig));
36
+ const barcodeScannerResultIsDuplicate = lastBarcodeScannerResult.current?.barcodes !== undefined && barcodeScannerResult?.barcodes !== undefined && lastBarcodeScannerResult.current.barcodes.length === barcodeScannerResult.barcodes.length && JSON.stringify(lastBarcodeScannerResult.current.barcodes.map(item => _barcodeItemUuid(item))) === JSON.stringify(barcodeScannerResult.barcodes.map(item => _barcodeItemUuid(item)));
37
+ if (!barcodeScannerResultIsDuplicate) {
38
+ for (let barcode of barcodeScannerResult.barcodes) {
39
+ const barcodeItemUuid = _barcodeItemUuid(barcode);
40
+ if (!boundBarcodeItemOverlayViews.current.has(barcodeItemUuid)) {
41
+ const bindingConfig = await props.selectionOverlayConfig.barcodeItemOverlayViewBinder(barcode);
42
+ if (bindingConfig.saveConfig !== false) {
43
+ boundBarcodeItemOverlayViews.current.add(barcodeItemUuid);
44
+ }
45
+ if (viewRef.current != null) {
46
+ Commands.bindBarcodeItemOverlayView(
47
+ //@ts-ignore
48
+ viewRef.current, barcodeItemUuid, JSON.stringify(bindingConfig));
49
+ }
46
50
  }
47
51
  }
48
52
  }
49
53
  }
54
+ lastBarcodeScannerResult.current = barcodeScannerResult;
50
55
  }
51
56
  }, [props.selectionOverlayConfig, boundBarcodeItemOverlayViews, onBarcodeScannerResult]);
52
57
  const _onBarcodeSelectionResult = useCallback(event => {
@@ -62,6 +67,9 @@ export const ScanbotBarcodeCameraView = /*#__PURE__*/forwardRef(({
62
67
  onBarcodeScannerResult(barcodeResult);
63
68
  }
64
69
  }, [onBarcodeScannerResult, props.selectionOverlayConfig?.automaticSelectionEnabled, props.selectionOverlayConfig?.overlayEnabled]);
70
+ function _barcodeItemUuid(barcode) {
71
+ return barcode.textWithExtension + '_' + barcode.type;
72
+ }
65
73
  return /*#__PURE__*/React.createElement(View, {
66
74
  style: [styles.container, props.style]
67
75
  }, /*#__PURE__*/React.createElement(View, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useCallback","useImperativeHandle","useRef","NativeBarcodeCameraView","Commands","Platform","StyleSheet","View","ScanbotBarcodeCameraView","onBarcodeScannerResult","props","forwardedRef","viewRef","boundBarcodeItemOverlayViews","Set","freezeCamera","current","unfreezeCamera","_onBarcodeScannerResult","event","result","nativeEvent","selectionOverlayAutoSelectDisabled","selectionOverlayConfig","overlayEnabled","automaticSelectionEnabled","barcodeScannerResult","OS","JSON","parse","barcodeItemOverlayViewBinder","barcode","barcodes","barcodeItemUuid","textWithExtension","type","has","bindingConfig","saveConfig","add","bindBarcodeItemOverlayView","stringify","_onBarcodeSelectionResult","barcodeItemResult","barcodeResult","createElement","style","styles","container","pointerEvents","contentContainerStyle","children","finderEnabled","finderConfig","viewFinderEnabled","finderStrokeWidth","finderLineWidth","finderMinPadding","minPadding","finderStrokeColor","finderLineColor","finderOverlayColor","overlayColor","finderInset","finderRequiredAspectRatios","requiredAspectRatio","cameraZoomFactor","select","ios","cameraConfig","parseFloat","toFixed","undefined","android","cameraZoomRange","minZoom","maxZoom","minFocusDistanceLock","cameraModule","detectorConfig","overlayPolygonColor","polygonColor","overlayStrokeColor","strokeColor","overlayTextFormat","textFormat","overlayTextColor","textColor","overlayTextContainerColor","textContainerColor","overlayLoadingTextValue","loadingTextValue","overlayBarcodeItemOverlayViewBinder","flashEnabled","scanningEnabled","ref","onSelectBarcodeResult","create","flex","position","width","height","zIndex"],"sourceRoot":"../../../../src","sources":["component/barcode-camera-view/ScanbotBarcodeCameraView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","forwardRef","useCallback","useImperativeHandle","useRef","NativeBarcodeCameraView","Commands","Platform","StyleSheet","View","ScanbotBarcodeCameraView","onBarcodeScannerResult","props","forwardedRef","viewRef","boundBarcodeItemOverlayViews","Set","lastBarcodeScannerResult","undefined","freezeCamera","current","unfreezeCamera","_onBarcodeScannerResult","event","result","nativeEvent","selectionOverlayAutoSelectDisabled","selectionOverlayConfig","overlayEnabled","automaticSelectionEnabled","barcodeScannerResult","OS","JSON","parse","barcodeItemOverlayViewBinder","barcodeScannerResultIsDuplicate","barcodes","length","stringify","map","item","_barcodeItemUuid","barcode","barcodeItemUuid","has","bindingConfig","saveConfig","add","bindBarcodeItemOverlayView","_onBarcodeSelectionResult","barcodeItemResult","barcodeResult","textWithExtension","type","createElement","style","styles","container","pointerEvents","contentContainerStyle","children","finderEnabled","finderConfig","viewFinderEnabled","finderStrokeWidth","finderLineWidth","finderMinPadding","minPadding","finderStrokeColor","finderLineColor","finderOverlayColor","overlayColor","finderInset","finderRequiredAspectRatios","requiredAspectRatio","cameraZoomFactor","select","ios","cameraConfig","parseFloat","toFixed","android","cameraZoomRange","minZoom","maxZoom","minFocusDistanceLock","cameraModule","detectorConfig","overlayPolygonColor","polygonColor","overlayStrokeColor","strokeColor","overlayTextFormat","textFormat","overlayTextColor","textColor","overlayTextContainerColor","textContainerColor","overlayLoadingTextValue","loadingTextValue","overlayBarcodeItemOverlayViewBinder","flashEnabled","scanningEnabled","ref","onSelectBarcodeResult","create","flex","position","width","height","zIndex"],"sourceRoot":"../../../../src","sources":["component/barcode-camera-view/ScanbotBarcodeCameraView.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,WAAW,EAAEC,mBAAmB,EAAEC,MAAM,QAAQ,OAAO;AACnF,OAAOC,uBAAuB,IAC5BC,QAAQ,QACH,kDAAkD;AAKzD,SAA+BC,QAAQ,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAI/E,OAAO,MAAMC,wBAAwB,gBAAGT,UAAU,CAGhD,CAAC;EAAEU,sBAAsB;EAAE,GAAGC;AAAM,CAAC,EAAEC,YAAY,KAAK;EACxD,MAAMC,OAAO,GAAGV,MAAM,CAAC,IAAI,CAAC;EAC5B,MAAMW,4BAA4B,GAAGX,MAAM,CAAc,IAAIY,GAAG,CAAC,CAAC,CAAC;EACnE,MAAMC,wBAAwB,GAAGb,MAAM,CAAmCc,SAAS,CAAC;EAEpFf,mBAAmB,CAACU,YAAY,EAAE,MAAM;IACtC,OAAO;MACLM,YAAYA,CAAA,EAAG;QACb,IAAIL,OAAO,CAACM,OAAO,EAAE;UACnB;UACAd,QAAQ,CAACa,YAAY,CAACL,OAAO,CAACM,OAAO,CAAC;QACxC;MACF,CAAC;MAEDC,cAAcA,CAAA,EAAG;QACf,IAAIP,OAAO,CAACM,OAAO,EAAE;UACnB;UACAd,QAAQ,CAACe,cAAc,CAACP,OAAO,CAACM,OAAO,CAAC;QAC1C;MACF;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,uBAAuB,GAAGpB,WAAW,CACzC,MAAOqB,KAAgC,IAAK;IAC1C,MAAMC,MAAM,GAAGD,KAAK,CAACE,WAAW,CAACD,MAAM;IACvC,MAAME,kCAAkC,GACtCd,KAAK,CAACe,sBAAsB,EAAEC,cAAc,IAC5C,CAAChB,KAAK,CAACe,sBAAsB,EAAEE,yBAAyB;IAE1D,IAAIL,MAAM,EAAE;MACV,MAAMM,oBAAoB,GACxBvB,QAAQ,CAACwB,EAAE,KAAK,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACT,MAAM,CAAC,GAAGA,MACtB;MACzB,IAAI,CAACE,kCAAkC,EAAE;QACvCf,sBAAsB,CAACmB,oBAAoB,CAAC;MAC9C;MAEA,IAAIlB,KAAK,CAACe,sBAAsB,EAAEO,4BAA4B,EAAE;QAC9D,MAAMC,+BAA+B,GACnClB,wBAAwB,CAACG,OAAO,EAAEgB,QAAQ,KAAKlB,SAAS,IACxDY,oBAAoB,EAAEM,QAAQ,KAAKlB,SAAS,IAC5CD,wBAAwB,CAACG,OAAO,CAACgB,QAAQ,CAACC,MAAM,KAC9CP,oBAAoB,CAACM,QAAQ,CAACC,MAAM,IACtCL,IAAI,CAACM,SAAS,CACZrB,wBAAwB,CAACG,OAAO,CAACgB,QAAQ,CAACG,GAAG,CAAEC,IAAI,IAAKC,gBAAgB,CAACD,IAAI,CAAC,CAChF,CAAC,KACCR,IAAI,CAACM,SAAS,CAACR,oBAAoB,CAACM,QAAQ,CAACG,GAAG,CAAEC,IAAI,IAAKC,gBAAgB,CAACD,IAAI,CAAC,CAAC,CAAC;QAEvF,IAAI,CAACL,+BAA+B,EAAE;UACpC,KAAK,IAAIO,OAAO,IAAIZ,oBAAoB,CAACM,QAAQ,EAAI;YACnD,MAAMO,eAAe,GAAGF,gBAAgB,CAACC,OAAO,CAAC;YAEjD,IAAI,CAAC3B,4BAA4B,CAACK,OAAO,CAACwB,GAAG,CAACD,eAAe,CAAC,EAAE;cAC9D,MAAME,aAAa,GACjB,MAAMjC,KAAK,CAACe,sBAAsB,CAACO,4BAA4B,CAACQ,OAAO,CAAC;cAE1E,IAAIG,aAAa,CAACC,UAAU,KAAK,KAAK,EAAE;gBACtC/B,4BAA4B,CAACK,OAAO,CAAC2B,GAAG,CAACJ,eAAe,CAAC;cAC3D;cAEA,IAAI7B,OAAO,CAACM,OAAO,IAAI,IAAI,EAAE;gBAC3Bd,QAAQ,CAAC0C,0BAA0B;gBACjC;gBACAlC,OAAO,CAACM,OAAO,EACfuB,eAAe,EACfX,IAAI,CAACM,SAAS,CAACO,aAAa,CAC9B,CAAC;cACH;YACF;UACF;QACF;MACF;MAEA5B,wBAAwB,CAACG,OAAO,GAAGU,oBAAoB;IACzD;EACF,CAAC,EACD,CAAClB,KAAK,CAACe,sBAAsB,EAAEZ,4BAA4B,EAAEJ,sBAAsB,CACrF,CAAC;EAED,MAAMsC,yBAAyB,GAAG/C,WAAW,CAC1CqB,KAAgC,IAAK;IACpC,MAAMC,MAAM,GAAGD,KAAK,CAACE,WAAW,CAACD,MAAM;IACvC,MAAME,kCAAkC,GACtCd,KAAK,CAACe,sBAAsB,EAAEC,cAAc,IAC5C,CAAChB,KAAK,CAACe,sBAAsB,EAAEE,yBAAyB;IAC1D,IAAIH,kCAAkC,IAAIF,MAAM,IAAIjB,QAAQ,CAACwB,EAAE,KAAK,SAAS,EAAE;MAC7E,MAAMmB,iBAAiB,GAAG1B,MAA4B;MACtDb,sBAAsB,CAAC;QAAEyB,QAAQ,EAAE,CAACc,iBAAiB;MAAE,CAAC,CAAC;IAC3D,CAAC,MAAM,IAAIxB,kCAAkC,IAAIF,MAAM,IAAIjB,QAAQ,CAACwB,EAAE,KAAK,KAAK,EAAE;MAChF,MAAMoB,aAAa,GAAGnB,IAAI,CAACC,KAAK,CAACT,MAAM,CAAyB;MAChEb,sBAAsB,CAACwC,aAAa,CAAC;IACvC;EACF,CAAC,EACD,CACExC,sBAAsB,EACtBC,KAAK,CAACe,sBAAsB,EAAEE,yBAAyB,EACvDjB,KAAK,CAACe,sBAAsB,EAAEC,cAAc,CAEhD,CAAC;EAED,SAASa,gBAAgBA,CAACC,OAA2B,EAAU;IAC7D,OAAOA,OAAO,CAACU,iBAAiB,GAAG,GAAG,GAAGV,OAAO,CAACW,IAAI;EACvD;EAEA,oBACErD,KAAA,CAAAsD,aAAA,CAAC7C,IAAI;IAAC8C,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE7C,KAAK,CAAC2C,KAAK;EAAE,gBAC3CvD,KAAA,CAAAsD,aAAA,CAAC7C,IAAI;IACHiD,aAAa,EAAE,UAAW;IAC1BH,KAAK,EAAE,CAACC,MAAM,CAACG,qBAAqB,EAAE/C,KAAK,CAAC+C,qBAAqB;EAAE,GAElE/C,KAAK,CAACgD,QACH,CAAC,eACP5D,KAAA,CAAAsD,aAAA,CAACjD;EACC;EAAA;IACAwD,aAAa,EAAEjD,KAAK,CAACkD,YAAY,EAAEC,iBAAkB;IACrDC,iBAAiB,EAAEpD,KAAK,CAACkD,YAAY,EAAEG,eAAgB;IACvDC,gBAAgB,EAAEtD,KAAK,CAACkD,YAAY,EAAEK,UAAW;IACjDC,iBAAiB,EAAExD,KAAK,CAACkD,YAAY,EAAEO,eAAgB;IACvDC,kBAAkB,EAAE1D,KAAK,CAACkD,YAAY,EAAES,YAAa;IACrDC,WAAW,EAAE5D,KAAK,CAACkD,YAAY,EAAEU,WAAY;IAC7CC,0BAA0B,EAAE7D,KAAK,CAACkD,YAAY,EAAEY;IAChD;IAAA;IACAC,gBAAgB,EAAEpE,QAAQ,CAACqE,MAAM,CAAC;MAChCC,GAAG,EAAEjE,KAAK,CAACkE,YAAY,EAAEH,gBAAgB,GACrCI,UAAU,CAACnE,KAAK,CAACkE,YAAY,EAAEH,gBAAgB,CAACK,OAAO,CAAC,CAAC,CAAC,CAAC,GAC3D9D,SAAS;MACb+D,OAAO,EACLrE,KAAK,CAACkE,YAAY,EAAEH,gBAAgB,KAAKzD,SAAS,GAC9C,CAACN,KAAK,CAACkE,YAAY,EAAEI,eAAe,EAAEC,OAAO,IAAI,CAAC,IAClD,CAAC,CAACvE,KAAK,CAACkE,YAAY,EAAEI,eAAe,EAAEE,OAAO,IAAI,EAAE,KACjDxE,KAAK,CAACkE,YAAY,EAAEI,eAAe,EAAEC,OAAO,IAAI,CAAC,CAAC,IACnDvE,KAAK,CAACkE,YAAY,EAAEH,gBAAgB,GACtCzD;IACR,CAAC,CAAE;IACHgE,eAAe,EAAEtE,KAAK,CAACkE,YAAY,EAAEI,eAAgB;IACrDG,oBAAoB,EAAEzE,KAAK,CAACkE,YAAY,EAAEO,oBAAqB;IAC/DC,YAAY,EAAE1E,KAAK,CAACkE,YAAY,EAAEQ;IAClC;IAAA;IACAC,cAAc,EAAE3E,KAAK,CAAC2E;IACtB;IAAA;IACA3D,cAAc,EAAEhB,KAAK,CAACe,sBAAsB,EAAEC,cAAe;IAC7D4D,mBAAmB,EAAE5E,KAAK,CAACe,sBAAsB,EAAE8D,YAAa;IAChEC,kBAAkB,EAAE9E,KAAK,CAACe,sBAAsB,EAAEgE,WAAY;IAC9DC,iBAAiB,EAAEhF,KAAK,CAACe,sBAAsB,EAAEkE,UAAW;IAC5DC,gBAAgB,EAAElF,KAAK,CAACe,sBAAsB,EAAEoE,SAAU;IAC1DC,yBAAyB,EAAEpF,KAAK,CAACe,sBAAsB,EAAEsE,kBAAmB;IAC5EC,uBAAuB,EAAEtF,KAAK,CAACe,sBAAsB,EAAEwE,gBAAiB;IACxEC,mCAAmC,EACjCxF,KAAK,CAACe,sBAAsB,EAAEO,4BAA4B,KAAKhB;IAEjE;IAAA;IACAmF,YAAY,EAAEzF,KAAK,CAACyF,YAAa;IACjCC,eAAe,EAAE1F,KAAK,CAAC0F;IACvB;IAAA;IACA/C,KAAK,EAAEC,MAAM,CAACC,SAAU;IACxB8C,GAAG,EAAEzF;IACL;IAAA;IACAH,sBAAsB,EAAEW,uBAAwB;IAChDkF,qBAAqB,EAAEvD;EAA0B,CAClD,CACG,CAAC;AAEX,CAAC,CAAC;AAEF,MAAMO,MAAM,GAAGhD,UAAU,CAACiG,MAAM,CAAC;EAC/BhD,SAAS,EAAE;IACTiD,IAAI,EAAE;EACR,CAAC;EACD/C,qBAAqB,EAAE;IACrBgD,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,MAAM;IACdC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ScanbotBarcodeCameraView.d.ts","sourceRoot":"","sources":["../../../../../src/component/barcode-camera-view/ScanbotBarcodeCameraView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAIpF,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,EACnC,MAAM,sCAAsC,CAAC;AAK9C,eAAO,MAAM,wBAAwB,2HAmJnC,CAAC"}
1
+ {"version":3,"file":"ScanbotBarcodeCameraView.d.ts","sourceRoot":"","sources":["../../../../../src/component/barcode-camera-view/ScanbotBarcodeCameraView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAIpF,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,EACnC,MAAM,sCAAsC,CAAC;AAK9C,eAAO,MAAM,wBAAwB,2HAsKnC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-scanbot-barcode-scanner-sdk",
3
3
  "title": "Scanbot Barcode Scanner SDK for React Native",
4
- "version": "6.2.1-beta.2",
4
+ "version": "6.2.1-beta.3",
5
5
  "description": "Scanbot Barcode Scanner SDK React Native Plugin for Android and iOS",
6
6
  "main": "lib/commonjs/index",
7
7
  "module": "lib/module/index",
@@ -16,6 +16,7 @@ export const ScanbotBarcodeCameraView = forwardRef<
16
16
  >(({ onBarcodeScannerResult, ...props }, forwardedRef) => {
17
17
  const viewRef = useRef(null);
18
18
  const boundBarcodeItemOverlayViews = useRef<Set<string>>(new Set());
19
+ const lastBarcodeScannerResult = useRef<BarcodeScannerResult | undefined>(undefined);
19
20
 
20
21
  useImperativeHandle(forwardedRef, () => {
21
22
  return {
@@ -51,28 +52,42 @@ export const ScanbotBarcodeCameraView = forwardRef<
51
52
  }
52
53
 
53
54
  if (props.selectionOverlayConfig?.barcodeItemOverlayViewBinder) {
54
- for (let barcode of barcodeScannerResult.barcodes!!) {
55
- const barcodeItemUuid = barcode.textWithExtension + '_' + barcode.type;
55
+ const barcodeScannerResultIsDuplicate =
56
+ lastBarcodeScannerResult.current?.barcodes !== undefined &&
57
+ barcodeScannerResult?.barcodes !== undefined &&
58
+ lastBarcodeScannerResult.current.barcodes.length ===
59
+ barcodeScannerResult.barcodes.length &&
60
+ JSON.stringify(
61
+ lastBarcodeScannerResult.current.barcodes.map((item) => _barcodeItemUuid(item))
62
+ ) ===
63
+ JSON.stringify(barcodeScannerResult.barcodes.map((item) => _barcodeItemUuid(item)));
56
64
 
57
- if (!boundBarcodeItemOverlayViews.current.has(barcodeItemUuid)) {
58
- const bindingConfig =
59
- await props.selectionOverlayConfig.barcodeItemOverlayViewBinder(barcode);
65
+ if (!barcodeScannerResultIsDuplicate) {
66
+ for (let barcode of barcodeScannerResult.barcodes!!) {
67
+ const barcodeItemUuid = _barcodeItemUuid(barcode);
60
68
 
61
- if (bindingConfig.saveConfig !== false) {
62
- boundBarcodeItemOverlayViews.current.add(barcodeItemUuid);
63
- }
69
+ if (!boundBarcodeItemOverlayViews.current.has(barcodeItemUuid)) {
70
+ const bindingConfig =
71
+ await props.selectionOverlayConfig.barcodeItemOverlayViewBinder(barcode);
72
+
73
+ if (bindingConfig.saveConfig !== false) {
74
+ boundBarcodeItemOverlayViews.current.add(barcodeItemUuid);
75
+ }
64
76
 
65
- if (viewRef.current != null) {
66
- Commands.bindBarcodeItemOverlayView(
67
- //@ts-ignore
68
- viewRef.current,
69
- barcodeItemUuid,
70
- JSON.stringify(bindingConfig)
71
- );
77
+ if (viewRef.current != null) {
78
+ Commands.bindBarcodeItemOverlayView(
79
+ //@ts-ignore
80
+ viewRef.current,
81
+ barcodeItemUuid,
82
+ JSON.stringify(bindingConfig)
83
+ );
84
+ }
72
85
  }
73
86
  }
74
87
  }
75
88
  }
89
+
90
+ lastBarcodeScannerResult.current = barcodeScannerResult;
76
91
  }
77
92
  },
78
93
  [props.selectionOverlayConfig, boundBarcodeItemOverlayViews, onBarcodeScannerResult]
@@ -99,6 +114,10 @@ export const ScanbotBarcodeCameraView = forwardRef<
99
114
  ]
100
115
  );
101
116
 
117
+ function _barcodeItemUuid(barcode: BarcodeResultField): string {
118
+ return barcode.textWithExtension + '_' + barcode.type;
119
+ }
120
+
102
121
  return (
103
122
  <View style={[styles.container, props.style]}>
104
123
  <View