react-native-rectangle-doc-scanner 3.121.0 → 3.122.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/FullDocScanner.js +11 -12
- package/package.json +1 -1
- package/src/FullDocScanner.tsx +14 -13
package/dist/FullDocScanner.js
CHANGED
|
@@ -191,7 +191,6 @@ const FullDocScanner = ({ onResult, onClose, detectionConfig, overlayColor = '#3
|
|
|
191
191
|
});
|
|
192
192
|
}
|
|
193
193
|
catch (error) {
|
|
194
|
-
console.error('[FullDocScanner] openCropper error:', error);
|
|
195
194
|
setProcessing(false);
|
|
196
195
|
// Reset capture state when cropper fails or is cancelled
|
|
197
196
|
captureInProgressRef.current = false;
|
|
@@ -202,21 +201,21 @@ const FullDocScanner = ({ onResult, onClose, detectionConfig, overlayColor = '#3
|
|
|
202
201
|
docScannerRef.current.reset();
|
|
203
202
|
}
|
|
204
203
|
const errorCode = error?.code;
|
|
205
|
-
const
|
|
204
|
+
const errorMessageRaw = error?.message ?? String(error);
|
|
205
|
+
const errorMessage = typeof errorMessageRaw === 'string' ? errorMessageRaw : String(errorMessageRaw);
|
|
206
|
+
const normalizedMessage = errorMessage.toLowerCase();
|
|
207
|
+
const isUserCancelled = errorCode === 'E_PICKER_CANCELLED' ||
|
|
208
|
+
normalizedMessage === 'user cancelled image selection' ||
|
|
209
|
+
normalizedMessage.includes('cancel');
|
|
210
|
+
if (isUserCancelled) {
|
|
211
|
+
console.log('[FullDocScanner] User cancelled cropper');
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
console.error('[FullDocScanner] openCropper error:', error);
|
|
206
215
|
if (errorCode === CROPPER_TIMEOUT_CODE || errorMessage === CROPPER_TIMEOUT_CODE) {
|
|
207
216
|
console.error('[FullDocScanner] Cropper timed out waiting for presentation');
|
|
208
217
|
emitError(error instanceof Error ? error : new Error('Cropper timed out'), 'Failed to open crop editor. Please try again.');
|
|
209
218
|
}
|
|
210
|
-
else if (errorCode === 'E_PICKER_CANCELLED' ||
|
|
211
|
-
errorMessage === 'User cancelled image selection' ||
|
|
212
|
-
errorMessage.includes('cancelled') ||
|
|
213
|
-
errorMessage.includes('cancel')) {
|
|
214
|
-
console.log('[FullDocScanner] User cancelled cropper');
|
|
215
|
-
// DocScanner 상태를 리셋하여 카메라가 다시 작동하도록 함
|
|
216
|
-
if (docScannerRef.current?.reset) {
|
|
217
|
-
docScannerRef.current.reset();
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
219
|
else {
|
|
221
220
|
emitError(error instanceof Error ? error : new Error(errorMessage), 'Failed to crop image. Please try again.');
|
|
222
221
|
}
|
package/package.json
CHANGED
package/src/FullDocScanner.tsx
CHANGED
|
@@ -268,7 +268,6 @@ export const FullDocScanner: React.FC<FullDocScannerProps> = ({
|
|
|
268
268
|
base64: croppedImage.data ?? undefined,
|
|
269
269
|
});
|
|
270
270
|
} catch (error) {
|
|
271
|
-
console.error('[FullDocScanner] openCropper error:', error);
|
|
272
271
|
setProcessing(false);
|
|
273
272
|
|
|
274
273
|
// Reset capture state when cropper fails or is cancelled
|
|
@@ -281,7 +280,20 @@ export const FullDocScanner: React.FC<FullDocScannerProps> = ({
|
|
|
281
280
|
}
|
|
282
281
|
|
|
283
282
|
const errorCode = (error as any)?.code;
|
|
284
|
-
const
|
|
283
|
+
const errorMessageRaw = (error as any)?.message ?? String(error);
|
|
284
|
+
const errorMessage = typeof errorMessageRaw === 'string' ? errorMessageRaw : String(errorMessageRaw);
|
|
285
|
+
const normalizedMessage = errorMessage.toLowerCase();
|
|
286
|
+
const isUserCancelled =
|
|
287
|
+
errorCode === 'E_PICKER_CANCELLED' ||
|
|
288
|
+
normalizedMessage === 'user cancelled image selection' ||
|
|
289
|
+
normalizedMessage.includes('cancel');
|
|
290
|
+
|
|
291
|
+
if (isUserCancelled) {
|
|
292
|
+
console.log('[FullDocScanner] User cancelled cropper');
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
console.error('[FullDocScanner] openCropper error:', error);
|
|
285
297
|
|
|
286
298
|
if (errorCode === CROPPER_TIMEOUT_CODE || errorMessage === CROPPER_TIMEOUT_CODE) {
|
|
287
299
|
console.error('[FullDocScanner] Cropper timed out waiting for presentation');
|
|
@@ -289,17 +301,6 @@ export const FullDocScanner: React.FC<FullDocScannerProps> = ({
|
|
|
289
301
|
error instanceof Error ? error : new Error('Cropper timed out'),
|
|
290
302
|
'Failed to open crop editor. Please try again.',
|
|
291
303
|
);
|
|
292
|
-
} else if (
|
|
293
|
-
errorCode === 'E_PICKER_CANCELLED' ||
|
|
294
|
-
errorMessage === 'User cancelled image selection' ||
|
|
295
|
-
errorMessage.includes('cancelled') ||
|
|
296
|
-
errorMessage.includes('cancel')
|
|
297
|
-
) {
|
|
298
|
-
console.log('[FullDocScanner] User cancelled cropper');
|
|
299
|
-
// DocScanner 상태를 리셋하여 카메라가 다시 작동하도록 함
|
|
300
|
-
if (docScannerRef.current?.reset) {
|
|
301
|
-
docScannerRef.current.reset();
|
|
302
|
-
}
|
|
303
304
|
} else {
|
|
304
305
|
emitError(
|
|
305
306
|
error instanceof Error ? error : new Error(errorMessage),
|