react-native-rectangle-doc-scanner 3.119.0 → 3.121.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.
- package/dist/DocScanner.d.ts +1 -0
- package/dist/DocScanner.js +12 -3
- package/dist/FullDocScanner.js +5 -0
- package/package.json +1 -1
- package/src/DocScanner.tsx +15 -3
- package/src/FullDocScanner.tsx +5 -0
package/dist/DocScanner.d.ts
CHANGED
|
@@ -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;
|
package/dist/DocScanner.js
CHANGED
|
@@ -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) ??
|
|
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/dist/FullDocScanner.js
CHANGED
|
@@ -196,6 +196,11 @@ const FullDocScanner = ({ onResult, onClose, detectionConfig, overlayColor = '#3
|
|
|
196
196
|
// Reset capture state when cropper fails or is cancelled
|
|
197
197
|
captureInProgressRef.current = false;
|
|
198
198
|
captureModeRef.current = null;
|
|
199
|
+
setRectangleDetected(false);
|
|
200
|
+
setRectangleHint(false);
|
|
201
|
+
if (docScannerRef.current?.reset) {
|
|
202
|
+
docScannerRef.current.reset();
|
|
203
|
+
}
|
|
199
204
|
const errorCode = error?.code;
|
|
200
205
|
const errorMessage = error?.message || String(error);
|
|
201
206
|
if (errorCode === CROPPER_TIMEOUT_CODE || errorMessage === CROPPER_TIMEOUT_CODE) {
|
package/package.json
CHANGED
package/src/DocScanner.tsx
CHANGED
|
@@ -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) ??
|
|
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
|
}),
|
package/src/FullDocScanner.tsx
CHANGED
|
@@ -274,6 +274,11 @@ export const FullDocScanner: React.FC<FullDocScannerProps> = ({
|
|
|
274
274
|
// Reset capture state when cropper fails or is cancelled
|
|
275
275
|
captureInProgressRef.current = false;
|
|
276
276
|
captureModeRef.current = null;
|
|
277
|
+
setRectangleDetected(false);
|
|
278
|
+
setRectangleHint(false);
|
|
279
|
+
if (docScannerRef.current?.reset) {
|
|
280
|
+
docScannerRef.current.reset();
|
|
281
|
+
}
|
|
277
282
|
|
|
278
283
|
const errorCode = (error as any)?.code;
|
|
279
284
|
const errorMessage = (error as any)?.message || String(error);
|