Skip to content

Commit

Permalink
Merge pull request #96 from packagex-io/dev_nh
Browse files Browse the repository at this point in the history
reverted an optimization to avoid breaking changes
  • Loading branch information
aikhan79 authored Feb 13, 2025
2 parents 4a2e8fd + 1d057a6 commit 4f31de1
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 70 deletions.
1 change: 1 addition & 0 deletions example/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,7 @@ const App: React.FC = () => {
console.log('onBarcodeScan', JSON.stringify(event));
console.log("=======================")
setLoading(false);

visionSdk.current?.restartScanningHandler();
}, [])

Expand Down
143 changes: 73 additions & 70 deletions src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ const Camera = forwardRef<VisionSdkRefProps, VisionSdkProps>(
configureOnDeviceModel: (param: any) => dispatchCommand('configureOnDeviceModel', [param]),

// 7: Restarts the scanning process using the 'restartScanning' command
restartScanningHandler:() => dispatchCommand('restartScanning'),
restartScanningHandler: () => dispatchCommand('restartScanning'),

// 8: Sets focus settings using the 'setFocusSettings' command
setFocusSettings: (param: any) => dispatchCommand('setFocusSettings', [param]),
Expand All @@ -165,7 +165,7 @@ const Camera = forwardRef<VisionSdkRefProps, VisionSdkProps>(
getPrediction: (image: string, barcode: string[]) => dispatchCommand('getPrediction', [image, barcode]),

// 12: Retrieves prediction with cloud transformations using the 'getPredictionWithCloudTransformations' command
getPredictionWithCloudTransformations:(
getPredictionWithCloudTransformations: (
image: string,
barcode: string[]
) =>
Expand Down Expand Up @@ -227,34 +227,6 @@ const Camera = forwardRef<VisionSdkRefProps, VisionSdkProps>(



// Subscribe event listeners on mount, and cleanup on unmount
useEffect(() => {
// Event listener setup
const eventListeners = [
['onModelDownloadProgress', onModelDownloadProgressHandler],
['onBarcodeScan', onBarcodeScanHandler],
['onImageCaptured', onImageCapturedHandler],
['onOCRScan', onOCRScanHandler],
['onDetected', onDetectedHandler],
['onError', onErrorHandler],
['onCreateTemplate', onCreateTemplateHandler],
['onGetTemplates', onGetTemplateHandler],
['onDeleteTemplateById', onDeleteTemplateByIdHandler],
['onDeleteTemplates', onDeleteTemplatesaHandler],
];
// Add listeners
const subscriptions = eventListeners.map(([event, handler]) =>
DeviceEventEmitter.addListener(
event as string,
handler as (event: any) => void
)
);

// Cleanup listeners on unmount
return () => {
subscriptions.forEach((sub) => sub.remove());
};
}, []);

// Helper function to handle events
const parseNativeEvent = useCallback(<T,>(event: any): T => {
Expand All @@ -267,35 +239,35 @@ const Camera = forwardRef<VisionSdkRefProps, VisionSdkProps>(

const onBarcodeScanHandler = useCallback((event: any) =>
onBarcodeScan(parseNativeEvent<BarcodeScanResult>(event)),
[])
[onBarcodeScan])

// const onImageCaptured = useCallback((event) => console.log('Image Captured:', event), []);
const onModelDownloadProgressHandler = useCallback((event: any) =>
onModelDownloadProgress(parseNativeEvent<ModelDownloadProgress>(event)), []);
onModelDownloadProgress(parseNativeEvent<ModelDownloadProgress>(event)), [onModelDownloadProgress]);

const onImageCapturedHandler = useCallback((event: any) =>
onImageCaptured(parseNativeEvent<ImageCaptureEvent>(event)), [])
onImageCaptured(parseNativeEvent<ImageCaptureEvent>(event)), [onImageCaptured])

const onDetectedHandler = useCallback(
(event: any) => onDetected(parseNativeEvent<DetectionResult>(event)),
[]
[onDetected]
);

const onErrorHandler = useCallback((event: any) =>
onError(parseNativeEvent<ErrorResult>(event)), [])
onError(parseNativeEvent<ErrorResult>(event)), [onError])


const onCreateTemplateHandler = useCallback((event: any) =>
onCreateTemplate(parseNativeEvent<any>(event)), []);
onCreateTemplate(parseNativeEvent<any>(event)), [onCreateTemplate]);

const onGetTemplateHandler = useCallback((event: any) =>
onGetTemplates(parseNativeEvent<any>(event)), []);
onGetTemplates(parseNativeEvent<any>(event)), [onGetTemplates]);

const onDeleteTemplateByIdHandler = useCallback((event: any) =>
onDeleteTemplateById(parseNativeEvent<any>(event)), [])
onDeleteTemplateById(parseNativeEvent<any>(event)), [onDeleteTemplateById])

