react-native-timacare 3.3.15 → 3.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/screens/camera/CCCDCameraScreen.js +1 -1
- package/lib/commonjs/screens/camera/CCCDCameraScreen.js.flow +162 -235
- package/lib/commonjs/screens/camera/CCCDCameraScreen.js.map +1 -1
- package/lib/commonjs/screens/home/DigitalTopupItem.js +1 -1
- package/lib/commonjs/screens/home/DigitalTopupItem.js.flow +595 -425
- package/lib/commonjs/screens/home/DigitalTopupItem.js.map +1 -1
- package/lib/commonjs/screens/home/index.js +1 -1
- package/lib/commonjs/screens/home/index.js.flow +5 -1
- package/lib/commonjs/screens/home/index.js.map +1 -1
- package/lib/commonjs/screens/toan-trinh-so/OCR.js +1 -1
- package/lib/commonjs/screens/toan-trinh-so/OCR.js.flow +1 -1
- package/lib/commonjs/services/api/api.js +1 -1
- package/lib/commonjs/services/api/api.js.flow +16 -0
- package/lib/commonjs/services/api/api.js.map +1 -1
- package/lib/module/screens/camera/CCCDCameraScreen.js +1 -1
- package/lib/module/screens/camera/CCCDCameraScreen.js.map +1 -1
- package/lib/module/screens/home/DigitalTopupItem.js +1 -1
- package/lib/module/screens/home/DigitalTopupItem.js.map +1 -1
- package/lib/module/screens/home/index.js +1 -1
- package/lib/module/screens/home/index.js.map +1 -1
- package/lib/module/screens/toan-trinh-so/OCR.js +1 -1
- package/lib/module/services/api/api.js +1 -1
- package/lib/module/services/api/api.js.map +1 -1
- package/lib/typescript/screens/camera/CCCDCameraScreen.d.ts.map +1 -1
- package/lib/typescript/screens/home/DigitalTopupItem.d.ts +2 -1
- package/lib/typescript/screens/home/DigitalTopupItem.d.ts.map +1 -1
- package/lib/typescript/screens/home/index.d.ts.map +1 -1
- package/lib/typescript/services/api/api.d.ts +16 -0
- package/lib/typescript/services/api/api.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/screens/camera/CCCDCameraScreen.tsx +162 -235
- package/src/screens/home/DigitalTopupItem.tsx +595 -425
- package/src/screens/home/index.tsx +5 -1
- package/src/screens/toan-trinh-so/OCR.tsx +1 -1
- package/src/services/api/api.ts +16 -0
|
@@ -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/Documents/Tima/tima-care-v2-sdk/src/screens/toan-trinh-so/OCR.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var NFCReader=_reactNative.NativeModules.NFCReader;var OCR=exports.OCR=(0,_mobxReactLite.observer)(function OCR(props){var _props$route24,_props$route24$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),_useState10=(0,_slicedToArray2.default)(_useState9,2),passPermission=_useState10[0],setPassPermission=_useState10[1];var _useState11=(0,_react.useState)(false),_useState12=(0,_slicedToArray2.default)(_useState11,2),shouldRenderCamera=_useState12[0],setShouldRenderCamera=_useState12[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 _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return _regenerator.default.awrap((0,_storage.load)(_storage.OCR_V1));case 2:intro=_context.sent;if(!intro){setShowModal(true);}case 4: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;return _regenerator.default.async(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.prev=0;_context2.next=3;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 3: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=10;break;case 7:_context2.prev=7;_context2.t0=_context2["catch"](0);console.log(_context2.t0);case 10:case"end":return _context2.stop();}},null,null,[[0,7]],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;return _regenerator.default.async(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:_context3.prev=0;_context3.next=3;return _regenerator.default.awrap(_textRecognition.default.recognize(imagePath));case 3:result=_context3.sent;extractMRZInfo(result.text);_context3.next=10;break;case 7:_context3.prev=7;_context3.t0=_context3["catch"](0);console.log(_context3.t0);case 10:case"end":return _context3.stop();}},null,null,[[0,7]],Promise);};var scanNfc=function _callee4(){var options,data;return _regenerator.default.async(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:if(!myCamera.current){_context4.next=7;break;}options={quality:0.8,base64:true};_context4.next=4;return _regenerator.default.awrap(myCamera.current.takePictureAsync(options));case 4:data=_context4.sent;_context4.next=7;return _regenerator.default.awrap(handleTextRecognition(data.uri));case 7: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 _callee5$(_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.8,pictureSize:'1280x720'};_context5.next=4;return _regenerator.default.awrap(myCamera.current.takePictureAsync(options));case 4: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 7:case"end":return _context5.stop();}},null,null,null,Promise);};var pickImageFromGallery=function _callee6(){var result,_props$route10,_props$route10$params,_props$route11,_props$route11$params,_props$route13,_props$route13$params,_props$route14,_props$route14$params,_result$assets$,_props$route12,_props$route12$params,_result$assets$2,_props$route15,_props$route15$params,_props$route16,_props$route16$params,_result$assets$3;return _regenerator.default.async(function _callee6$(_context6){while(1)switch(_context6.prev=_context6.next){case 0:if(!(_reactNative.Platform.OS==='android')){_context6.next=7;break;}_context6.next=3;return _regenerator.default.awrap((0,_reactNativeImagePicker.launchImageLibrary)({mediaType:'photo'}));case 3:result=_context6.sent;if(result.assets){if(props!=null&&(_props$route10=props.route)!=null&&(_props$route10$params=_props$route10.params)!=null&&_props$route10$params.front&&!((_props$route11=props.route)!=null&&(_props$route11$params=_props$route11.params)!=null&&_props$route11$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$route12=props.route)==null?void 0:(_props$route12$params=_props$route12.params)==null?void 0:_props$route12$params.loan});}else if(!(props!=null&&(_props$route13=props.route)!=null&&(_props$route13$params=_props$route13.params)!=null&&_props$route13$params.front)&&!((_props$route14=props.route)!=null&&(_props$route14$params=_props$route14.params)!=null&&_props$route14$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$route15=props.route)==null?void 0:(_props$route15$params=_props$route15.params)==null?void 0:_props$route15$params.loan});}else{navigation.goBack();(_props$route16=props.route)==null?void 0:(_props$route16$params=_props$route16.params)==null?void 0:_props$route16$params.callback((_result$assets$3=result.assets[0])==null?void 0:_result$assets$3.uri);}}_context6.next=8;break;case 7:_reactNativeImageCropPicker.default.openPicker({}).then(function(image){var _props$route17,_props$route17$params,_props$route18,_props$route18$params,_props$route20,_props$route20$params,_props$route21,_props$route21$params;if(props!=null&&(_props$route17=props.route)!=null&&(_props$route17$params=_props$route17.params)!=null&&_props$route17$params.front&&!((_props$route18=props.route)!=null&&(_props$route18$params=_props$route18.params)!=null&&_props$route18$params.callback)){var _props$route19,_props$route19$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$route19=props.route)==null?void 0:(_props$route19$params=_props$route19.params)==null?void 0:_props$route19$params.loan});}else if(!(props!=null&&(_props$route20=props.route)!=null&&(_props$route20$params=_props$route20.params)!=null&&_props$route20$params.front)&&!((_props$route21=props.route)!=null&&(_props$route21$params=_props$route21.params)!=null&&_props$route21$params.callback)){var _props$route22,_props$route22$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$route22=props.route)==null?void 0:(_props$route22$params=_props$route22.params)==null?void 0:_props$route22$params.loan});}else{var _props$route23,_props$route23$params;navigation.goBack();(_props$route23=props.route)==null?void 0:(_props$route23$params=_props$route23.params)==null?void 0:_props$route23$params.callback(_reactNative.Platform.OS==='android'?image==null?void 0:image.path:'file://'+(image==null?void 0:image.path));}});case 8: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$route24=props.route)!=null&&(_props$route24$params=_props$route24.params)!=null&&_props$route24$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 _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/Documents/Tima/tima-care-v2-sdk/src/screens/toan-trinh-so/OCR.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var NFCReader=_reactNative.NativeModules.NFCReader;var OCR=exports.OCR=(0,_mobxReactLite.observer)(function OCR(props){var _props$route24,_props$route24$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),_useState10=(0,_slicedToArray2.default)(_useState9,2),passPermission=_useState10[0],setPassPermission=_useState10[1];var _useState11=(0,_react.useState)(false),_useState12=(0,_slicedToArray2.default)(_useState11,2),shouldRenderCamera=_useState12[0],setShouldRenderCamera=_useState12[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 _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return _regenerator.default.awrap((0,_storage.load)(_storage.OCR_V1));case 2:intro=_context.sent;if(!intro){setShowModal(true);}case 4: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;return _regenerator.default.async(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.prev=0;_context2.next=3;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 3: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=10;break;case 7:_context2.prev=7;_context2.t0=_context2["catch"](0);console.log(_context2.t0);case 10:case"end":return _context2.stop();}},null,null,[[0,7]],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;return _regenerator.default.async(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:_context3.prev=0;_context3.next=3;return _regenerator.default.awrap(_textRecognition.default.recognize(imagePath));case 3:result=_context3.sent;extractMRZInfo(result.text);_context3.next=10;break;case 7:_context3.prev=7;_context3.t0=_context3["catch"](0);console.log(_context3.t0);case 10:case"end":return _context3.stop();}},null,null,[[0,7]],Promise);};var scanNfc=function _callee4(){var options,data;return _regenerator.default.async(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:if(!myCamera.current){_context4.next=7;break;}options={quality:0.8,base64:true};_context4.next=4;return _regenerator.default.awrap(myCamera.current.takePictureAsync(options));case 4:data=_context4.sent;_context4.next=7;return _regenerator.default.awrap(handleTextRecognition(data.uri));case 7: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 _callee5$(_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=4;return _regenerator.default.awrap(myCamera.current.takePictureAsync(options));case 4: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 7:case"end":return _context5.stop();}},null,null,null,Promise);};var pickImageFromGallery=function _callee6(){var result,_props$route10,_props$route10$params,_props$route11,_props$route11$params,_props$route13,_props$route13$params,_props$route14,_props$route14$params,_result$assets$,_props$route12,_props$route12$params,_result$assets$2,_props$route15,_props$route15$params,_props$route16,_props$route16$params,_result$assets$3;return _regenerator.default.async(function _callee6$(_context6){while(1)switch(_context6.prev=_context6.next){case 0:if(!(_reactNative.Platform.OS==='android')){_context6.next=7;break;}_context6.next=3;return _regenerator.default.awrap((0,_reactNativeImagePicker.launchImageLibrary)({mediaType:'photo'}));case 3:result=_context6.sent;if(result.assets){if(props!=null&&(_props$route10=props.route)!=null&&(_props$route10$params=_props$route10.params)!=null&&_props$route10$params.front&&!((_props$route11=props.route)!=null&&(_props$route11$params=_props$route11.params)!=null&&_props$route11$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$route12=props.route)==null?void 0:(_props$route12$params=_props$route12.params)==null?void 0:_props$route12$params.loan});}else if(!(props!=null&&(_props$route13=props.route)!=null&&(_props$route13$params=_props$route13.params)!=null&&_props$route13$params.front)&&!((_props$route14=props.route)!=null&&(_props$route14$params=_props$route14.params)!=null&&_props$route14$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$route15=props.route)==null?void 0:(_props$route15$params=_props$route15.params)==null?void 0:_props$route15$params.loan});}else{navigation.goBack();(_props$route16=props.route)==null?void 0:(_props$route16$params=_props$route16.params)==null?void 0:_props$route16$params.callback((_result$assets$3=result.assets[0])==null?void 0:_result$assets$3.uri);}}_context6.next=8;break;case 7:_reactNativeImageCropPicker.default.openPicker({}).then(function(image){var _props$route17,_props$route17$params,_props$route18,_props$route18$params,_props$route20,_props$route20$params,_props$route21,_props$route21$params;if(props!=null&&(_props$route17=props.route)!=null&&(_props$route17$params=_props$route17.params)!=null&&_props$route17$params.front&&!((_props$route18=props.route)!=null&&(_props$route18$params=_props$route18.params)!=null&&_props$route18$params.callback)){var _props$route19,_props$route19$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$route19=props.route)==null?void 0:(_props$route19$params=_props$route19.params)==null?void 0:_props$route19$params.loan});}else if(!(props!=null&&(_props$route20=props.route)!=null&&(_props$route20$params=_props$route20.params)!=null&&_props$route20$params.front)&&!((_props$route21=props.route)!=null&&(_props$route21$params=_props$route21.params)!=null&&_props$route21$params.callback)){var _props$route22,_props$route22$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$route22=props.route)==null?void 0:(_props$route22$params=_props$route22.params)==null?void 0:_props$route22$params.loan});}else{var _props$route23,_props$route23$params;navigation.goBack();(_props$route23=props.route)==null?void 0:(_props$route23$params=_props$route23.params)==null?void 0:_props$route23$params.callback(_reactNative.Platform.OS==='android'?image==null?void 0:image.path:'file://'+(image==null?void 0:image.path));}});case 8: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$route24=props.route)!=null&&(_props$route24$params=_props$route24.params)!=null&&_props$route24$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}});
|
|
2
2
|
//# sourceMappingURL=OCR.js.map
|
|
@@ -300,7 +300,7 @@ export const OCR = observer(function OCR(props: any) {
|
|
|
300
300
|
fixOrientation: false,
|
|
301
301
|
forceUpOrientation: false,
|
|
302
302
|
orientation: RNCamera.Constants.Orientation.portrait,
|
|
303
|
-
quality: 0.
|
|
303
|
+
quality: 0.9,
|
|
304
304
|
pictureSize: '1280x720',
|
|
305
305
|
};
|
|
306
306
|
const data = await myCamera.current.takePictureAsync(options);
|