react-native-timacare 3.3.27 → 3.3.29

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.
Files changed (85) hide show
  1. package/lib/commonjs/screens/camera/CCCDCameraScreen.js +1 -1
  2. package/lib/commonjs/screens/camera/CCCDCameraScreen.js.flow +29 -26
  3. package/lib/commonjs/screens/camera/CCCDCameraScreen.js.map +1 -1
  4. package/lib/commonjs/screens/camera/index.js +1 -1
  5. package/lib/commonjs/screens/camera/index.js.flow +34 -48
  6. package/lib/commonjs/screens/camera/index.js.map +1 -1
  7. package/lib/commonjs/screens/home/DigitalTopupItem.js +1 -1
  8. package/lib/commonjs/screens/home/DigitalTopupItem.js.flow +31 -33
  9. package/lib/commonjs/screens/home/DigitalTopupItem.js.map +1 -1
  10. package/lib/commonjs/screens/home/ItemMotoBikeLoan.js +1 -1
  11. package/lib/commonjs/screens/home/ItemMotoBikeLoan.js.flow +44 -4
  12. package/lib/commonjs/screens/home/ItemMotoBikeLoan.js.map +1 -1
  13. package/lib/commonjs/screens/liveness/index.js +1 -1
  14. package/lib/commonjs/screens/liveness/index.js.flow +43 -54
  15. package/lib/commonjs/screens/liveness/index.js.map +1 -1
  16. package/lib/commonjs/screens/liveness-v2/index.js +1 -1
  17. package/lib/commonjs/screens/liveness-v2/index.js.flow +60 -56
  18. package/lib/commonjs/screens/liveness-v2/index.js.map +1 -1
  19. package/lib/commonjs/screens/mrz-scanner/index.js +1 -1
  20. package/lib/commonjs/screens/mrz-scanner/index.js.flow +25 -10
  21. package/lib/commonjs/screens/mrz-scanner/index.js.map +1 -1
  22. package/lib/commonjs/screens/toan-trinh-so/OCR.js +1 -1
  23. package/lib/commonjs/screens/toan-trinh-so/OCR.js.flow +48 -49
  24. package/lib/commonjs/screens/toan-trinh-so/OCR.js.map +1 -1
  25. package/lib/commonjs/screens/toan-trinh-so/RegisterCamera.js +1 -1
  26. package/lib/commonjs/screens/toan-trinh-so/RegisterCamera.js.flow +32 -33
  27. package/lib/commonjs/screens/toan-trinh-so/RegisterCamera.js.map +1 -1
  28. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js +1 -1
  29. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js.flow +26 -37
  30. package/lib/commonjs/screens/toan-trinh-so/TTSSelfie.js.map +1 -1
  31. package/lib/commonjs/screens/toan-trinh-so/VehicleCamera.js +1 -1
  32. package/lib/commonjs/screens/toan-trinh-so/VehicleCamera.js.flow +77 -78
  33. package/lib/commonjs/screens/toan-trinh-so/VehicleCamera.js.map +1 -1
  34. package/lib/commonjs/screens/uploadVideo/index.js +1 -1
  35. package/lib/commonjs/screens/uploadVideo/index.js.flow +32 -33
  36. package/lib/commonjs/screens/uploadVideo/index.js.map +1 -1
  37. package/lib/module/screens/camera/CCCDCameraScreen.js +1 -1
  38. package/lib/module/screens/camera/CCCDCameraScreen.js.map +1 -1
  39. package/lib/module/screens/camera/index.js +1 -1
  40. package/lib/module/screens/camera/index.js.map +1 -1
  41. package/lib/module/screens/home/DigitalTopupItem.js +1 -1
  42. package/lib/module/screens/home/DigitalTopupItem.js.map +1 -1
  43. package/lib/module/screens/home/ItemMotoBikeLoan.js +1 -1
  44. package/lib/module/screens/home/ItemMotoBikeLoan.js.map +1 -1
  45. package/lib/module/screens/liveness/index.js +1 -1
  46. package/lib/module/screens/liveness/index.js.map +1 -1
  47. package/lib/module/screens/liveness-v2/index.js +1 -1
  48. package/lib/module/screens/liveness-v2/index.js.map +1 -1
  49. package/lib/module/screens/mrz-scanner/index.js +1 -1
  50. package/lib/module/screens/mrz-scanner/index.js.map +1 -1
  51. package/lib/module/screens/toan-trinh-so/OCR.js +1 -1
  52. package/lib/module/screens/toan-trinh-so/OCR.js.map +1 -1
  53. package/lib/module/screens/toan-trinh-so/RegisterCamera.js +1 -1
  54. package/lib/module/screens/toan-trinh-so/RegisterCamera.js.map +1 -1
  55. package/lib/module/screens/toan-trinh-so/TTSSelfie.js +1 -1
  56. package/lib/module/screens/toan-trinh-so/TTSSelfie.js.map +1 -1
  57. package/lib/module/screens/toan-trinh-so/VehicleCamera.js +1 -1
  58. package/lib/module/screens/toan-trinh-so/VehicleCamera.js.map +1 -1
  59. package/lib/module/screens/uploadVideo/index.js +1 -1
  60. package/lib/module/screens/uploadVideo/index.js.map +1 -1
  61. package/lib/typescript/screens/camera/CCCDCameraScreen.d.ts.map +1 -1
  62. package/lib/typescript/screens/camera/index.d.ts.map +1 -1
  63. package/lib/typescript/screens/home/DigitalTopupItem.d.ts.map +1 -1
  64. package/lib/typescript/screens/home/ItemMotoBikeLoan.d.ts.map +1 -1
  65. package/lib/typescript/screens/liveness/index.d.ts.map +1 -1
  66. package/lib/typescript/screens/liveness-v2/index.d.ts.map +1 -1
  67. package/lib/typescript/screens/mrz-scanner/index.d.ts.map +1 -1
  68. package/lib/typescript/screens/toan-trinh-so/OCR.d.ts.map +1 -1
  69. package/lib/typescript/screens/toan-trinh-so/RegisterCamera.d.ts.map +1 -1
  70. package/lib/typescript/screens/toan-trinh-so/TTSSelfie.d.ts.map +1 -1
  71. package/lib/typescript/screens/toan-trinh-so/VehicleCamera.d.ts.map +1 -1
  72. package/lib/typescript/screens/uploadVideo/index.d.ts.map +1 -1
  73. package/package.json +1 -2
  74. package/src/screens/camera/CCCDCameraScreen.tsx +29 -26
  75. package/src/screens/camera/index.tsx +34 -48
  76. package/src/screens/home/DigitalTopupItem.tsx +31 -33
  77. package/src/screens/home/ItemMotoBikeLoan.tsx +44 -4
  78. package/src/screens/liveness/index.tsx +43 -54
  79. package/src/screens/liveness-v2/index.tsx +60 -56
  80. package/src/screens/mrz-scanner/index.tsx +25 -10
  81. package/src/screens/toan-trinh-so/OCR.tsx +48 -49
  82. package/src/screens/toan-trinh-so/RegisterCamera.tsx +32 -33
  83. package/src/screens/toan-trinh-so/TTSSelfie.tsx +26 -37
  84. package/src/screens/toan-trinh-so/VehicleCamera.tsx +77 -78
  85. package/src/screens/uploadVideo/index.tsx +32 -33
@@ -12,7 +12,11 @@ import {
12
12
  NativeModules,
13
13
  } from 'react-native';
14
14
  import { StackActions, useNavigation } from '@react-navigation/native';
15
- import { RNCamera } from 'react-native-camera';
15
+ import {
16
+ Camera as VisionCamera,
17
+ useCameraDevice,
18
+ useCameraFormat,
19
+ } from 'react-native-vision-camera';
16
20
  import TextRecognition from '@react-native-ml-kit/text-recognition';
