react-native-rectangle-doc-scanner 3.74.0 → 3.75.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.
@@ -246,7 +246,7 @@ const FullDocScanner = ({ onResult, onClose, detectionConfig, overlayColor = '#3
246
246
  console.log('[FullDocScanner] Gallery image selected:', imageUri);
247
247
  // Defer cropper presentation until picker dismissal finishes to avoid hierarchy errors
248
248
  await new Promise((resolve) => react_native_1.InteractionManager.runAfterInteractions(() => resolve()));
249
- await new Promise((resolve) => setTimeout(resolve, 150));
249
+ await new Promise((resolve) => setTimeout(resolve, 350));
250
250
  await openCropper(imageUri);
251
251
  }
252
252
  catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-rectangle-doc-scanner",
3
- "version": "3.74.0",
3
+ "version": "3.75.0",
4
4
  "description": "Native-backed document scanner for React Native with customizable overlays.",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -331,7 +331,7 @@ export const FullDocScanner: React.FC<FullDocScannerProps> = ({
331
331
  await new Promise<void>((resolve) =>
332
332
  InteractionManager.runAfterInteractions(() => resolve()),
333
333
  );
334
- await new Promise((resolve) => setTimeout(resolve, 150));
334
+ await new Promise((resolve) => setTimeout(resolve, 350));
335
335
 
336
336
  await openCropper(imageUri);
337
337
  } catch (error) {
@@ -20,6 +20,7 @@ class PdfScanner extends React.Component {
20
20
  permissionsAuthorized: Platform.OS === 'ios',
21
21
  };
22
22
  this.eventsSubscribed = false;
23
+ this.nativeRef = null;
23
24
  }
24
25
 
25
26
  onPermissionsDenied = () => {
@@ -130,7 +131,7 @@ class PdfScanner extends React.Component {
130
131
  return Promise.reject(new Error('capture_not_supported'));
131
132
  }
132
133
 
133
- const nodeHandle = findNodeHandle(this);
134
+ const nodeHandle = findNodeHandle(this.nativeRef);
134
135
 
135
136
  if (!nodeHandle) {
136
137
  return Promise.reject(new Error('scanner_view_not_ready'));
@@ -143,8 +144,7 @@ class PdfScanner extends React.Component {
143
144
  return result;
144
145
  }
145
146
 
146
- // Ensure callers always receive a promise even if native side falls back to events
147
- return Promise.resolve(result);
147
+ return result;
148
148
  } catch (error) {
149
149
  return Promise.reject(error);
150
150
  }
@@ -156,6 +156,9 @@ class PdfScanner extends React.Component {
156
156
  }
157
157
  return (
158
158
  <RNPdfScanner
159
+ ref={(ref) => {
160
+ this.nativeRef = ref;
161
+ }}
159
162
  {...this.props}
160
163
  onPictureTaken={this.sendOnPictureTakenEvent.bind(this)}
161
164
  onRectangleDetect={this.sendOnRectanleDetectEvent.bind(this)}
@@ -58,8 +58,10 @@ RCT_EXPORT_METHOD(capture:(nullable id)reactTag
58
58
  }
59
59
 
60
60
  if (!targetView && self->_scannerView) {
61
- NSLog(@"[RNPdfScannerManager] Falling back to last known scanner view");
61
+ NSLog(@"[RNPdfScannerManager] Falling back to last known scanner view: %@", self->_scannerView);
62
62
  targetView = self->_scannerView;
63
+ } else if (!targetView) {
64
+ NSLog(@"[RNPdfScannerManager] No cached scanner view available");
63
65
  }
64
66
 
65
67
  if (!targetView) {