react-native-rectangle-doc-scanner 3.119.0 → 3.120.0

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.
@@ -7,6 +7,7 @@ type PictureEvent = {
7
7
  width?: number;
8
8
  height?: number;
9
9
  rectangleCoordinates?: NativeRectangle | null;
10
+ rectangleOnScreen?: NativeRectangle | null;
10
11
  };
11
12
  export type RectangleDetectEvent = Omit<RectangleEventPayload, 'rectangleCoordinates' | 'rectangleOnScreen'> & {
12
13
  rectangleCoordinates?: Rectangle | null;
@@ -118,7 +118,9 @@ exports.DocScanner = (0, react_1.forwardRef)(({ onCapture, overlayColor = DEFAUL
118
118
  height: event.height,
119
119
  });
120
120
  setIsAutoCapturing(false);
121
- const normalizedRectangle = normalizeRectangle(event.rectangleCoordinates ?? null) ?? lastRectangleRef.current;
121
+ const normalizedRectangle = normalizeRectangle(event.rectangleCoordinates ?? null) ??
122
+ normalizeRectangle(event.rectangleOnScreen ?? null) ??
123
+ lastRectangleRef.current;
122
124
  const quad = normalizedRectangle ? (0, coordinate_1.rectangleToQuad)(normalizedRectangle) : null;
123
125
  const origin = captureOriginRef.current;
124
126
  captureOriginRef.current = 'auto';
@@ -286,8 +288,8 @@ exports.DocScanner = (0, react_1.forwardRef)(({ onCapture, overlayColor = DEFAUL
286
288
  setIsAutoCapturing(false);
287
289
  }
288
290
  }
289
- if (payload.rectangleCoordinates) {
290
- lastRectangleRef.current = payload.rectangleCoordinates;
291
+ if (payload.rectangleCoordinates || payload.rectangleOnScreen) {
292
+ lastRectangleRef.current = payload.rectangleCoordinates ?? payload.rectangleOnScreen ?? null;
291
293
  }
292
294
  const isGoodRectangle = payload.lastDetectionType === 0;
293
295
  const hasValidRectangle = isGoodRectangle && rectangleOnScreen;
@@ -321,6 +323,13 @@ exports.DocScanner = (0, react_1.forwardRef)(({ onCapture, overlayColor = DEFAUL
321
323
  captureResolvers.current.reject(new Error('reset'));
322
324
  captureResolvers.current = null;
323
325
  }
326
+ if (rectangleClearTimeoutRef.current) {
327
+ clearTimeout(rectangleClearTimeoutRef.current);
328
+ rectangleClearTimeoutRef.current = null;
329
+ }
330
+ lastRectangleRef.current = null;
331
+ setDetectedRectangle(null);
332
+ setIsAutoCapturing(false);
324
333
  captureOriginRef.current = 'auto';
325
334
  },
326
335
  }), [capture]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-rectangle-doc-scanner",
3
- "version": "3.119.0",
3
+ "version": "3.120.0",
4
4
  "description": "Native-backed document scanner for React Native with customizable overlays.",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -28,6 +28,7 @@ type PictureEvent = {
28
28
  width?: number;
29
29
  height?: number;
30
30
  rectangleCoordinates?: NativeRectangle | null;
31
+ rectangleOnScreen?: NativeRectangle | null;
31
32
  };
32
33
 
33
34
  export type RectangleDetectEvent = Omit<RectangleEventPayload, 'rectangleCoordinates' | 'rectangleOnScreen'> & {
@@ -195,7 +196,9 @@ export const DocScanner = forwardRef<DocScannerHandle, Props>(
195
196
  setIsAutoCapturing(false);
196
197
 
197
198
  const normalizedRectangle =
198
- normalizeRectangle(event.rectangleCoordinates ?? null) ?? lastRectangleRef.current;
199
+ normalizeRectangle(event.rectangleCoordinates ?? null) ??
200
+ normalizeRectangle(event.rectangleOnScreen ?? null) ??
201
+ lastRectangleRef.current;
199
202
  const quad = normalizedRectangle ? rectangleToQuad(normalizedRectangle) : null;
200
203
  const origin = captureOriginRef.current;
201
204
  captureOriginRef.current = 'auto';
@@ -390,8 +393,8 @@ export const DocScanner = forwardRef<DocScannerHandle, Props>(
390
393
  }
391
394
  }
392
395
 
393
- if (payload.rectangleCoordinates) {
394
- lastRectangleRef.current = payload.rectangleCoordinates;
396
+ if (payload.rectangleCoordinates || payload.rectangleOnScreen) {
397
+ lastRectangleRef.current = payload.rectangleCoordinates ?? payload.rectangleOnScreen ?? null;
395
398
  }
396
399
 
397
400
  const isGoodRectangle = payload.lastDetectionType === 0;
@@ -432,6 +435,15 @@ export const DocScanner = forwardRef<DocScannerHandle, Props>(
432
435
  captureResolvers.current.reject(new Error('reset'));
433
436
  captureResolvers.current = null;
434
437
  }
438
+
439
+ if (rectangleClearTimeoutRef.current) {
440
+ clearTimeout(rectangleClearTimeoutRef.current);
441
+ rectangleClearTimeoutRef.current = null;
442
+ }
443
+
444
+ lastRectangleRef.current = null;
445
+ setDetectedRectangle(null);
446
+ setIsAutoCapturing(false);
435
447
  captureOriginRef.current = 'auto';
436
448
  },
437
449
  }),