17
21
  import {
18
22
  openSettings,
@@ -39,6 +43,10 @@ const MRZScanner = (props: any) => {
39
43
  const [mrzData, setMrzData] = useState('');
40
44
  const [passPermission, setPassPermission] = useState(false);
41
45
  const cameraRef = useRef(null);
46
+ const device = useCameraDevice('back');
47
+ const format = useCameraFormat(device, [
48
+ { photoResolution: { width: 1280, height: 720 } },
49
+ ]);
42
50
 
43
51
  const requestPermissions = () => {
44
52
  request(
@@ -224,20 +232,27 @@ const MRZScanner = (props: any) => {
224
232
 
225
233
  const takePicture = async () => {
226
234
  if (cameraRef.current) {
227
- const options = { quality: 0.8, base64: true };
228
- const data = await cameraRef.current.takePictureAsync(options);
229
- await handleTextRecognition(data.uri);
235
+ const data = await cameraRef.current.takePhoto({
236
+ qualityPrioritization: 'speed',
237
+ });
238
+ await handleTextRecognition('file://' + data.path);
230
239
  }
231
240
  };
232
241
 
233
242
  return (
234
243
  <View style={styles.container}>
235
- <RNCamera
236
- ref={cameraRef}
237
- style={styles.camera}
238
- type={RNCamera.Constants.Type.back}
239
- captureAudio={false}
240
- ></RNCamera>
244
+ {passPermission && device ? (
245
+ <VisionCamera
246
+ ref={cameraRef}
247
+ style={styles.camera}
248
+ device={device}
249
+ isActive={true}
250
+ photo={true}
251
+ format={format}
252
+ />
253
+ ) : (
254
+ <View style={styles.camera} />
255
+ )}
241
256
  <View style={styles.overlay}>
242
257
  <View style={styles.overlayTop} />
243
258
  <View style={styles.overlayCenter}>
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_native","_reactNativeCamera","_textRecognition","_interopRequireDefault","_reactNativePermissions","_MText","_MButton","_icons","_CommonStyles","_store","_navigation","_reactNativeSafeAreaContext","_this","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t2","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NFCReader","NativeModules","MRZScanner","props","_props$route","_props$route$params","insets","useSafeAreaInsets","navigation","useNavigation","loan","route","params","_useState","useState","_useState2","_slicedToArray2","hasCameraPermission","setHasCameraPermission","_useState3","_useState4","mrzData","setMrzData","_useState5","_useState6","passPermission","setPassPermission","cameraRef","useRef","requestPermissions","request","Platform","OS","PERMISSIONS","IOS","CAMERA","ANDROID","then","result","RESULTS","UNAVAILABLE","console","log","Alert","alert","text","DENIED","onPress","openSettings","LIMITED","GRANTED","BLOCKED","useEffect","convertToDate","input","end","yearPrefix","substring","year","parseInt","month","day","extractMRZInfo","documentNumber","birthDate","expirationDate","regex1","match1","match","regex","replace","startNFCReader","error","response","convertData","JSON","parse","body","LoanBriefId","id","RawSod","sod","RawDg1","dg1","RawDg2","dg2","RawDg13","dg13","RawDg14","dg14","RawDg15","dg15","nfcStore","addNfcData","dispatch","StackActions","push","ScreenNames","FullSubmit","handleTextRecognition","_callee","imagePath","mrzText","_t","_regenerator","async","_context","prev","next","awrap","TextRecognition","recognize","sent","stop","Promise","takePicture","_callee2","options","data","_context2","current","quality","base64","takePictureAsync","uri","createElement","View","style","styles","container","__self","__source","fileName","lineNumber","columnNumber","RNCamera","ref","camera","type","Constants","Type","back","captureAudio","overlay","overlayTop","overlayCenter","overlayLeft","overlayRect","overlayRight","overlayBottom","position","top","left","right","commonStyles","row","alignCenter","height","paddingHorizontal","goBack","width","justifyContent","IconBackWhite","flex","paddingRight","MText","color","fontSize","textAlign","padding","fontWeight","buttonContainer","TouchableOpacity","captureButton","StyleSheet","create","flexDirection","alignItems","bottom","borderRadius","backgroundColor","innerCaptureButton","borderColor","borderWidth","instructionText","mrzContainer","_default","exports"],"sourceRoot":"../../../../src","sources":["screens/mrz-scanner/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_native","_reactNativeVisionCamera","_textRecognition","_interopRequireDefault","_reactNativePermissions","_MText","_MButton","_icons","_CommonStyles","_store","_navigation","_reactNativeSafeAreaContext","_this","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t2","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NFCReader","NativeModules","MRZScanner","props","_props$route","_props$route$params","insets","useSafeAreaInsets","navigation","useNavigation","loan","route","params","_useState","useState","_useState2","_slicedToArray2","hasCameraPermission","setHasCameraPermission","_useState3","_useState4","mrzData","setMrzData","_useState5","_useState6","passPermission","setPassPermission","cameraRef","useRef","device","useCameraDevice","format","useCameraFormat","photoResolution","width","height","requestPermissions","request","Platform","OS","PERMISSIONS","IOS","CAMERA","ANDROID","then","result","RESULTS","UNAVAILABLE","console","log","Alert","alert","text","DENIED","onPress","openSettings","LIMITED","GRANTED","BLOCKED","useEffect","convertToDate","input","end","yearPrefix","substring","year","parseInt","month","day","extractMRZInfo","documentNumber","birthDate","expirationDate","regex1","match1","match","regex","replace","startNFCReader","error","response","convertData","JSON","parse","body","LoanBriefId","id","RawSod","sod","RawDg1","dg1","RawDg2","dg2","RawDg13","dg13","RawDg14","dg14","RawDg15","dg15","nfcStore","addNfcData","dispatch","StackActions","push","ScreenNames","FullSubmit","handleTextRecognition","_callee","imagePath","mrzText","_t","_regenerator","async","_context","prev","next","awrap","TextRecognition","recognize","sent","stop","Promise","takePicture","_callee2","data","_context2","current","takePhoto","qualityPrioritization","path","createElement","View","style","styles","container","__self","__source","fileName","lineNumber","columnNumber","Camera","ref","camera","isActive","photo","overlay","overlayTop","overlayCenter","overlayLeft","overlayRect","overlayRight","overlayBottom","position","top","left","right","commonStyles","row","alignCenter","paddingHorizontal","goBack","justifyContent","IconBackWhite","flex","paddingRight","MText","color","fontSize","textAlign","padding","fontWeight","buttonContainer","TouchableOpacity","captureButton","StyleSheet","create","flexDirection","alignItems","bottom","borderRadius","backgroundColor","innerCaptureButton","borderColor","borderWidth","instructionText","mrzContainer","_default","exports"],"sourceRoot":"../../../../src","sources":["screens/mrz-scanner/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.OCR=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _mobxReactLite=require("mobx-react-lite");var _reactNative=require("react-native");var _MText=require("../../components/MText");var _storage=require("../../utils/storage");var _reactNativePermissions=require("react-native-permissions");var _reactNativeCamera=require("react-native-camera");var _reactNativeModal=_interopRequireDefault(require("react-native-modal"));var _reactNativeLinearGradient=_interopRequireDefault(require("react-native-linear-gradient"));var _icons=require("../../assets/icons");var _MButton=_interopRequireDefault(require("../../components/MButton"));var _CommonStyles=require("../CommonStyles");var _native=require("@react-navigation/native");var _textRecognition=_interopRequireDefault(require("@react-native-ml-kit/text-recognition"));var _navigation=require("../../navigation");var _api=require("../../services/api");var _Loading=_interopRequireDefault(require("../../components/Loading"));var _svgs=require("../../assets/svgs");var _reactNativeImageCropPicker=_interopRequireDefault(require("react-native-image-crop-picker"));var _reactNativeImagePicker=require("react-native-image-picker");var _reactNativeSafeAreaContext=require("react-native-safe-area-context");var _jsxFileName="/Users/tima/Tima/react-native-timacare/src/screens/toan-trinh-so/OCR.tsx";function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t3 in e)"default"!==_t3&&{}.hasOwnProperty.call(e,_t3)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t3))&&(i.get||i.set)?o(f,_t3,i):f[_t3]=e[_t3]);return f;})(e,t);}var NFCReader=_reactNative.NativeModules.NFCReader;var OCR=exports.OCR=(0,_mobxReactLite.observer)(function OCR(props){var _props$route22,_props$route22$params,_this=this;var insets=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)();var isFocused=(0,_native.useIsFocused)();var _useState=(0,_react.useState)(false),_useState2=(0,_slicedToArray2.default)(_useState,2),isLoading=_useState2[0],setIsLoading=_useState2[1];var navigation=(0,_native.useNavigation)();var _useState3=(0,_react.useState)(false),_useState4=(0,_slicedToArray2.default)(_useState3,2),showModal=_useState4[0],setShowModal=_useState4[1];var _useState5=(0,_react.useState)('passport'),_useState6=(0,_slicedToArray2.default)(_useState5,2),type=_useState6[0],setType=_useState6[1];var _useState7=(0,_react.useState)(false),_useState8=(0,_slicedToArray2.default)(_useState7,2),taking=_useState8[0],setTaking=_useState8[1];var _useState9=(0,_react.useState)(false),_useState0=(0,_slicedToArray2.default)(_useState9,2),passPermission=_useState0[0],setPassPermission=_useState0[1];var _useState1=(0,_react.useState)(false),_useState10=(0,_slicedToArray2.default)(_useState1,2),shouldRenderCamera=_useState10[0],setShouldRenderCamera=_useState10[1];var myCamera=(0,_react.useRef)(null);var _requestPermissions=function requestPermissions(){(0,_reactNativePermissions.request)(_reactNative.Platform.OS==='ios'?_reactNativePermissions.PERMISSIONS.IOS.CAMERA:_reactNativePermissions.PERMISSIONS.ANDROID.CAMERA).then(function(result){switch(result){case _reactNativePermissions.RESULTS.UNAVAILABLE:console.log('This feature is not available (on this device / in this context)');_reactNative.Alert.alert('Thông báo','Máy ảnh trên thiết bị không tương thích.\nVui lòng kiểm tra lại thiết bị!',[{text:'Đồng ý'}]);break;case _reactNativePermissions.RESULTS.DENIED:console.log('The permission has not been requested / is denied but requestable');_reactNative.Alert.alert('Thông báo','Bạn đã từ chối quyền máy ảnh. Vui lòng cấp quyền máy ảnh để tiếp tục!',[{text:'Đồng ý',onPress:function onPress(){if(_reactNative.Platform.OS==='ios'){(0,_reactNativePermissions.openSettings)();}else{_requestPermissions();}}}]);break;case _reactNativePermissions.RESULTS.LIMITED:console.log('The permission is limited: some actions are possible');_reactNative.Alert.alert('Thông báo','Quyền máy ảnh bị hạn chế. Vui lòng kiểm tra lại để tiếp tục!',[{text:'Đồng ý',onPress:function onPress(){if(_reactNative.Platform.OS==='ios'){(0,_reactNativePermissions.openSettings)();}else{_requestPermissions();}}}]);break;case _reactNativePermissions.RESULTS.GRANTED:console.log('The permission is granted');setPassPermission(true);break;case _reactNativePermissions.RESULTS.BLOCKED:console.log('The permission is denied and not requestable anymore');_reactNative.Alert.alert('Thông báo','Bạn đã từ chối quyền máy ảnh. Vui lòng cấp quyền máy ảnh để tiếp tục!',[{text:'Đồng ý',onPress:function onPress(){if(_reactNative.Platform.OS==='ios'){(0,_reactNativePermissions.openSettings)();}else{(0,_reactNativePermissions.openSettings)();}}}]);break;}});};(0,_react.useEffect)(function(){var timeout;if(isFocused){timeout=setTimeout(function(){setShouldRenderCamera(true);},500);}else{setShouldRenderCamera(false);}return function(){return clearTimeout(timeout);};},[isFocused]);var loadIntro=function _callee(){var intro;return _regenerator.default.async(function(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=1;return _regenerator.default.awrap((0,_storage.load)(_storage.OCR_V1));case 1:intro=_context.sent;if(!intro){setShowModal(true);}case 2:case"end":return _context.stop();}},null,null,null,Promise);};(0,_react.useEffect)(function(){_requestPermissions();loadIntro();},[]);(0,_react.useEffect)(function(){var unsubscribe=navigation.addListener('blur',function(){var _myCamera$current;(_myCamera$current=myCamera.current)==null?void 0:_myCamera$current.pausePreview();});return unsubscribe;},[navigation]);var saveDataNfc=function _callee2(body){var _props$route,_props$route$params,_props$route$params$l,response,_response$data,_response$data$meta,_response$data2,_response$data2$meta,_t;return _regenerator.default.async(function(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.prev=0;_context2.next=1;return _regenerator.default.awrap(_api.Api.getInstance().saveNfcInfo((0,_extends2.default)({},body,{loanBriefId:props==null?void 0:(_props$route=props.route)==null?void 0:(_props$route$params=_props$route.params)==null?void 0:(_props$route$params$l=_props$route$params.loan)==null?void 0:_props$route$params$l.id})));case 1:response=_context2.sent;if(response.kind==='ok'){if(((_response$data=response.data)==null?void 0:(_response$data$meta=_response$data.meta)==null?void 0:_response$data$meta.errorCode)===200){setTimeout(function(){var _props$route2,_props$route2$params;navigation.push(_navigation.ScreenNames.TTSSelfie,{loan:props==null?void 0:(_props$route2=props.route)==null?void 0:(_props$route2$params=_props$route2.params)==null?void 0:_props$route2$params.loan});},500);}else{_reactNative.Alert.alert('Thông báo',response==null?void 0:(_response$data2=response.data)==null?void 0:(_response$data2$meta=_response$data2.meta)==null?void 0:_response$data2$meta.errorMessage);}}else{_reactNative.Alert.alert('Thông báo','Có lỗi xảy ra. Vui lòng thử lại sau');}_context2.next=3;break;case 2:_context2.prev=2;_t=_context2["catch"](0);console.log(_t);case 3:case"end":return _context2.stop();}},null,null,[[0,2]],Promise);};var convertToDate=function convertToDate(input,end){var yearPrefix=input.substring(0,2);var year=end?'20'+yearPrefix:parseInt(yearPrefix)>20?'19'+yearPrefix:'20'+yearPrefix;var month=input.substring(2,4);var day=input.substring(4,6);return year+'-'+month+'-'+day;};var extractMRZInfo=function extractMRZInfo(text){var documentNumber='';var birthDate='';var expirationDate='';var regex1=/VNM(\d{9})/;var match1=text.match(regex1);if(match1){documentNumber=match1[1];}console.log('documentNumber',documentNumber);var regex=/(\d{6}).[MF](\d{6})/;var match=text.replace(/ /g,'').match(regex);if(match){console.log({documentNumber:documentNumber,birthDate:match[1],expirationDate:match[2]});birthDate=match[1],expirationDate=match[2];}else{return null;}if(documentNumber&&birthDate&&expirationDate){try{NFCReader.readNFCCard(documentNumber,convertToDate(birthDate,false),convertToDate(expirationDate,true),function(error,response){try{var convertData=JSON.parse(response);saveDataNfc(convertData);}catch(e){console.log(e);}});}catch(e){console.log(e);}}};var handleTextRecognition=function _callee3(imagePath){var result,_t2;return _regenerator.default.async(function(_context3){while(1)switch(_context3.prev=_context3.next){case 0:_context3.prev=0;_context3.next=1;return _regenerator.default.awrap(_textRecognition.default.recognize(imagePath));case 1:result=_context3.sent;extractMRZInfo(result.text);_context3.next=3;break;case 2:_context3.prev=2;_t2=_context3["catch"](0);console.log(_t2);case 3:case"end":return _context3.stop();}},null,null,[[0,2]],Promise);};var scanNfc=function _callee4(){var options,data;return _regenerator.default.async(function(_context4){while(1)switch(_context4.prev=_context4.next){case 0:if(!myCamera.current){_context4.next=2;break;}options={quality:0.8,base64:true};_context4.next=1;return _regenerator.default.awrap(myCamera.current.takePictureAsync(options));case 1:data=_context4.sent;_context4.next=2;return _regenerator.default.awrap(handleTextRecognition(data.uri));case 2:case"end":return _context4.stop();}},null,null,null,Promise);};var takePhoto=function _callee5(){var _props$route3,_props$route3$params,_props$route4,_props$route4$params,_props$route6,_props$route6$params,_props$route7,_props$route7$params;var options,data,_props$route5,_props$route5$params,_props$route8,_props$route8$params,_props$route9,_props$route9$params;return _regenerator.default.async(function(_context5){while(1)switch(_context5.prev=_context5.next){case 0:setTaking(true);options={base64:true,pauseAfterCapture:true,fixOrientation:false,forceUpOrientation:false,orientation:_reactNativeCamera.RNCamera.Constants.Orientation.portrait,quality:0.9,pictureSize:'1280x720'};_context5.next=1;return _regenerator.default.awrap(myCamera.current.takePictureAsync(options));case 1:data=_context5.sent;setTaking(false);if(props!=null&&(_props$route3=props.route)!=null&&(_props$route3$params=_props$route3.params)!=null&&_props$route3$params.front&&!((_props$route4=props.route)!=null&&(_props$route4$params=_props$route4.params)!=null&&_props$route4$params.callback)){navigation.push(_navigation.ScreenNames.TTSNationalIDFront,{uri:data==null?void 0:data.uri,loan:props==null?void 0:(_props$route5=props.route)==null?void 0:(_props$route5$params=_props$route5.params)==null?void 0:_props$route5$params.loan});}else if(!(props!=null&&(_props$route6=props.route)!=null&&(_props$route6$params=_props$route6.params)!=null&&_props$route6$params.front)&&!((_props$route7=props.route)!=null&&(_props$route7$params=_props$route7.params)!=null&&_props$route7$params.callback)){navigation.push(_navigation.ScreenNames.TTSNationalIDBack,{uri:data==null?void 0:data.uri,loan:props==null?void 0:(_props$route8=props.route)==null?void 0:(_props$route8$params=_props$route8.params)==null?void 0:_props$route8$params.loan});}else{navigation.goBack();(_props$route9=props.route)==null?void 0:(_props$route9$params=_props$route9.params)==null?void 0:_props$route9$params.callback(data==null?void 0:data.uri);}case 2:case"end":return _context5.stop();}},null,null,null,Promise);};var pickImageFromGallery=function _callee6(){var result,_props$route0,_props$route0$params,_props$route1,_props$route1$params,_props$route11,_props$route11$params,_props$route12,_props$route12$params,_result$assets$,_props$route10,_props$route10$params,_result$assets$2,_props$route13,_props$route13$params,_props$route14,_props$route14$params,_result$assets$3;return _regenerator.default.async(function(_context6){while(1)switch(_context6.prev=_context6.next){case 0:if(!(_reactNative.Platform.OS==='android')){_context6.next=2;break;}_context6.next=1;return _regenerator.default.awrap((0,_reactNativeImagePicker.launchImageLibrary)({mediaType:'photo'}));case 1:result=_context6.sent;if(result.assets){if(props!=null&&(_props$route0=props.route)!=null&&(_props$route0$params=_props$route0.params)!=null&&_props$route0$params.front&&!((_props$route1=props.route)!=null&&(_props$route1$params=_props$route1.params)!=null&&_props$route1$params.callback)){navigation.push(_navigation.ScreenNames.TTSNationalIDFront,{uri:(_result$assets$=result.assets[0])==null?void 0:_result$assets$.uri,loan:props==null?void 0:(_props$route10=props.route)==null?void 0:(_props$route10$params=_props$route10.params)==null?void 0:_props$route10$params.loan});}else if(!(props!=null&&(_props$route11=props.route)!=null&&(_props$route11$params=_props$route11.params)!=null&&_props$route11$params.front)&&!((_props$route12=props.route)!=null&&(_props$route12$params=_props$route12.params)!=null&&_props$route12$params.callback)){navigation.push(_navigation.ScreenNames.TTSNationalIDBack,{uri:(_result$assets$2=result.assets[0])==null?void 0:_result$assets$2.uri,loan:props==null?void 0:(_props$route13=props.route)==null?void 0:(_props$route13$params=_props$route13.params)==null?void 0:_props$route13$params.loan});}else{navigation.goBack();(_props$route14=props.route)==null?void 0:(_props$route14$params=_props$route14.params)==null?void 0:_props$route14$params.callback((_result$assets$3=result.assets[0])==null?void 0:_result$assets$3.uri);}}_context6.next=3;break;case 2:_reactNativeImageCropPicker.default.openPicker({}).then(function(image){var _props$route15,_props$route15$params,_props$route16,_props$route16$params,_props$route18,_props$route18$params,_props$route19,_props$route19$params;if(props!=null&&(_props$route15=props.route)!=null&&(_props$route15$params=_props$route15.params)!=null&&_props$route15$params.front&&!((_props$route16=props.route)!=null&&(_props$route16$params=_props$route16.params)!=null&&_props$route16$params.callback)){var _props$route17,_props$route17$params;navigation.push(_navigation.ScreenNames.TTSNationalIDFront,{uri:_reactNative.Platform.OS==='android'?image==null?void 0:image.path:'file://'+(image==null?void 0:image.path),loan:props==null?void 0:(_props$route17=props.route)==null?void 0:(_props$route17$params=_props$route17.params)==null?void 0:_props$route17$params.loan});}else if(!(props!=null&&(_props$route18=props.route)!=null&&(_props$route18$params=_props$route18.params)!=null&&_props$route18$params.front)&&!((_props$route19=props.route)!=null&&(_props$route19$params=_props$route19.params)!=null&&_props$route19$params.callback)){var _props$route20,_props$route20$params;navigation.push(_navigation.ScreenNames.TTSNationalIDBack,{uri:_reactNative.Platform.OS==='android'?image==null?void 0:image.path:'file://'+(image==null?void 0:image.path),loan:props==null?void 0:(_props$route20=props.route)==null?void 0:(_props$route20$params=_props$route20.params)==null?void 0:_props$route20$params.loan});}else{var _props$route21,_props$route21$params;navigation.goBack();(_props$route21=props.route)==null?void 0:(_props$route21$params=_props$route21.params)==null?void 0:_props$route21$params.callback(_reactNative.Platform.OS==='android'?image==null?void 0:image.path:'file://'+(image==null?void 0:image.path));}});case 3:case"end":return _context6.stop();}},null,null,null,Promise);};return _react.default.createElement(_reactNative.View,{style:{flex:1,backgroundColor:'black'},pointerEvents:'box-none',__self:this,__source:{fileName:_jsxFileName,lineNumber:376,columnNumber:5}},_react.default.createElement(_reactNative.View,{style:{alignItems:'center',position:'absolute',top:insets.top+16,left:0,right:0,zIndex:100},__self:this,__source:{fileName:_jsxFileName,lineNumber:380,columnNumber:7}},_react.default.createElement(_reactNative.TouchableOpacity,{onPress:function onPress(){navigation.navigate(_navigation.ScreenNames.Main);},style:{position:'absolute',left:10,top:4,width:24,height:24,alignItems:'center',justifyContent:'center'},__self:this,__source:{fileName:_jsxFileName,lineNumber:390,columnNumber:9}},_react.default.createElement(_icons.IconBackWhite,{__self:this,__source:{fileName:_jsxFileName,lineNumber:404,columnNumber:11}})),_react.default.createElement(_reactNative.View,{style:{flexDirection:'row',padding:2,borderRadius:4,alignItems:'center',backgroundColor:'transparent'},__self:this,__source:{fileName:_jsxFileName,lineNumber:406,columnNumber:9}}),_react.default.createElement(_MText.MText,{style:{color:'white',fontSize:16,textAlign:'center',padding:16,marginTop:10},__self:this,__source:{fileName:_jsxFileName,lineNumber:491,columnNumber:9}},type==='passport'&&props!=null&&(_props$route22=props.route)!=null&&(_props$route22$params=_props$route22.params)!=null&&_props$route22$params.front?'Chụp CMND/ CCCD mặt trước':type==='passport'?'Chụp CMND/ CCCD mặt sau':'Dùng camera để quét chuỗi ký tự mặt sau thẻ CCCD gắn chíp ở phía dưới')),passPermission&&type==='passport'&&shouldRenderCamera?_react.default.createElement(_reactNative.View,{style:[_CommonStyles.commonStyles.alignCenter,_CommonStyles.commonStyles.fill,_CommonStyles.commonStyles.justifyCenter,{position:'absolute',width:_reactNative.Dimensions.get('window').width,height:_reactNative.Dimensions.get('window').height}],__self:this,__source:{fileName:_jsxFileName,lineNumber:509,columnNumber:9}},_react.default.createElement(_reactNativeCamera.RNCamera,{ref:myCamera,defaultVideoQuality:_reactNativeCamera.RNCamera.Constants.VideoQuality['720p'],style:{width:_reactNative.Dimensions.get('window').width,height:260,overflow:'hidden'},maxZoom:1,__self:this,__source:{fileName:_jsxFileName,lineNumber:521,columnNumber:11}},function(_ref){var camera=_ref.camera,status=_ref.status,recordAudioPermissionStatus=_ref.recordAudioPermissionStatus;if(status!=='READY')return _react.default.createElement(_reactNative.ActivityIndicator,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:532,columnNumber:46}});}),_react.default.createElement(_reactNative.TouchableOpacity,{onPress:function onPress(){pickImageFromGallery();},style:{flexDirection:'row',alignItems:'center',gap:8,marginTop:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:535,columnNumber:11}},_react.default.createElement(_svgs.IconUpload,{__self:this,__source:{fileName:_jsxFileName,lineNumber:546,columnNumber:13}}),_react.default.createElement(_MText.MText,{style:{color:'white',fontSize:12},__self:this,__source:{fileName:_jsxFileName,lineNumber:547,columnNumber:13}},"T\u1EA3i \u1EA3nh t\u1EEB th\u01B0 vi\u1EC7n")),_react.default.createElement(_reactNative.View,{style:styles.buttonContainer,__self:this,__source:{fileName:_jsxFileName,lineNumber:557,columnNumber:11}},_react.default.createElement(_MText.MText,{style:{color:'white',fontSize:14,textAlign:'center',padding:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:558,columnNumber:13}},"Vui l\xF2ng \u0111\u1EB7t gi\u1EA5y t\u1EDD n\u1EB1m v\u1EEBa khung h\xECnh ch\u1EEF nh\u1EADt, ch\u1EE5p \u0111\u1EE7 \xE1nh s\xE1ng v\xE0 r\xF5 n\xE9t."),_react.default.createElement(_MButton.default,{onPress:function onPress(){takePhoto();},__self:this,__source:{fileName:_jsxFileName,lineNumber:569,columnNumber:13}},_react.default.createElement(_icons.TakePhotoSvg,{__self:this,__source:{fileName:_jsxFileName,lineNumber:574,columnNumber:15}})))):passPermission&&type==='nfc'&&shouldRenderCamera?_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_reactNativeCamera.RNCamera,{ref:myCamera,style:styles.camera,type:_reactNativeCamera.RNCamera.Constants.Type.back,captureAudio:false,__self:this,__source:{fileName:_jsxFileName,lineNumber:580,columnNumber:11}}),_react.default.createElement(_reactNative.View,{style:styles.overlay,__self:this,__source:{fileName:_jsxFileName,lineNumber:586,columnNumber:11}},_react.default.createElement(_reactNative.View,{style:styles.overlayTop,__self:this,__source:{fileName:_jsxFileName,lineNumber:587,columnNumber:13}}),_react.default.createElement(_reactNative.View,{style:styles.overlayCenter,__self:this,__source:{fileName:_jsxFileName,lineNumber:588,columnNumber:13}},_react.default.createElement(_reactNative.View,{style:styles.overlayLeft,__self:this,__source:{fileName:_jsxFileName,lineNumber:589,columnNumber:15}}),_react.default.createElement(_reactNative.View,{style:styles.overlayRect,__self:this,__source:{fileName:_jsxFileName,lineNumber:590,columnNumber:15}}),_react.default.createElement(_reactNative.View,{style:styles.overlayRight,__self:this,__source:{fileName:_jsxFileName,lineNumber:591,columnNumber:15}})),_react.default.createElement(_reactNative.View,{style:styles.overlayBottom,__self:this,__source:{fileName:_jsxFileName,lineNumber:593,columnNumber:13}})),_react.default.createElement(_reactNative.View,{style:styles.buttonContainer,__self:this,__source:{fileName:_jsxFileName,lineNumber:595,columnNumber:11}},_react.default.createElement(_MText.MText,{style:{color:'white',fontSize:14,textAlign:'center',padding:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:596,columnNumber:13}},"Vui l\xF2ng \u0111\u1EB7t chu\u1ED7i k\xED t\u1EF1 n\u1EB1m v\u1EEBa khung h\xECnh ch\u1EEF nh\u1EADt, ch\u1EE5p \u0111\u1EE7 \xE1nh s\xE1ng v\xE0 r\xF5 n\xE9t."),_react.default.createElement(_reactNative.TouchableOpacity,{onPress:function onPress(){scanNfc();},__self:this,__source:{fileName:_jsxFileName,lineNumber:607,columnNumber:13}},_react.default.createElement(_icons.TakePhotoSvg,{__self:this,__source:{fileName:_jsxFileName,lineNumber:612,columnNumber:15}})))):_react.default.createElement(_react.default.Fragment,null),_react.default.createElement(_reactNativeModal.default,{isVisible:showModal,style:$modal,backdropTransitionInTiming:0,nimationOutTiming:200,animationInTiming:200,animationIn:'slideInUp',animationOut:'fadeOutDown',useNativeDriverForBackdrop:true,useNativeDriver:true,__self:this,__source:{fileName:_jsxFileName,lineNumber:620,columnNumber:7}},_react.default.createElement(_reactNativeLinearGradient.default,{colors:['#FF8E4F','#EF592E'],style:$container,__self:this,__source:{fileName:_jsxFileName,lineNumber:631,columnNumber:9}},_react.default.createElement(_reactNative.View,{style:$paddingV,__self:this,__source:{fileName:_jsxFileName,lineNumber:632,columnNumber:11}},_react.default.createElement(_reactNative.TouchableOpacity,{onPress:function onPress(){setShowModal(false);setTimeout(function(){navigation.goBack();},100);},style:{width:24,height:24,position:'absolute',left:16,top:24,alignItems:'center',zIndex:10000},__self:this,__source:{fileName:_jsxFileName,lineNumber:633,columnNumber:13}},_react.default.createElement(_icons.CloseIcon,{__self:this,__source:{fileName:_jsxFileName,lineNumber:650,columnNumber:15}})),_react.default.createElement(_MText.MText,{style:$title,__self:this,__source:{fileName:_jsxFileName,lineNumber:652,columnNumber:13}},"NH\u1EACN DI\u1EC6N GI\u1EA4Y T\u1EDC T\xD9Y TH\xC2N"),_react.default.createElement(_MText.MText,{style:$description,__self:this,__source:{fileName:_jsxFileName,lineNumber:653,columnNumber:13}},"Ch\u1EE5p \u1EA3nh 2 m\u1EB7t ho\u1EB7c NFC CCCD/ CMND"),_react.default.createElement(_reactNative.Image,{source:require('../../assets/tts/vehicleStep.png'),style:$step,__self:this,__source:{fileName:_jsxFileName,lineNumber:657,columnNumber:13}}),_react.default.createElement(_reactNative.View,{style:$bg,__self:this,__source:{fileName:_jsxFileName,lineNumber:662,columnNumber:13}},_react.default.createElement(_reactNative.View,{style:{flexDirection:'column',alignItems:'center'},__self:this,__source:{fileName:_jsxFileName,lineNumber:663,columnNumber:15}},_react.default.createElement(_reactNative.Image,{source:require('../../assets/tts/Frame1000011946.png'),style:{width:'60%',height:70,resizeMode:'contain',marginVertical:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:669,columnNumber:17}})),_react.default.createElement(_reactNative.View,{style:{marginTop:10,paddingHorizontal:24},__self:this,__source:{fileName:_jsxFileName,lineNumber:679,columnNumber:15}},_react.default.createElement(_MText.MText,{style:[$title2,{textAlign:'left'}],__self:this,__source:{fileName:_jsxFileName,lineNumber:680,columnNumber:17}},"C\xE1ch 1: NFC (\xC1p d\u1EE5ng cho CCCD g\u1EAFn chip)"),_react.default.createElement(_reactNative.View,{style:$row,__self:this,__source:{fileName:_jsxFileName,lineNumber:683,columnNumber:17}},_react.default.createElement(_icons.TimaSmall,{__self:this,__source:{fileName:_jsxFileName,lineNumber:684,columnNumber:19}}),_react.default.createElement(_MText.MText,{style:$txt,__self:this,__source:{fileName:_jsxFileName,lineNumber:685,columnNumber:19}},"\u0110\u1EB7t ph\u1EA7n chip \u0111\u1ED3ng g\u1EA7n l\u1EA1i v\u1EDBi ph\u1EA7n ph\xEDa tr\xEAn c\u1EE7a",'\n',"m\u1EB7t l\u01B0ng \u0111i\u1EC7n tho\u1EA1i")),_react.default.createElement(_reactNative.View,{style:$row,__self:this,__source:{fileName:_jsxFileName,lineNumber:690,columnNumber:17}},_react.default.createElement(_icons.TimaSmall,{__self:this,__source:{fileName:_jsxFileName,lineNumber:691,columnNumber:19}}),_react.default.createElement(_MText.MText,{style:$txt,__self:this,__source:{fileName:_jsxFileName,lineNumber:692,columnNumber:19}},"Gi\u1EEF nguy\xEAn cho \u0111\u1EBFn khi \u0111\u1ECDc xong th\xF4ng tin th\u1EBB")),_react.default.createElement(_reactNative.Image,{source:require('../../assets/tts/Frame1000011953.png'),style:{width:'100%',height:70,resizeMode:'contain',marginTop:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:696,columnNumber:17}})),_react.default.createElement(_reactNative.View,{style:{marginTop:10,paddingHorizontal:24},__self:this,__source:{fileName:_jsxFileName,lineNumber:706,columnNumber:15}},_react.default.createElement(_MText.MText,{style:[$title2,{textAlign:'left'}],__self:this,__source:{fileName:_jsxFileName,lineNumber:707,columnNumber:17}},"C\xE1ch 2: Ch\u1EE5p 2 m\u1EB7t"),_react.default.createElement(_reactNative.View,{style:$row,__self:this,__source:{fileName:_jsxFileName,lineNumber:710,columnNumber:17}},_react.default.createElement(_icons.TimaSmall,{__self:this,__source:{fileName:_jsxFileName,lineNumber:711,columnNumber:19}}),_react.default.createElement(_MText.MText,{style:$txt,__self:this,__source:{fileName:_jsxFileName,lineNumber:712,columnNumber:19}},"N\xEAn \u0111\u1EB7t CCCD/ CMND l\xEAn m\u1EB7t ph\u1EB3ng \u0111\u1EC3 ch\u1EE5p")),_react.default.createElement(_reactNative.View,{style:$row,__self:this,__source:{fileName:_jsxFileName,lineNumber:716,columnNumber:17}},_react.default.createElement(_icons.TimaSmall,{__self:this,__source:{fileName:_jsxFileName,lineNumber:717,columnNumber:19}}),_react.default.createElement(_MText.MText,{style:$txt,__self:this,__source:{fileName:_jsxFileName,lineNumber:718,columnNumber:19}},"\u0110\u1EB7t CCCD/ CMND n\u1EB1m g\u1ECDn trong khung h\xECnh (Kh\xF4ng ",'\n'," qu\xE1 nh\u1ECF hay qu\xE1 to l\xE0m m\u1EA5t chi ti\u1EBFt)")),_react.default.createElement(_reactNative.View,{style:$row,__self:this,__source:{fileName:_jsxFileName,lineNumber:723,columnNumber:17}},_react.default.createElement(_icons.TimaSmall,{__self:this,__source:{fileName:_jsxFileName,lineNumber:724,columnNumber:19}}),_react.default.createElement(_MText.MText,{style:$txt,__self:this,__source:{fileName:_jsxFileName,lineNumber:725,columnNumber:19}},"Ch\u1ECDn n\u01A1i \xE1nh s\xE1ng t\u1ED1t, tr\xE1nh l\xF3a/ ch\xF3i h\xECnh ch\u1EE5p")),_react.default.createElement(_reactNative.Image,{source:require('../../assets/tts/Frame1000011947.png'),style:{width:'100%',height:80,resizeMode:'contain',marginTop:10},__self:this,__source:{fileName:_jsxFileName,lineNumber:729,columnNumber:17}})),_react.default.createElement(_reactNative.View,{style:{flexDirection:'row',alignItems:'center',margin:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:740,columnNumber:15}},_react.default.createElement(_reactNative.TouchableOpacity,{onPress:function onPress(){setType('passport');setShowModal(false);(0,_storage.save)(_storage.OCR_V1,true);},style:{flex:1,borderWidth:1,borderColor:'#EF592E',height:40,alignItems:'center',justifyContent:'center',borderRadius:40},__self:this,__source:{fileName:_jsxFileName,lineNumber:747,columnNumber:17}},_react.default.createElement(_MText.MText,{style:{color:'#EF592E',fontSize:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:764,columnNumber:19}},"Ch\u1EE5p 2 m\u1EB7t"))),_react.default.createElement(_reactNative.View,{style:{height:24},__self:this,__source:{fileName:_jsxFileName,lineNumber:806,columnNumber:15}}))))),_react.default.createElement(_Loading.default,{isLoading:isLoading,__self:this,__source:{fileName:_jsxFileName,lineNumber:812,columnNumber:7}}));});var $row={flexDirection:'row',alignItems:'center',marginTop:5};var $txt={fontSize:12,marginLeft:5};var $bg={backgroundColor:'white',borderTopRightRadius:26,borderTopLeftRadius:26};var $step={height:40,width:'100%',resizeMode:'contain',marginTop:10,marginBottom:10};var $paddingV={paddingTop:16};var $title={fontSize:16,color:'white',fontWeight:'bold',textAlign:'center'};var $title2={fontSize:16,color:'#333333',fontWeight:'bold',textAlign:'center'};var $description={fontSize:12,color:'white',textAlign:'center'};var $flex={flex:1};var $modal={justifyContent:'flex-end',margin:0};var $container={borderTopRightRadius:26,borderTopLeftRadius:26};var styles=_reactNative.StyleSheet.create({container:{flex:1},camera:{flex:1},buttonContainer:{flex:0,flexDirection:'column',justifyContent:'center',alignItems:'center',position:'absolute',bottom:40,left:0,right:0,zIndex:1000},captureButton:{width:56,height:56,borderRadius:35,backgroundColor:'white',justifyContent:'center',alignItems:'center'},innerCaptureButton:{width:60,height:60,borderRadius:30,backgroundColor:'red'},overlay:{position:'absolute',top:0,left:0,right:0,bottom:0,justifyContent:'center',alignItems:'center'},overlayTop:{flex:1,backgroundColor:'black',width:'100%'},overlayCenter:{flexDirection:'row'},overlayLeft:{flex:1,backgroundColor:'black'},overlayRect:{width:'90%',height:100,borderColor:'white',borderWidth:2,justifyContent:'center',alignItems:'center'},instructionText:{color:'white',textAlign:'center',paddingHorizontal:10,fontSize:14,position:'absolute',top:-50},overlayRight:{flex:1,backgroundColor:'black'},overlayBottom:{flex:1,backgroundColor:'black',width:'100%'},mrzContainer:{padding:10},mrzText:{fontSize:16}});
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.OCR=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _mobxReactLite=require("mobx-react-lite");var _reactNative=require("react-native");var _MText=require("../../components/MText");var _storage=require("../../utils/storage");var _reactNativePermissions=require("react-native-permissions");var _reactNativeVisionCamera=require("react-native-vision-camera");var _reactNativeModal=_interopRequireDefault(require("react-native-modal"));var _reactNativeLinearGradient=_interopRequireDefault(require("react-native-linear-gradient"));var _icons=require("../../assets/icons");var _MButton=_interopRequireDefault(require("../../components/MButton"));var _CommonStyles=require("../CommonStyles");var _native=require("@react-navigation/native");var _textRecognition=_interopRequireDefault(require("@react-native-ml-kit/text-recognition"));var _navigation=require("../../navigation");var _api=require("../../services/api");var _Loading=_interopRequireDefault(require("../../components/Loading"));var _svgs=require("../../assets/svgs");var _reactNativeImageCropPicker=_interopRequireDefault(require("react-native-image-crop-picker"));var _reactNativeImagePicker=require("react-native-image-picker");var _reactNativeSafeAreaContext=require("react-native-safe-area-context");var _jsxFileName="/Users/tima/Tima/react-native-timacare/src/screens/toan-trinh-so/OCR.tsx";function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t3 in e)"default"!==_t3&&{}.hasOwnProperty.call(e,_t3)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t3))&&(i.get||i.set)?o(f,_t3,i):f[_t3]=e[_t3]);return f;})(e,t);}var NFCReader=_reactNative.NativeModules.NFCReader;var OCR=exports.OCR=(0,_mobxReactLite.observer)(function OCR(props){var _props$route22,_props$route22$params;var insets=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)();var isFocused=(0,_native.useIsFocused)();var _useState=(0,_react.useState)(false),_useState2=(0,_slicedToArray2.default)(_useState,2),isLoading=_useState2[0],setIsLoading=_useState2[1];var navigation=(0,_native.useNavigation)();var _useState3=(0,_react.useState)(false),_useState4=(0,_slicedToArray2.default)(_useState3,2),showModal=_useState4[0],setShowModal=_useState4[1];var _useState5=(0,_react.useState)('passport'),_useState6=(0,_slicedToArray2.default)(_useState5,2),type=_useState6[0],setType=_useState6[1];var _useState7=(0,_react.useState)(false),_useState8=(0,_slicedToArray2.default)(_useState7,2),taking=_useState8[0],setTaking=_useState8[1];var _useState9=(0,_react.useState)(false),_useState0=(0,_slicedToArray2.default)(_useState9,2),passPermission=_useState0[0],setPassPermission=_useState0[1];var _useState1=(0,_react.useState)(false),_useState10=(0,_slicedToArray2.default)(_useState1,2),shouldRenderCamera=_useState10[0],setShouldRenderCamera=_useState10[1];var myCamera=(0,_react.useRef)(null);var device=(0,_reactNativeVisionCamera.useCameraDevice)('back');var format=(0,_reactNativeVisionCamera.useCameraFormat)(device,[{photoResolution:{width:1280,height:720}}]);var _requestPermissions=function requestPermissions(){(0,_reactNativePermissions.request)(_reactNative.Platform.OS==='ios'?_reactNativePermissions.PERMISSIONS.IOS.CAMERA:_reactNativePermissions.PERMISSIONS.ANDROID.CAMERA).then(function(result){switch(result){case _reactNativePermissions.RESULTS.UNAVAILABLE:console.log('This feature is not available (on this device / in this context)');_reactNative.Alert.alert('Thông báo','Máy ảnh trên thiết bị không tương thích.\nVui lòng kiểm tra lại thiết bị!',[{text:'Đồng ý'}]);break;case _reactNativePermissions.RESULTS.DENIED:console.log('The permission has not been requested / is denied but requestable');_reactNative.Alert.alert('Thông báo','Bạn đã từ chối quyền máy ảnh. Vui lòng cấp quyền máy ảnh để tiếp tục!',[{text:'Đồng ý',onPress:function onPress(){if(_reactNative.Platform.OS==='ios'){(0,_reactNativePermissions.openSettings)();}else{_requestPermissions();}}}]);break;case _reactNativePermissions.RESULTS.LIMITED:console.log('The permission is limited: some actions are possible');_reactNative.Alert.alert('Thông báo','Quyền máy ảnh bị hạn chế. Vui lòng kiểm tra lại để tiếp tục!',[{text:'Đồng ý',onPress:function onPress(){if(_reactNative.Platform.OS==='ios'){(0,_reactNativePermissions.openSettings)();}else{_requestPermissions();}}}]);break;case _reactNativePermissions.RESULTS.GRANTED:console.log('The permission is granted');setPassPermission(true);break;case _reactNativePermissions.RESULTS.BLOCKED:console.log('The permission is denied and not requestable anymore');_reactNative.Alert.alert('Thông báo','Bạn đã từ chối quyền máy ảnh. Vui lòng cấp quyền máy ảnh để tiếp tục!',[{text:'Đồng ý',onPress:function onPress(){if(_reactNative.Platform.OS==='ios'){(0,_reactNativePermissions.openSettings)();}else{(0,_reactNativePermissions.openSettings)();}}}]);break;}});};(0,_react.useEffect)(function(){var timeout;if(isFocused){timeout=setTimeout(function(){setShouldRenderCamera(true);},500);}else{setShouldRenderCamera(false);}return function(){return clearTimeout(timeout);};},[isFocused]);var loadIntro=function _callee(){var intro;return _regenerator.default.async(function(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=1;return _regenerator.default.awrap((0,_storage.load)(_storage.OCR_V1));case 1:intro=_context.sent;if(!intro){setShowModal(true);}case 2:case"end":return _context.stop();}},null,null,null,Promise);};(0,_react.useEffect)(function(){_requestPermissions();loadIntro();},[]);var saveDataNfc=function _callee2(body){var _props$route,_props$route$params,_props$route$params$l,response,_response$data,_response$data$meta,_response$data2,_response$data2$meta,_t;return _regenerator.default.async(function(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.prev=0;_context2.next=1;return _regenerator.default.awrap(_api.Api.getInstance().saveNfcInfo((0,_extends2.default)({},body,{loanBriefId:props==null?void 0:(_props$route=props.route)==null?void 0:(_props$route$params=_props$route.params)==null?void 0:(_props$route$params$l=_props$route$params.loan)==null?void 0:_props$route$params$l.id})));case 1:response=_context2.sent;if(response.kind==='ok'){if(((_response$data=response.data)==null?void 0:(_response$data$meta=_response$data.meta)==null?void 0:_response$data$meta.errorCode)===200){setTimeout(function(){var _props$route2,_props$route2$params;navigation.push(_navigation.ScreenNames.TTSSelfie,{loan:props==null?void 0:(_props$route2=props.route)==null?void 0:(_props$route2$params=_props$route2.params)==null?void 0:_props$route2$params.loan});},500);}else{_reactNative.Alert.alert('Thông báo',response==null?void 0:(_response$data2=response.data)==null?void 0:(_response$data2$meta=_response$data2.meta)==null?void 0:_response$data2$meta.errorMessage);}}else{_reactNative.Alert.alert('Thông báo','Có lỗi xảy ra. Vui lòng thử lại sau');}_context2.next=3;break;case 2:_context2.prev=2;_t=_context2["catch"](0);console.log(_t);case 3:case"end":return _context2.stop();}},null,null,[[0,2]],Promise);};var convertToDate=function convertToDate(input,end){var yearPrefix=input.substring(0,2);var year=end?'20'+yearPrefix:parseInt(yearPrefix)>20?'19'+yearPrefix:'20'+yearPrefix;var month=input.substring(2,4);var day=input.substring(4,6);return year+'-'+month+'-'+day;};var extractMRZInfo=function extractMRZInfo(text){var documentNumber='';var birthDate='';var expirationDate='';var regex1=/VNM(\d{9})/;var match1=text.match(regex1);if(match1){documentNumber=match1[1];}console.log('documentNumber',documentNumber);var regex=/(\d{6}).[MF](\d{6})/;var match=text.replace(/ /g,'').match(regex);if(match){console.log({documentNumber:documentNumber,birthDate:match[1],expirationDate:match[2]});birthDate=match[1],expirationDate=match[2];}else{return null;}if(documentNumber&&birthDate&&expirationDate){try{NFCReader.readNFCCard(documentNumber,convertToDate(birthDate,false),convertToDate(expirationDate,true),function(error,response){try{var convertData=JSON.parse(response);saveDataNfc(convertData);}catch(e){console.log(e);}});}catch(e){console.log(e);}}};var handleTextRecognition=function _callee3(imagePath){var result,_t2;return _regenerator.default.async(function(_context3){while(1)switch(_context3.prev=_context3.next){case 0:_context3.prev=0;_context3.next=1;return _regenerator.default.awrap(_textRecognition.default.recognize(imagePath));case 1:result=_context3.sent;extractMRZInfo(result.text);_context3.next=3;break;case 2:_context3.prev=2;_t2=_context3["catch"](0);console.log(_t2);case 3:case"end":return _context3.stop();}},null,null,[[0,2]],Promise);};var scanNfc=function _callee4(){var data;return _regenerator.default.async(function(_context4){while(1)switch(_context4.prev=_context4.next){case 0:if(!myCamera.current){_context4.next=2;break;}_context4.next=1;return _regenerator.default.awrap(myCamera.current.takePhoto({qualityPrioritization:'speed'}));case 1:data=_context4.sent;_context4.next=2;return _regenerator.default.awrap(handleTextRecognition('file://'+data.path));case 2:case"end":return _context4.stop();}},null,null,null,Promise);};var takePhoto=function _callee5(){var _props$route3,_props$route3$params,_props$route4,_props$route4$params,_props$route6,_props$route6$params,_props$route7,_props$route7$params;var data,uri,_props$route5,_props$route5$params,_props$route8,_props$route8$params,_props$route9,_props$route9$params;return _regenerator.default.async(function(_context5){while(1)switch(_context5.prev=_context5.next){case 0:if(!(myCamera.current==null||taking)){_context5.next=1;break;}return _context5.abrupt("return");case 1:setTaking(true);_context5.next=2;return _regenerator.default.awrap(myCamera.current.takePhoto({qualityPrioritization:'quality'}));case 2:data=_context5.sent;uri='file://'+data.path;setTaking(false);if(props!=null&&(_props$route3=props.route)!=null&&(_props$route3$params=_props$route3.params)!=null&&_props$route3$params.front&&!((_props$route4=props.route)!=null&&(_props$route4$params=_props$route4.params)!=null&&_props$route4$params.callback)){navigation.push(_navigation.ScreenNames.TTSNationalIDFront,{uri:uri,loan:props==null?void 0:(_props$route5=props.route)==null?void 0:(_props$route5$params=_props$route5.params)==null?void 0:_props$route5$params.loan});}else if(!(props!=null&&(_props$route6=props.route)!=null&&(_props$route6$params=_props$route6.params)!=null&&_props$route6$params.front)&&!((_props$route7=props.route)!=null&&(_props$route7$params=_props$route7.params)!=null&&_props$route7$params.callback)){navigation.push(_navigation.ScreenNames.TTSNationalIDBack,{uri:uri,loan:props==null?void 0:(_props$route8=props.route)==null?void 0:(_props$route8$params=_props$route8.params)==null?void 0:_props$route8$params.loan});}else{navigation.goBack();(_props$route9=props.route)==null?void 0:(_props$route9$params=_props$route9.params)==null?void 0:_props$route9$params.callback(uri);}case 3:case"end":return _context5.stop();}},null,null,null,Promise);};var pickImageFromGallery=function _callee6(){var result,_props$route0,_props$route0$params,_props$route1,_props$route1$params,_props$route11,_props$route11$params,_props$route12,_props$route12$params,_result$assets$,_props$route10,_props$route10$params,_result$assets$2,_props$route13,_props$route13$params,_props$route14,_props$route14$params,_result$assets$3;return _regenerator.default.async(function(_context6){while(1)switch(_context6.prev=_context6.next){case 0:if(!(_reactNative.Platform.OS==='android')){_context6.next=2;break;}_context6.next=1;return _regenerator.default.awrap((0,_reactNativeImagePicker.launchImageLibrary)({mediaType:'photo'}));case 1:result=_context6.sent;if(result.assets){if(props!=null&&(_props$route0=props.route)!=null&&(_props$route0$params=_props$route0.params)!=null&&_props$route0$params.front&&!((_props$route1=props.route)!=null&&(_props$route1$params=_props$route1.params)!=null&&_props$route1$params.callback)){navigation.push(_navigation.ScreenNames.TTSNationalIDFront,{uri:(_result$assets$=result.assets[0])==null?void 0:_result$assets$.uri,loan:props==null?void 0:(_props$route10=props.route)==null?void 0:(_props$route10$params=_props$route10.params)==null?void 0:_props$route10$params.loan});}else if(!(props!=null&&(_props$route11=props.route)!=null&&(_props$route11$params=_props$route11.params)!=null&&_props$route11$params.front)&&!((_props$route12=props.route)!=null&&(_props$route12$params=_props$route12.params)!=null&&_props$route12$params.callback)){navigation.push(_navigation.ScreenNames.TTSNationalIDBack,{uri:(_result$assets$2=result.assets[0])==null?void 0:_result$assets$2.uri,loan:props==null?void 0:(_props$route13=props.route)==null?void 0:(_props$route13$params=_props$route13.params)==null?void 0:_props$route13$params.loan});}else{navigation.goBack();(_props$route14=props.route)==null?void 0:(_props$route14$params=_props$route14.params)==null?void 0:_props$route14$params.callback((_result$assets$3=result.assets[0])==null?void 0:_result$assets$3.uri);}}_context6.next=3;break;case 2:_reactNativeImageCropPicker.default.openPicker({}).then(function(image){var _props$route15,_props$route15$params,_props$route16,_props$route16$params,_props$route18,_props$route18$params,_props$route19,_props$route19$params;if(props!=null&&(_props$route15=props.route)!=null&&(_props$route15$params=_props$route15.params)!=null&&_props$route15$params.front&&!((_props$route16=props.route)!=null&&(_props$route16$params=_props$route16.params)!=null&&_props$route16$params.callback)){var _props$route17,_props$route17$params;navigation.push(_navigation.ScreenNames.TTSNationalIDFront,{uri:_reactNative.Platform.OS==='android'?image==null?void 0:image.path:'file://'+(image==null?void 0:image.path),loan:props==null?void 0:(_props$route17=props.route)==null?void 0:(_props$route17$params=_props$route17.params)==null?void 0:_props$route17$params.loan});}else if(!(props!=null&&(_props$route18=props.route)!=null&&(_props$route18$params=_props$route18.params)!=null&&_props$route18$params.front)&&!((_props$route19=props.route)!=null&&(_props$route19$params=_props$route19.params)!=null&&_props$route19$params.callback)){var _props$route20,_props$route20$params;navigation.push(_navigation.ScreenNames.TTSNationalIDBack,{uri:_reactNative.Platform.OS==='android'?image==null?void 0:image.path:'file://'+(image==null?void 0:image.path),loan:props==null?void 0:(_props$route20=props.route)==null?void 0:(_props$route20$params=_props$route20.params)==null?void 0:_props$route20$params.loan});}else{var _props$route21,_props$route21$params;navigation.goBack();(_props$route21=props.route)==null?void 0:(_props$route21$params=_props$route21.params)==null?void 0:_props$route21$params.callback(_reactNative.Platform.OS==='android'?image==null?void 0:image.path:'file://'+(image==null?void 0:image.path));}});case 3:case"end":return _context6.stop();}},null,null,null,Promise);};return _react.default.createElement(_reactNative.View,{style:{flex:1,backgroundColor:'black'},pointerEvents:'box-none',__self:this,__source:{fileName:_jsxFileName,lineNumber:370,columnNumber:5}},_react.default.createElement(_reactNative.View,{style:{alignItems:'center',position:'absolute',top:insets.top+16,left:0,right:0,zIndex:100},__self:this,__source:{fileName:_jsxFileName,lineNumber:374,columnNumber:7}},_react.default.createElement(_reactNative.TouchableOpacity,{onPress:function onPress(){navigation.navigate(_navigation.ScreenNames.Main);},style:{position:'absolute',left:10,top:4,width:24,height:24,alignItems:'center',justifyContent:'center'},__self:this,__source:{fileName:_jsxFileName,lineNumber:384,columnNumber:9}},_react.default.createElement(_icons.IconBackWhite,{__self:this,__source:{fileName:_jsxFileName,lineNumber:398,columnNumber:11}})),_react.default.createElement(_reactNative.View,{style:{flexDirection:'row',padding:2,borderRadius:4,alignItems:'center',backgroundColor:'transparent'},__self:this,__source:{fileName:_jsxFileName,lineNumber:400,columnNumber:9}}),_react.default.createElement(_MText.MText,{style:{color:'white',fontSize:16,textAlign:'center',padding:16,marginTop:10},__self:this,__source:{fileName:_jsxFileName,lineNumber:485,columnNumber:9}},type==='passport'&&props!=null&&(_props$route22=props.route)!=null&&(_props$route22$params=_props$route22.params)!=null&&_props$route22$params.front?'Chụp CMND/ CCCD mặt trước':type==='passport'?'Chụp CMND/ CCCD mặt sau':'Dùng camera để quét chuỗi ký tự mặt sau thẻ CCCD gắn chíp ở phía dưới')),passPermission&&type==='passport'&&shouldRenderCamera?_react.default.createElement(_reactNative.View,{style:[_CommonStyles.commonStyles.alignCenter,_CommonStyles.commonStyles.fill,_CommonStyles.commonStyles.justifyCenter,{position:'absolute',width:_reactNative.Dimensions.get('window').width,height:_reactNative.Dimensions.get('window').height}],__self:this,__source:{fileName:_jsxFileName,lineNumber:503,columnNumber:9}},device?_react.default.createElement(_reactNativeVisionCamera.Camera,{ref:myCamera,style:{width:_reactNative.Dimensions.get('window').width,height:260,overflow:'hidden'},device:device,isActive:true,photo:true,format:format,__self:this,__source:{fileName:_jsxFileName,lineNumber:516,columnNumber:13}}):_react.default.createElement(_reactNative.ActivityIndicator,{__self:this,__source:{fileName:_jsxFileName,lineNumber:529,columnNumber:13}}),_react.default.createElement(_reactNative.TouchableOpacity,{onPress:function onPress(){pickImageFromGallery();},style:{flexDirection:'row',alignItems:'center',gap:8,marginTop:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:531,columnNumber:11}},_react.default.createElement(_svgs.IconUpload,{__self:this,__source:{fileName:_jsxFileName,lineNumber:542,columnNumber:13}}),_react.default.createElement(_MText.MText,{style:{color:'white',fontSize:12},__self:this,__source:{fileName:_jsxFileName,lineNumber:543,columnNumber:13}},"T\u1EA3i \u1EA3nh t\u1EEB th\u01B0 vi\u1EC7n")),_react.default.createElement(_reactNative.View,{style:[styles.buttonContainer,{bottom:insets.bottom}],__self:this,__source:{fileName:_jsxFileName,lineNumber:553,columnNumber:11}},_react.default.createElement(_MText.MText,{style:{color:'white',fontSize:14,textAlign:'center',padding:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:554,columnNumber:13}},"Vui l\xF2ng \u0111\u1EB7t gi\u1EA5y t\u1EDD n\u1EB1m v\u1EEBa khung h\xECnh ch\u1EEF nh\u1EADt, ch\u1EE5p \u0111\u1EE7 \xE1nh s\xE1ng v\xE0 r\xF5 n\xE9t."),_react.default.createElement(_MButton.default,{onPress:function onPress(){takePhoto();},__self:this,__source:{fileName:_jsxFileName,lineNumber:565,columnNumber:13}},_react.default.createElement(_icons.TakePhotoSvg,{__self:this,__source:{fileName:_jsxFileName,lineNumber:570,columnNumber:15}})))):passPermission&&type==='nfc'&&shouldRenderCamera?_react.default.createElement(_react.default.Fragment,null,device?_react.default.createElement(_reactNativeVisionCamera.Camera,{ref:myCamera,style:styles.camera,device:device,isActive:true,photo:true,format:format,__self:this,__source:{fileName:_jsxFileName,lineNumber:577,columnNumber:13}}):null,_react.default.createElement(_reactNative.View,{style:styles.overlay,__self:this,__source:{fileName:_jsxFileName,lineNumber:586,columnNumber:11}},_react.default.createElement(_reactNative.View,{style:styles.overlayTop,__self:this,__source:{fileName:_jsxFileName,lineNumber:587,columnNumber:13}}),_react.default.createElement(_reactNative.View,{style:styles.overlayCenter,__self:this,__source:{fileName:_jsxFileName,lineNumber:588,columnNumber:13}},_react.default.createElement(_reactNative.View,{style:styles.overlayLeft,__self:this,__source:{fileName:_jsxFileName,lineNumber:589,columnNumber:15}}),_react.default.createElement(_reactNative.View,{style:styles.overlayRect,__self:this,__source:{fileName:_jsxFileName,lineNumber:590,columnNumber:15}}),_react.default.createElement(_reactNative.View,{style:styles.overlayRight,__self:this,__source:{fileName:_jsxFileName,lineNumber:591,columnNumber:15}})),_react.default.createElement(_reactNative.View,{style:styles.overlayBottom,__self:this,__source:{fileName:_jsxFileName,lineNumber:593,columnNumber:13}})),_react.default.createElement(_reactNative.View,{style:styles.buttonContainer,__self:this,__source:{fileName:_jsxFileName,lineNumber:595,columnNumber:11}},_react.default.createElement(_MText.MText,{style:{color:'white',fontSize:14,textAlign:'center',padding:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:596,columnNumber:13}},"Vui l\xF2ng \u0111\u1EB7t chu\u1ED7i k\xED t\u1EF1 n\u1EB1m v\u1EEBa khung h\xECnh ch\u1EEF nh\u1EADt, ch\u1EE5p \u0111\u1EE7 \xE1nh s\xE1ng v\xE0 r\xF5 n\xE9t."),_react.default.createElement(_reactNative.TouchableOpacity,{onPress:function onPress(){scanNfc();},__self:this,__source:{fileName:_jsxFileName,lineNumber:607,columnNumber:13}},_react.default.createElement(_icons.TakePhotoSvg,{__self:this,__source:{fileName:_jsxFileName,lineNumber:612,columnNumber:15}})))):_react.default.createElement(_react.default.Fragment,null),_react.default.createElement(_reactNativeModal.default,{isVisible:showModal,style:$modal,backdropTransitionInTiming:0,nimationOutTiming:200,animationInTiming:200,animationIn:'slideInUp',animationOut:'fadeOutDown',useNativeDriverForBackdrop:true,useNativeDriver:true,__self:this,__source:{fileName:_jsxFileName,lineNumber:620,columnNumber:7}},_react.default.createElement(_reactNativeLinearGradient.default,{colors:['#FF8E4F','#EF592E'],style:$container,__self:this,__source:{fileName:_jsxFileName,lineNumber:631,columnNumber:9}},_react.default.createElement(_reactNative.View,{style:$paddingV,__self:this,__source:{fileName:_jsxFileName,lineNumber:632,columnNumber:11}},_react.default.createElement(_reactNative.TouchableOpacity,{onPress:function onPress(){setShowModal(false);setTimeout(function(){navigation.goBack();},100);},style:{width:24,height:24,position:'absolute',left:16,top:24,alignItems:'center',zIndex:10000},__self:this,__source:{fileName:_jsxFileName,lineNumber:633,columnNumber:13}},_react.default.createElement(_icons.CloseIcon,{__self:this,__source:{fileName:_jsxFileName,lineNumber:650,columnNumber:15}})),_react.default.createElement(_MText.MText,{style:$title,__self:this,__source:{fileName:_jsxFileName,lineNumber:652,columnNumber:13}},"NH\u1EACN DI\u1EC6N GI\u1EA4Y T\u1EDC T\xD9Y TH\xC2N"),_react.default.createElement(_MText.MText,{style:$description,__self:this,__source:{fileName:_jsxFileName,lineNumber:653,columnNumber:13}},"Ch\u1EE5p \u1EA3nh 2 m\u1EB7t ho\u1EB7c NFC CCCD/ CMND"),_react.default.createElement(_reactNative.Image,{source:require('../../assets/tts/vehicleStep.png'),style:$step,__self:this,__source:{fileName:_jsxFileName,lineNumber:657,columnNumber:13}}),_react.default.createElement(_reactNative.View,{style:$bg,__self:this,__source:{fileName:_jsxFileName,lineNumber:662,columnNumber:13}},_react.default.createElement(_reactNative.View,{style:{flexDirection:'column',alignItems:'center'},__self:this,__source:{fileName:_jsxFileName,lineNumber:663,columnNumber:15}},_react.default.createElement(_reactNative.Image,{source:require('../../assets/tts/Frame1000011946.png'),style:{width:'60%',height:70,resizeMode:'contain',marginVertical:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:669,columnNumber:17}})),_react.default.createElement(_reactNative.View,{style:{marginTop:10,paddingHorizontal:24},__self:this,__source:{fileName:_jsxFileName,lineNumber:679,columnNumber:15}},_react.default.createElement(_MText.MText,{style:[$title2,{textAlign:'left'}],__self:this,__source:{fileName:_jsxFileName,lineNumber:680,columnNumber:17}},"C\xE1ch 1: NFC (\xC1p d\u1EE5ng cho CCCD g\u1EAFn chip)"),_react.default.createElement(_reactNative.View,{style:$row,__self:this,__source:{fileName:_jsxFileName,lineNumber:683,columnNumber:17}},_react.default.createElement(_icons.TimaSmall,{__self:this,__source:{fileName:_jsxFileName,lineNumber:684,columnNumber:19}}),_react.default.createElement(_MText.MText,{style:$txt,__self:this,__source:{fileName:_jsxFileName,lineNumber:685,columnNumber:19}},"\u0110\u1EB7t ph\u1EA7n chip \u0111\u1ED3ng g\u1EA7n l\u1EA1i v\u1EDBi ph\u1EA7n ph\xEDa tr\xEAn c\u1EE7a",'\n',"m\u1EB7t l\u01B0ng \u0111i\u1EC7n tho\u1EA1i")),_react.default.createElement(_reactNative.View,{style:$row,__self:this,__source:{fileName:_jsxFileName,lineNumber:690,columnNumber:17}},_react.default.createElement(_icons.TimaSmall,{__self:this,__source:{fileName:_jsxFileName,lineNumber:691,columnNumber:19}}),_react.default.createElement(_MText.MText,{style:$txt,__self:this,__source:{fileName:_jsxFileName,lineNumber:692,columnNumber:19}},"Gi\u1EEF nguy\xEAn cho \u0111\u1EBFn khi \u0111\u1ECDc xong th\xF4ng tin th\u1EBB")),_react.default.createElement(_reactNative.Image,{source:require('../../assets/tts/Frame1000011953.png'),style:{width:'100%',height:70,resizeMode:'contain',marginTop:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:696,columnNumber:17}})),_react.default.createElement(_reactNative.View,{style:{marginTop:10,paddingHorizontal:24},__self:this,__source:{fileName:_jsxFileName,lineNumber:706,columnNumber:15}},_react.default.createElement(_MText.MText,{style:[$title2,{textAlign:'left'}],__self:this,__source:{fileName:_jsxFileName,lineNumber:707,columnNumber:17}},"C\xE1ch 2: Ch\u1EE5p 2 m\u1EB7t"),_react.default.createElement(_reactNative.View,{style:$row,__self:this,__source:{fileName:_jsxFileName,lineNumber:710,columnNumber:17}},_react.default.createElement(_icons.TimaSmall,{__self:this,__source:{fileName:_jsxFileName,lineNumber:711,columnNumber:19}}),_react.default.createElement(_MText.MText,{style:$txt,__self:this,__source:{fileName:_jsxFileName,lineNumber:712,columnNumber:19}},"N\xEAn \u0111\u1EB7t CCCD/ CMND l\xEAn m\u1EB7t ph\u1EB3ng \u0111\u1EC3 ch\u1EE5p")),_react.default.createElement(_reactNative.View,{style:$row,__self:this,__source:{fileName:_jsxFileName,lineNumber:716,columnNumber:17}},_react.default.createElement(_icons.TimaSmall,{__self:this,__source:{fileName:_jsxFileName,lineNumber:717,columnNumber:19}}),_react.default.createElement(_MText.MText,{style:$txt,__self:this,__source:{fileName:_jsxFileName,lineNumber:718,columnNumber:19}},"\u0110\u1EB7t CCCD/ CMND n\u1EB1m g\u1ECDn trong khung h\xECnh (Kh\xF4ng ",'\n'," qu\xE1 nh\u1ECF hay qu\xE1 to l\xE0m m\u1EA5t chi ti\u1EBFt)")),_react.default.createElement(_reactNative.View,{style:$row,__self:this,__source:{fileName:_jsxFileName,lineNumber:723,columnNumber:17}},_react.default.createElement(_icons.TimaSmall,{__self:this,__source:{fileName:_jsxFileName,lineNumber:724,columnNumber:19}}),_react.default.createElement(_MText.MText,{style:$txt,__self:this,__source:{fileName:_jsxFileName,lineNumber:725,columnNumber:19}},"Ch\u1ECDn n\u01A1i \xE1nh s\xE1ng t\u1ED1t, tr\xE1nh l\xF3a/ ch\xF3i h\xECnh ch\u1EE5p")),_react.default.createElement(_reactNative.Image,{source:require('../../assets/tts/Frame1000011947.png'),style:{width:'100%',height:80,resizeMode:'contain',marginTop:10},__self:this,__source:{fileName:_jsxFileName,lineNumber:729,columnNumber:17}})),_react.default.createElement(_reactNative.View,{style:{flexDirection:'row',alignItems:'center',margin:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:740,columnNumber:15}},_react.default.createElement(_reactNative.TouchableOpacity,{onPress:function onPress(){setType('passport');setShowModal(false);(0,_storage.save)(_storage.OCR_V1,true);},style:{flex:1,borderWidth:1,borderColor:'#EF592E',height:40,alignItems:'center',justifyContent:'center',borderRadius:40},__self:this,__source:{fileName:_jsxFileName,lineNumber:747,columnNumber:17}},_react.default.createElement(_MText.MText,{style:{color:'#EF592E',fontSize:16},__self:this,__source:{fileName:_jsxFileName,lineNumber:764,columnNumber:19}},"Ch\u1EE5p 2 m\u1EB7t"))),_react.default.createElement(_reactNative.View,{style:{height:24},__self:this,__source:{fileName:_jsxFileName,lineNumber:806,columnNumber:15}}))))),_react.default.createElement(_Loading.default,{isLoading:isLoading,__self:this,__source:{fileName:_jsxFileName,lineNumber:812,columnNumber:7}}));});var $row={flexDirection:'row',alignItems:'center',marginTop:5};var $txt={fontSize:12,marginLeft:5};var $bg={backgroundColor:'white',borderTopRightRadius:26,borderTopLeftRadius:26};var $step={height:40,width:'100%',resizeMode:'contain',marginTop:10,marginBottom:10};var $paddingV={paddingTop:16};var $title={fontSize:16,color:'white',fontWeight:'bold',textAlign:'center'};var $title2={fontSize:16,color:'#333333',fontWeight:'bold',textAlign:'center'};var $description={fontSize:12,color:'white',textAlign:'center'};var $flex={flex:1};var $modal={justifyContent:'flex-end',margin:0};var $container={borderTopRightRadius:26,borderTopLeftRadius:26};var styles=_reactNative.StyleSheet.create({container:{flex:1},camera:{flex:1},buttonContainer:{flex:0,flexDirection:'column',justifyContent:'center',alignItems:'center',position:'absolute',left:0,right:0,zIndex:1000},captureButton:{width:56,height:56,borderRadius:35,backgroundColor:'white',justifyContent:'center',alignItems:'center'},innerCaptureButton:{width:60,height:60,borderRadius:30,backgroundColor:'red'},overlay:{position:'absolute',top:0,left:0,right:0,bottom:0,justifyContent:'center',alignItems:'center'},overlayTop:{flex:1,backgroundColor:'black',width:'100%'},overlayCenter:{flexDirection:'row'},overlayLeft:{flex:1,backgroundColor:'black'},overlayRect:{width:'90%',height:100,borderColor:'white',borderWidth:2,justifyContent:'center',alignItems:'center'},instructionText:{color:'white',textAlign:'center',paddingHorizontal:10,fontSize:14,position:'absolute',top:-50},overlayRight:{flex:1,backgroundColor:'black'},overlayBottom:{flex:1,backgroundColor:'black',width:'100%'},mrzContainer:{padding:10},mrzText:{fontSize:16}});
2
2
  //# sourceMappingURL=OCR.js.map
