@bigbinary/neeto-commons-rn 1.6.4 → 1.6.5

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.
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.rootUrlCreator=exports.configureAxiosHeaders=exports.configureAxios=exports.cleanupAxiosInterceptors=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _reactNative=require("react-native");var _neetouiRn=require("@bigbinary/neetoui-rn");var _reactNative2=_interopRequireDefault(require("@bugsnag/react-native"));var _axios=_interopRequireDefault(require("axios"));var _reactNativeConfig=_interopRequireDefault(require("react-native-config"));var _reactNativeDeviceInfo=_interopRequireDefault(require("react-native-device-info"));var _constants=require("../../constants");var _keychain=require("../../helpers/keychain");var _localization=require("../../localization");var _navigationService=require("../../navigation/navigationService");var _screenNames=require("../../navigation/screenNames");var _auth=require("../../slices/auth");var _asyncStore=require("../../helpers/asyncStore");var _store=require("../../store");var _caseConversion=require("./caseConversion");var _networkErrorHandler=require("./networkErrorHandler");var _paramsSerializer=_interopRequireDefault(require("./paramsSerializer"));var filterSensitiveData=function filterSensitiveData(data){if(!data)return null;var sensitiveKeys=["x-auth-token","x-auth-email","password","password_confirmation","current_password","token","access_token","refresh_token"];var filteredData=Object.assign({},data);var _filterNestedData=function filterNestedData(obj){Object.keys(obj).forEach(function(key){if(sensitiveKeys.includes(key)){delete obj[key];}else if(obj[key]&&typeof obj[key]==="object"){_filterNestedData(obj[key]);}});};_filterNestedData(filteredData);return filteredData;};_axios.default.defaults.headers.common={accept:"application/json"};var rootUrlCreator=exports.rootUrlCreator=function rootUrlCreator(_ref){var subdomain=_ref.subdomain;return"http"+(_reactNativeConfig.default.IS_DEV?"":"s")+"://"+subdomain+_reactNativeConfig.default.URL_SUFFIX;};var getUnauthorizedErrorMessage=function getUnauthorizedErrorMessage(error){var _error$config,_error$config$url,_error$response$data,_error$response$data2,_error$response$data3;if((_error$config=error.config)!=null&&(_error$config$url=_error$config.url)!=null&&_error$config$url.includes("/api/mobile/v1/generate_otp")){return _localization.strings.en.errors.axios.spamLimit;}return((_error$response$data=error.response.data)==null?void 0:_error$response$data.error)||((_error$response$data2=error.response.data)==null?void 0:(_error$response$data3=_error$response$data2.errors)==null?void 0:_error$response$data3.join(", "))||_localization.strings.en.errors.axios.unauthorized;};var handleUnauthorizedAccess=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(errorMessage){_neetouiRn.Toast.show({type:"error",text2:_store.Store.getState().auth.name?_localization.strings.en.errors.axios.sessionExpired:errorMessage});(0,_asyncStore.removeItem)(_constants.STORAGE_KEYS.DEVICE_TOKEN);yield(0,_keychain.removeSecureValue)("userAuth");_store.Store.dispatch((0,_auth.logoutUserAction)());(0,_navigationService.reset)({name:_screenNames.SCREEN_NAMES.Login});});return function handleUnauthorizedAccess(_x){return _ref2.apply(this,arguments);};}();var getErrorMessage=function getErrorMessage(data,error){if(typeof(data==null?void 0:data.error)==="object"){var _Object$values;return((_Object$values=Object.values(data.error))==null?void 0:_Object$values[0])||_localization.strings.en.errors.axios.generic;}return(data==null?void 0:data.error)||error.message||_localization.strings.en.errors.axios.generic;};var getUserAuthData=function(){var _ref3=(0,_asyncToGenerator2.default)(function*(){var authValue=yield(0,_keychain.getSecureValue)("userAuth");return authValue?JSON.parse(authValue):null;});return function getUserAuthData(){return _ref3.apply(this,arguments);};}();var handleSuccessResponse=function handleSuccessResponse(response){if(response.data){var _response$config;response.data=(0,_caseConversion.convertResponseKeys)(response.data,(_response$config=response.config)==null?void 0:_response$config.caseConversionOptions);}return response;};var handleErrorRequest=function handleErrorRequest(error){return console.error(error);};var handleErrorResponse=function(){var _ref4=(0,_asyncToGenerator2.default)(function*(error){var response=error.response;var status=response==null?void 0:response.status;var data=response==null?void 0:response.data;if((0,_networkErrorHandler.handleNetworkError)(error)){return Promise.reject(error);}if(status===401){var errorMessage=getUnauthorizedErrorMessage(error);yield handleUnauthorizedAccess(errorMessage);}else if(data!=null&&data.errors){data.errors.forEach(function(errorMessage){_neetouiRn.Toast.show({type:"error",text2:errorMessage});});}else{var _errorMessage=getErrorMessage(data,error);_neetouiRn.Toast.show({type:"error",text2:_errorMessage});}return Promise.reject(error);});return function handleErrorResponse(_x2){return _ref4.apply(this,arguments);};}();var responseInterceptorId=null;var requestInterceptorId=null;var registerResponseIntercept=function registerResponseIntercept(){if(responseInterceptorId!==null){_axios.default.interceptors.response.eject(responseInterceptorId);}responseInterceptorId=_axios.default.interceptors.response.use(function(response){return handleSuccessResponse(response);},function(){var _ref5=(0,_asyncToGenerator2.default)(function*(error){var config=error.config,response=error.response,message=error.message,name=error.name,code=error.code;var status=response==null?void 0:response.status;if(!__DEV__&&status!==401&&!(0,_networkErrorHandler.handleNetworkError)(error,false)){try{_reactNative2.default.notify(new Error("Axios Error: "+message),function(report){var _config$method,_config$method2;report.addMetadata("axios_error_details",{message:message,name:name,code:code,requestUrl:config==null?void 0:config.url,requestMethod:config==null?void 0:(_config$method=config.method)==null?void 0:_config$method.toUpperCase(),baseURL:config==null?void 0:config.baseURL,requestHeaders:filterSensitiveData(config==null?void 0:config.headers),requestParams:filterSensitiveData(config==null?void 0:config.params),responseStatus:status,responseStatusText:response==null?void 0:response.statusText,responseData:filterSensitiveData(response==null?void 0:response.data)});report.context="Axios Request Failed: "+(config==null?void 0:(_config$method2=config.method)==null?void 0:_config$method2.toUpperCase())+" "+(config==null?void 0:config.url);report.groupingHash="axios-"+(config==null?void 0:config.method)+"-"+(config==null?void 0:config.url);});}catch(bugsnagError){console.error("Error reporting Axios error to Bugsnag:",bugsnagError);}}return handleErrorResponse(error);});return function(_x3){return _ref5.apply(this,arguments);};}());};var registerRequestIntercept=function registerRequestIntercept(){if(requestInterceptorId!==null){_axios.default.interceptors.request.eject(requestInterceptorId);}requestInterceptorId=_axios.default.interceptors.request.use(function(){var _ref6=(0,_asyncToGenerator2.default)(function*(request){var _store$auth;var config=yield configureAxiosHeaders(request);var store=_store.Store.getState();var subdomain=(store==null?void 0:(_store$auth=store.auth)==null?void 0:_store$auth.subdomain)||"app";config.baseURL=rootUrlCreator({subdomain:subdomain});if(config.data){config.data=(0,_caseConversion.convertRequestKeys)(config.data,config.caseConversionOptions);}if(config.params){config.params=(0,_caseConversion.convertRequestKeys)(config.params,config.caseConversionOptions);}return config;});return function(_x4){return _ref6.apply(this,arguments);};}(),handleErrorRequest);};var cleanupAxiosInterceptors=exports.cleanupAxiosInterceptors=function cleanupAxiosInterceptors(){if(responseInterceptorId!==null){_axios.default.interceptors.response.eject(responseInterceptorId);responseInterceptorId=null;}if(requestInterceptorId!==null){_axios.default.interceptors.request.eject(requestInterceptorId);requestInterceptorId=null;}};var configureAxiosHeaders=exports.configureAxiosHeaders=function(){var _ref7=(0,_asyncToGenerator2.default)(function*(request){var userAuthData=yield getUserAuthData();if(userAuthData){var authToken=userAuthData.authToken,email=userAuthData.email;var headers={"x-auth-token":authToken,"x-auth-email":email,"x-client-version":_reactNativeDeviceInfo.default.getVersion(),"x-client-name":_reactNative.Platform.OS+" "+_reactNativeConfig.default.APP_DISPLAY_NAME};Object.assign(request.headers,headers);}return request;});return function configureAxiosHeaders(_x5){return _ref7.apply(this,arguments);};}();var configureAxios=exports.configureAxios=function configureAxios(){registerResponseIntercept();registerRequestIntercept();(0,_paramsSerializer.default)();};
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.rootUrlCreator=exports.configureAxiosHeaders=exports.configureAxios=exports.cleanupAxiosInterceptors=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _reactNative=require("react-native");var _neetouiRn=require("@bigbinary/neetoui-rn");var _reactNative2=_interopRequireDefault(require("@bugsnag/react-native"));var _axios=_interopRequireDefault(require("axios"));var _reactNativeConfig=_interopRequireDefault(require("react-native-config"));var _reactNativeDeviceInfo=_interopRequireDefault(require("react-native-device-info"));var _constants=require("../../constants");var _keychain=require("../../helpers/keychain");var _localization=require("../../localization");var _navigationService=require("../../navigation/navigationService");var _screenNames=require("../../navigation/screenNames");var _auth=require("../../slices/auth");var _asyncStore=require("../../helpers/asyncStore");var _store=require("../../store");var _caseConversion=require("./caseConversion");var _networkErrorHandler=require("./networkErrorHandler");var _paramsSerializer=_interopRequireDefault(require("./paramsSerializer"));var filterSensitiveData=function filterSensitiveData(data){if(!data)return null;var sensitiveKeys=["x-auth-token","x-auth-email","password","password_confirmation","current_password","token","access_token","refresh_token"];var filteredData=Object.assign({},data);var _filterNestedData=function filterNestedData(obj){Object.keys(obj).forEach(function(key){if(sensitiveKeys.includes(key)){delete obj[key];}else if(obj[key]&&typeof obj[key]==="object"){_filterNestedData(obj[key]);}});};_filterNestedData(filteredData);return filteredData;};var isAuthEndpoint=function isAuthEndpoint(url){return url.includes("/api/mobile/v1/verify_otp")||url.includes("/api/mobile/v1/generate_otp")||url.includes("/api/mobile/v1/google_login")||url.includes("/api/mobile/v1/apple_login");};_axios.default.defaults.headers.common={accept:"application/json"};var rootUrlCreator=exports.rootUrlCreator=function rootUrlCreator(_ref){var subdomain=_ref.subdomain;return"http"+(_reactNativeConfig.default.IS_DEV?"":"s")+"://"+subdomain+_reactNativeConfig.default.URL_SUFFIX;};var getUnauthorizedErrorMessage=function getUnauthorizedErrorMessage(error){var _error$config,_error$config$url,_error$response$data,_error$response$data2,_error$response$data3;if((_error$config=error.config)!=null&&(_error$config$url=_error$config.url)!=null&&_error$config$url.includes("/api/mobile/v1/generate_otp")){return _localization.strings.en.errors.axios.spamLimit;}return((_error$response$data=error.response.data)==null?void 0:_error$response$data.error)||((_error$response$data2=error.response.data)==null?void 0:(_error$response$data3=_error$response$data2.errors)==null?void 0:_error$response$data3.join(", "))||_localization.strings.en.errors.axios.unauthorized;};var handleUnauthorizedAccess=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(errorMessage){_neetouiRn.Toast.show({type:"error",text2:_store.Store.getState().auth.name?_localization.strings.en.errors.axios.sessionExpired:errorMessage});(0,_asyncStore.removeItem)(_constants.STORAGE_KEYS.DEVICE_TOKEN);yield(0,_keychain.removeSecureValue)("userAuth");_store.Store.dispatch((0,_auth.logoutUserAction)());(0,_navigationService.reset)({name:_screenNames.SCREEN_NAMES.Login});});return function handleUnauthorizedAccess(_x){return _ref2.apply(this,arguments);};}();var getErrorMessage=function getErrorMessage(data,error){if(typeof(data==null?void 0:data.error)==="object"){var _Object$values;return((_Object$values=Object.values(data.error))==null?void 0:_Object$values[0])||_localization.strings.en.errors.axios.generic;}return(data==null?void 0:data.error)||error.message||_localization.strings.en.errors.axios.generic;};var getUserAuthData=function(){var _ref3=(0,_asyncToGenerator2.default)(function*(){var authValue=yield(0,_keychain.getSecureValue)("userAuth");return authValue?JSON.parse(authValue):null;});return function getUserAuthData(){return _ref3.apply(this,arguments);};}();var handleSuccessResponse=function handleSuccessResponse(response){if(response.data){var _response$config;response.data=(0,_caseConversion.convertResponseKeys)(response.data,(_response$config=response.config)==null?void 0:_response$config.caseConversionOptions);}return response;};var handleErrorRequest=function handleErrorRequest(error){return console.error(error);};var handleErrorResponse=function(){var _ref4=(0,_asyncToGenerator2.default)(function*(error){var response=error.response;var status=response==null?void 0:response.status;var data=response==null?void 0:response.data;if((0,_networkErrorHandler.handleNetworkError)(error)){return Promise.reject(error);}if(status===401){var _error$config2;if(isAuthEndpoint(((_error$config2=error.config)==null?void 0:_error$config2.url)||""))return Promise.reject(error);var errorMessage=getUnauthorizedErrorMessage(error);yield handleUnauthorizedAccess(errorMessage);}else if(data!=null&&data.errors){data.errors.forEach(function(errorMessage){_neetouiRn.Toast.show({type:"error",text2:errorMessage});});}else{var _errorMessage=getErrorMessage(data,error);_neetouiRn.Toast.show({type:"error",text2:_errorMessage});}return Promise.reject(error);});return function handleErrorResponse(_x2){return _ref4.apply(this,arguments);};}();var responseInterceptorId=null;var requestInterceptorId=null;var registerResponseIntercept=function registerResponseIntercept(){if(responseInterceptorId!==null){_axios.default.interceptors.response.eject(responseInterceptorId);}responseInterceptorId=_axios.default.interceptors.response.use(function(response){return handleSuccessResponse(response);},function(){var _ref5=(0,_asyncToGenerator2.default)(function*(error){var config=error.config,response=error.response,message=error.message,name=error.name,code=error.code;var status=response==null?void 0:response.status;if(!__DEV__&&status!==401&&!(0,_networkErrorHandler.handleNetworkError)(error,false)){try{_reactNative2.default.notify(new Error("Axios Error: "+message),function(report){var _config$method,_config$method2;report.addMetadata("axios_error_details",{message:message,name:name,code:code,requestUrl:config==null?void 0:config.url,requestMethod:config==null?void 0:(_config$method=config.method)==null?void 0:_config$method.toUpperCase(),baseURL:config==null?void 0:config.baseURL,requestHeaders:filterSensitiveData(config==null?void 0:config.headers),requestParams:filterSensitiveData(config==null?void 0:config.params),responseStatus:status,responseStatusText:response==null?void 0:response.statusText,responseData:filterSensitiveData(response==null?void 0:response.data)});report.context="Axios Request Failed: "+(config==null?void 0:(_config$method2=config.method)==null?void 0:_config$method2.toUpperCase())+" "+(config==null?void 0:config.url);report.groupingHash="axios-"+(config==null?void 0:config.method)+"-"+(config==null?void 0:config.url);});}catch(bugsnagError){console.error("Error reporting Axios error to Bugsnag:",bugsnagError);}}return handleErrorResponse(error);});return function(_x3){return _ref5.apply(this,arguments);};}());};var registerRequestIntercept=function registerRequestIntercept(){if(requestInterceptorId!==null){_axios.default.interceptors.request.eject(requestInterceptorId);}requestInterceptorId=_axios.default.interceptors.request.use(function(){var _ref6=(0,_asyncToGenerator2.default)(function*(request){var _store$auth;var config=yield configureAxiosHeaders(request);var store=_store.Store.getState();var subdomain=(store==null?void 0:(_store$auth=store.auth)==null?void 0:_store$auth.subdomain)||"app";config.baseURL=rootUrlCreator({subdomain:subdomain});if(config.data){config.data=(0,_caseConversion.convertRequestKeys)(config.data,config.caseConversionOptions);}if(config.params){config.params=(0,_caseConversion.convertRequestKeys)(config.params,config.caseConversionOptions);}return config;});return function(_x4){return _ref6.apply(this,arguments);};}(),handleErrorRequest);};var cleanupAxiosInterceptors=exports.cleanupAxiosInterceptors=function cleanupAxiosInterceptors(){if(responseInterceptorId!==null){_axios.default.interceptors.response.eject(responseInterceptorId);responseInterceptorId=null;}if(requestInterceptorId!==null){_axios.default.interceptors.request.eject(requestInterceptorId);requestInterceptorId=null;}};var configureAxiosHeaders=exports.configureAxiosHeaders=function(){var _ref7=(0,_asyncToGenerator2.default)(function*(request){var userAuthData=yield getUserAuthData();if(userAuthData){var authToken=userAuthData.authToken,email=userAuthData.email;var headers={"x-auth-token":authToken,"x-auth-email":email,"x-client-version":_reactNativeDeviceInfo.default.getVersion(),"x-client-name":_reactNative.Platform.OS+" "+_reactNativeConfig.default.APP_DISPLAY_NAME};Object.assign(request.headers,headers);}return request;});return function configureAxiosHeaders(_x5){return _ref7.apply(this,arguments);};}();var configureAxios=exports.configureAxios=function configureAxios(){registerResponseIntercept();registerRequestIntercept();(0,_paramsSerializer.default)();};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-commons-rn",
3
- "version": "1.6.4",
3
+ "version": "1.6.5",
4
4
  "main": ".",