const onDeleteTemplatesaHandler = useCallback((event: any) =>
onDeleteTemplates(parseNativeEvent<any>(event)), [])
onDeleteTemplates(parseNativeEvent<any>(event)), [onDeleteTemplates])

const onOCRScanHandler = useCallback((event: any) => {
let ocrEvent = parseNativeEvent<OCRScanResult>(event);
Expand All @@ -321,39 +293,70 @@ const Camera = forwardRef<VisionSdkRefProps, VisionSdkProps>(
onOCRScan(ocrEvent);
}, [onOCRScan]);


// Subscribe event listeners on mount, and cleanup on unmount
useEffect(() => {
// Event listener setup
const eventListeners = [
['onModelDownloadProgress', onModelDownloadProgressHandler],
['onBarcodeScan', onBarcodeScanHandler],
['onImageCaptured', onImageCapturedHandler],
['onOCRScan', onOCRScanHandler],
['onDetected', onDetectedHandler],
['onError', onErrorHandler],
['onCreateTemplate', onCreateTemplateHandler],
['onGetTemplates', onGetTemplateHandler],
['onDeleteTemplateById', onDeleteTemplateByIdHandler],
['onDeleteTemplates', onDeleteTemplatesaHandler],
];
// Add listeners
const subscriptions = eventListeners.map(([event, handler]) =>
DeviceEventEmitter.addListener(
event as string,
handler as (event: any) => void
)
);

// Cleanup listeners on unmount
return () => {
subscriptions.forEach((sub) => sub.remove());
};
}, []);


return (
<>
<VisionSdkView
ref={VisionSDKViewRef}
key={reRender}
style={styles.flex}
isMultipleScanEnabled={isMultipleScanEnabled}
apiKey={apiKey}
mode={mode}
isEnableAutoOcrResponseWithImage={isEnableAutoOcrResponseWithImage}
captureMode={captureMode}
ocrMode={ocrMode}
ocrType={ocrType}
shouldResizeImage={shouldResizeImage}
token={token}
locationId={locationId}
options={options} // ideally this should be passed from variable, that is receiving data from ScannerContainer
environment={environment}
flash={flash}
zoomLevel={zoomLevel}
onBarcodeScan={onBarcodeScanHandler}
onModelDownloadProgress={onModelDownloadProgressHandler}
onImageCaptured={onImageCapturedHandler}
onOCRScan={onOCRScanHandler}
onDetected={onDetectedHandler}
onError={onErrorHandler}
onCreateTemplate={onCreateTemplateHandler}
onGetTemplates={onGetTemplateHandler}
onDeleteTemplateById={onDeleteTemplateByIdHandler}
onDeleteTemplates={onDeleteTemplatesaHandler}
>
{children}
</VisionSdkView>
<VisionSdkView
ref={VisionSDKViewRef}
key={reRender}
style={styles.flex}
isMultipleScanEnabled={isMultipleScanEnabled}
apiKey={apiKey}
mode={mode}
isEnableAutoOcrResponseWithImage={isEnableAutoOcrResponseWithImage}
captureMode={captureMode}
ocrMode={ocrMode}
ocrType={ocrType}
shouldResizeImage={shouldResizeImage}
token={token}
locationId={locationId}
options={options} // ideally this should be passed from variable, that is receiving data from ScannerContainer
environment={environment}
flash={flash}
zoomLevel={zoomLevel}
onBarcodeScan={onBarcodeScanHandler}
onModelDownloadProgress={onModelDownloadProgressHandler}
onImageCaptured={onImageCapturedHandler}
onOCRScan={onOCRScanHandler}
onDetected={onDetectedHandler}
onError={onErrorHandler}
onCreateTemplate={onCreateTemplateHandler}
onGetTemplates={onGetTemplateHandler}
onDeleteTemplateById={onDeleteTemplateByIdHandler}
onDeleteTemplates={onDeleteTemplatesaHandler}
>
{children}
</VisionSdkView>
</>
);
}
Expand Down

0 comments on commit 4f31de1

Please sign in to comment.