UNPKG

react-native-executorch

Version:

An easy way to run AI models in React Native with ExecuTorch

39 lines (38 loc) 1.28 kB
"use strict"; import { useEffect, useState } from 'react'; import { OCRController } from '../../controllers/OCRController'; export const useOCR = ({ model, preventLoad = false }) => { const [error, setError] = useState(null); const [isReady, setIsReady] = useState(false); const [isGenerating, setIsGenerating] = useState(false); const [downloadProgress, setDownloadProgress] = useState(0); const [controllerInstance] = useState(() => new OCRController({ isReadyCallback: setIsReady, isGeneratingCallback: setIsGenerating, errorCallback: setError })); useEffect(() => { if (preventLoad) return; (async () => { await controllerInstance.load(model.detectorSource, { recognizerLarge: model.recognizerLarge, recognizerMedium: model.recognizerMedium, recognizerSmall: model.recognizerSmall }, model.language, setDownloadProgress); })(); return () => { controllerInstance.delete(); }; }, [controllerInstance, model.detectorSource, model.recognizerLarge, model.recognizerMedium, model.recognizerSmall, model.language, preventLoad]); return { error, isReady, isGenerating, forward: controllerInstance.forward, downloadProgress }; }; //# sourceMappingURL=useOCR.js.map