5
5
  "files": [
6
6
  "api",
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.OTPVerificationScreen=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _neetouiRn=require("@bigbinary/neetoui-rn");var _native=require("@react-navigation/native");var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeRemixIcon=_interopRequireDefault(require("react-native-remix-icon"));var _native2=require("styled-components/native");var _localization=require("../../contexts/localization");var _useAuth2=require("../../hooks/query/useAuth");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/neeto-commons-rn/neeto-commons-rn/src/screens/authentication/OTPVerificationScreen.jsx";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 _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f;})(e,t);}var RESEND_TIMER=30;var interval=null;var OTPVerificationScreen=exports.OTPVerificationScreen=function OTPVerificationScreen(_ref){var navigation=_ref.navigation,params=_ref.route.params;var _useState=(0,_react.useState)(""),_useState2=(0,_slicedToArray2.default)(_useState,2),code=_useState2[0],setCode=_useState2[1];var _useState3=(0,_react.useState)(RESEND_TIMER),_useState4=(0,_slicedToArray2.default)(_useState3,2),resendTimer=_useState4[0],setResendTimer=_useState4[1];var _useState5=(0,_react.useState)(false),_useState6=(0,_slicedToArray2.default)(_useState5,2),startTimer=_useState6[0],setStartTimer=_useState6[1];var email=params.email,userId=params.userId;var _useLocalization=(0,_localization.useLocalization)(),strings=_useLocalization.strings;var theme=(0,_react.useContext)(_native2.ThemeContext);var t=strings.commons.verificationScreen;var _useAuth=(0,_useAuth2.useAuth)(),useVerifyOTPMutation=_useAuth.useVerifyOTPMutation,useGenerateOTPMutation=_useAuth.useGenerateOTPMutation;var _useVerifyOTPMutation=useVerifyOTPMutation(),mutateVerifyOTP=_useVerifyOTPMutation.mutate,isVerifyingOTP=_useVerifyOTPMutation.isLoading;var _useGenerateOTPMutati=useGenerateOTPMutation(),generateOTP=_useGenerateOTPMutati.mutateAsync,isGeneratingOTP=_useGenerateOTPMutati.isLoading;var resendOTP=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(){try{yield generateOTP({email:email,showCodeSentToast:true});setResendTimer(RESEND_TIMER);}catch(_unused){}});return function resendOTP(){return _ref2.apply(this,arguments);};}();var onHandleTextChange=function onHandleTextChange(otp){setCode(otp);if(otp.length===6)verifyOTP(otp);};var verifyOTP=function verifyOTP(code){if(code.length!==6){_neetouiRn.Toast.show({type:"warning",text2:t.OTPRequired});}else{mutateVerifyOTP({code:code,userId:userId});}};(0,_react.useEffect)(function(){if(startTimer){interval=setInterval(function(){setResendTimer(function(prev){if(prev===1){clearInterval(interval);}return prev-1;});},1000);}return function(){return clearInterval(interval);};},[startTimer]);(0,_react.useEffect)(function(){if(resendTimer===RESEND_TIMER){setStartTimer(true);}if(resendTimer===0){setStartTimer(false);}},[resendTimer]);(0,_native.useFocusEffect)((0,_react.useCallback)(function(){setResendTimer(RESEND_TIMER);},[]));return(0,_jsxRuntime.jsx)(_neetouiRn.ParentView,{barStyle:"dark-content",bg:"background.white",flex:1,children:(0,_jsxRuntime.jsxs)(_neetouiRn.Container,{flex:1,mx:16,children:[(0,_jsxRuntime.jsx)(_neetouiRn.Container,{height:42,justifyContent:"center",mb:18,children:(0,_jsxRuntime.jsx)(_neetouiRn.Touchable,{ml:-14,p:2,width:42,onPress:function onPress(){return navigation==null?void 0:navigation.goBack();},children:(0,_jsxRuntime.jsx)(_reactNativeRemixIcon.default,{color:theme.colors.grey600,name:"arrow-left-s-line",size:25})})}),(0,_jsxRuntime.jsx)(_neetouiRn.Typography,{color:"font.grey800",fontFamily:"sf600",mb:2,textStyle:"header",children:strings.commons.headers.otpVerification}),(0,_jsxRuntime.jsxs)(_neetouiRn.Typography,{color:"font.grey700",fontFamily:"sf400",fontSize:"s",mb:24,children:[t.codeDescription1,(0,_jsxRuntime.jsx)(_neetouiRn.Typography,{fontFamily:"sf600",children:email}),t.codeDescription2]}),(0,_jsxRuntime.jsx)(_neetouiRn.Input,{autoFocus:true,inputProps:{keyboardType:"phone-pad",maxLength:6},label:t.enterLoginCode,value:code,onChangeText:onHandleTextChange}),(0,_jsxRuntime.jsx)(_neetouiRn.Container,{alignItems:"center",my:16,children:(0,_jsxRuntime.jsx)(_neetouiRn.Button,{color:resendTimer?"font.grey600":"font.primary",disabled:Boolean(resendTimer),fontFamily:"sf400",fontSize:"s",isLoading:isGeneratingOTP,loadingText:t.sendingOTP,variant:"text",label:strings.formatString(t.resendCode,resendTimer?"("+resendTimer+")":""),onPress:resendOTP})}),(0,_jsxRuntime.jsx)(_neetouiRn.Container,{children:(0,_jsxRuntime.jsx)(_neetouiRn.Button,{disabled:code.length!==6,isLoading:isVerifyingOTP,label:strings.commons.buttons.continue,onPress:function onPress(){return verifyOTP(code);}})})]})});};OTPVerificationScreen.propTypes={route:_propTypes.default.object};
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.OTPVerificationScreen=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _neetouiRn=require("@bigbinary/neetoui-rn");var _native=require("@react-navigation/native");var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeRemixIcon=_interopRequireDefault(require("react-native-remix-icon"));var _native2=require("styled-components/native");var _localization=require("../../contexts/localization");var _useAuth2=require("../../hooks/query/useAuth");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/neeto-commons-rn/neeto-commons-rn/src/screens/authentication/OTPVerificationScreen.jsx";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 _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f;})(e,t);}var RESEND_TIMER=30;var interval=null;var OTPVerificationScreen=exports.OTPVerificationScreen=function OTPVerificationScreen(_ref){var navigation=_ref.navigation,params=_ref.route.params;var _useState=(0,_react.useState)(""),_useState2=(0,_slicedToArray2.default)(_useState,2),code=_useState2[0],setCode=_useState2[1];var _useState3=(0,_react.useState)(RESEND_TIMER),_useState4=(0,_slicedToArray2.default)(_useState3,2),resendTimer=_useState4[0],setResendTimer=_useState4[1];var _useState5=(0,_react.useState)(false),_useState6=(0,_slicedToArray2.default)(_useState5,2),startTimer=_useState6[0],setStartTimer=_useState6[1];var isSubmittingRef=(0,_react.useRef)(false);var email=params.email,userId=params.userId;var _useLocalization=(0,_localization.useLocalization)(),strings=_useLocalization.strings;var theme=(0,_react.useContext)(_native2.ThemeContext);var t=strings.commons.verificationScreen;var _useAuth=(0,_useAuth2.useAuth)(),useVerifyOTPMutation=_useAuth.useVerifyOTPMutation,useGenerateOTPMutation=_useAuth.useGenerateOTPMutation;var _useVerifyOTPMutation=useVerifyOTPMutation(),mutateVerifyOTP=_useVerifyOTPMutation.mutate,isVerifyingOTP=_useVerifyOTPMutation.isLoading;var _useGenerateOTPMutati=useGenerateOTPMutation(),generateOTP=_useGenerateOTPMutati.mutateAsync,isGeneratingOTP=_useGenerateOTPMutati.isLoading;var resendOTP=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(){try{yield generateOTP({email:email,showCodeSentToast:true});setResendTimer(RESEND_TIMER);}catch(_unused){}});return function resendOTP(){return _ref2.apply(this,arguments);};}();var onHandleTextChange=function onHandleTextChange(otp){setCode(otp);if(otp.length===6)verifyOTP(otp);};var verifyOTP=function verifyOTP(code){if(isVerifyingOTP||isSubmittingRef.current)return;if(code.length!==6){_neetouiRn.Toast.show({type:"warning",text2:t.OTPRequired});}else{isSubmittingRef.current=true;mutateVerifyOTP({code:code,userId:userId},{onSettled:function onSettled(){isSubmittingRef.current=false;}});}};(0,_react.useEffect)(function(){if(startTimer){interval=setInterval(function(){setResendTimer(function(prev){if(prev===1){clearInterval(interval);}return prev-1;});},1000);}return function(){return clearInterval(interval);};},[startTimer]);(0,_react.useEffect)(function(){if(resendTimer===RESEND_TIMER){setStartTimer(true);}if(resendTimer===0){setStartTimer(false);}},[resendTimer]);(0,_native.useFocusEffect)((0,_react.useCallback)(function(){setResendTimer(RESEND_TIMER);},[]));return(0,_jsxRuntime.jsx)(_neetouiRn.ParentView,{barStyle:"dark-content",bg:"background.white",flex:1,children:(0,_jsxRuntime.jsxs)(_neetouiRn.Container,{flex:1,mx:16,children:[(0,_jsxRuntime.jsx)(_neetouiRn.Container,{height:42,justifyContent:"center",mb:18,children:(0,_jsxRuntime.jsx)(_neetouiRn.Touchable,{ml:-14,p:2,width:42,onPress:function onPress(){return navigation==null?void 0:navigation.goBack();},children:(0,_jsxRuntime.jsx)(_reactNativeRemixIcon.default,{color:theme.colors.grey600,name:"arrow-left-s-line",size:25})})}),(0,_jsxRuntime.jsx)(_neetouiRn.Typography,{color:"font.grey800",fontFamily:"sf600",mb:2,textStyle:"header",children:strings.commons.headers.otpVerification}),(0,_jsxRuntime.jsxs)(_neetouiRn.Typography,{color:"font.grey700",fontFamily:"sf400",fontSize:"s",mb:24,children:[t.codeDescription1,(0,_jsxRuntime.jsx)(_neetouiRn.Typography,{fontFamily:"sf600",children:email}),t.codeDescription2]}),(0,_jsxRuntime.jsx)(_neetouiRn.Input,{autoFocus:true,inputProps:{keyboardType:"phone-pad",maxLength:6},label:t.enterLoginCode,value:code,onChangeText:onHandleTextChange}),(0,_jsxRuntime.jsx)(_neetouiRn.Container,{alignItems:"center",my:16,children:(0,_jsxRuntime.jsx)(_neetouiRn.Button,{color:resendTimer?"font.grey600":"font.primary",disabled:Boolean(resendTimer),fontFamily:"sf400",fontSize:"s",isLoading:isGeneratingOTP,loadingText:t.sendingOTP,variant:"text",label:strings.formatString(t.resendCode,resendTimer?"("+resendTimer+")":""),onPress:resendOTP})}),(0,_jsxRuntime.jsx)(_neetouiRn.Container,{children:(0,_jsxRuntime.jsx)(_neetouiRn.Button,{disabled:code.length!==6,isLoading:isVerifyingOTP,label:strings.commons.buttons.continue,onPress:function onPress(){return verifyOTP(code);}})})]})});};OTPVerificationScreen.propTypes={route:_propTypes.default.object};