@@ -24,7 +24,11 @@ import {
24
24
  RESULTS,
25
25
  openSettings,
26
26
  } from 'react-native-permissions';
27
- import { RNCamera } from 'react-native-camera';
27
+ import {
28
+ Camera as VisionCamera,
29
+ useCameraDevice,
30
+ useCameraFormat,
31
+ } from 'react-native-vision-camera';
28
32
  import Modal from 'react-native-modal';
29
33
  import LinearGradient from 'react-native-linear-gradient';
30
34
  import {
@@ -65,6 +69,10 @@ export const OCR = observer(function OCR(props: any) {
65
69
  const [passPermission, setPassPermission] = useState(false);
66
70
  const [shouldRenderCamera, setShouldRenderCamera] = useState(false);
67
71
  const myCamera = useRef(null);
72
+ const device = useCameraDevice('back');
73
+ const format = useCameraFormat(device, [
74
+ { photoResolution: { width: 1280, height: 720 } },
75
+ ]);
68
76
 
69
77
  const requestPermissions = () => {
70
78
  request(
@@ -176,15 +184,6 @@ export const OCR = observer(function OCR(props: any) {
176
184
  loadIntro();
177
185
  }, []);
178
186
 
179
- useEffect(() => {
180
- const unsubscribe = navigation.addListener('blur', () => {
181
- // khi màn hình mất focus (chuyển sang màn hình khác)
182
- myCamera.current?.pausePreview(); // hoặc stopRecording nếu đang quay
183
- });
184
-
185
- return unsubscribe;
186
- }, [navigation]);
187
-
188
187
  const saveDataNfc = async (body) => {
189
188
  try {
190
189
  const response = await Api.getInstance().saveNfcInfo({
@@ -285,39 +284,34 @@ export const OCR = observer(function OCR(props: any) {
285
284
 
286
285
  const scanNfc = async () => {
287
286
  if (myCamera.current) {
288
- const options = { quality: 0.8, base64: true };
289
- const data = await myCamera.current.takePictureAsync(options);
290
- await handleTextRecognition(data.uri);
287
+ const data = await myCamera.current.takePhoto({
288
+ qualityPrioritization: 'speed',
289
+ });
290
+ await handleTextRecognition('file://' + data.path);
291
291
  }
292
292
  };
293
293
 
294
294
  const takePhoto = async () => {
295
+ if (myCamera.current == null || taking) return;
295
296
  setTaking(true);
296
- const options = {
297
- // width: 720,
298
- base64: true,
299
- pauseAfterCapture: true,
300
- fixOrientation: false,
301
- forceUpOrientation: false,
302
- orientation: RNCamera.Constants.Orientation.portrait,
303
- quality: 0.9,
304
- pictureSize: '1280x720',
305
- };
306
- const data = await myCamera.current.takePictureAsync(options);
297
+ const data = await myCamera.current.takePhoto({
298
+ qualityPrioritization: 'quality',
299
+ });
300
+ const uri = 'file://' + data.path;
307
301
  setTaking(false);
308
302
  if (props?.route?.params?.front && !props.route?.params?.callback) {
309
303
  navigation.push(ScreenNames.TTSNationalIDFront, {
310
- uri: data?.uri,
304
+ uri,
311
305
  loan: props?.route?.params?.loan,
312
306
  });
313
307
  } else if (!props?.route?.params?.front && !props.route?.params?.callback) {
314
308
  navigation.push(ScreenNames.TTSNationalIDBack, {
315
- uri: data?.uri,
309
+ uri,
316
310
  loan: props?.route?.params?.loan,
317
311
  });
318
312
  } else {
319
313
  navigation.goBack();
320
- props.route?.params?.callback(data?.uri);
314
+ props.route?.params?.callback(uri);
321
315
  }
322
316
  };
323
317
 
@@ -518,20 +512,22 @@ export const OCR = observer(function OCR(props: any) {
518
512
  },
519
513
  ]}
520
514
  >
521
- <RNCamera
522
- ref={myCamera}
523
- defaultVideoQuality={RNCamera.Constants.VideoQuality['720p']}
524
- style={{
525
- width: Dimensions.get('window').width,
526
- height: 260,
527
- overflow: 'hidden',
528
- }}
529
- maxZoom={1}
530
- >
531
- {({ camera, status, recordAudioPermissionStatus }) => {
532
- if (status !== 'READY') return <ActivityIndicator />;
533
- }}
534
- </RNCamera>
515
+ {device ? (
516
+ <VisionCamera
517
+ ref={myCamera}
518
+ style={{
519
+ width: Dimensions.get('window').width,
520
+ height: 260,
521
+ overflow: 'hidden',
522
+ }}
523
+ device={device}
524
+ isActive={true}
525
+ photo={true}
526
+ format={format}
527
+ />
528
+ ) : (
529
+ <ActivityIndicator />
530
+ )}
535
531
  <TouchableOpacity
536
532
  onPress={() => {
537
533
  pickImageFromGallery();
@@ -554,7 +550,7 @@ export const OCR = observer(function OCR(props: any) {
554
550
  </MText>
555
551
  </TouchableOpacity>
556
552
 
557
- <View style={styles.buttonContainer}>
553
+ <View style={[styles.buttonContainer, { bottom: insets.bottom }]}>
558
554
  <MText
559
555
  style={{
560
556
  color: 'white',
@@ -577,12 +573,16 @@ export const OCR = observer(function OCR(props: any) {
577
573
  </View>
578
574
  ) : passPermission && type === 'nfc' && shouldRenderCamera ? (
579
575
  <>
580
- <RNCamera
581
- ref={myCamera}
582
- style={styles.camera}
583
- type={RNCamera.Constants.Type.back}
584
- captureAudio={false}
585
- ></RNCamera>
576
+ {device ? (
577
+ <VisionCamera
578
+ ref={myCamera}
579
+ style={styles.camera}
580
+ device={device}
581
+ isActive={true}
582
+ photo={true}
583
+ format={format}
584
+ />
585
+ ) : null}
586
586
  <View style={styles.overlay}>
587
587
  <View style={styles.overlayTop} />
588
588
  <View style={styles.overlayCenter}>
@@ -887,7 +887,6 @@ const styles = StyleSheet.create({
887
887
  justifyContent: 'center',
888
888
  alignItems: 'center',
889
889
  position: 'absolute',
890
- bottom: 40,
891
890
  left: 0,
892
891
  right: 0,
893
892
  zIndex: 1000,