@bigbinary/neeto-commons-rn 1.3.0 → 1.4.0

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.
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.convertResponseKeys=exports.convertRequestKeys=void 0;var _neetoCist=require("@bigbinary/neeto-cist");var _reactNative=_interopRequireDefault(require("@bugsnag/react-native"));var _constants=require("./constants");var logCaseConversionError=function logCaseConversionError(error,context){if(!__DEV__){_reactNative.default.notify(error,{severity:"warning",context:Object.assign({},context,{feature:"case_conversion"})});}};var convertRequestKeys=exports.convertRequestKeys=function convertRequestKeys(data){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(!data||!(0,_constants.shouldEnableCaseConversion)(options))return data;try{return(0,_neetoCist.serializeKeysToSnakeCase)(data);}catch(error){logCaseConversionError(error,{type:"request",data:data});return data;}};var convertResponseKeys=exports.convertResponseKeys=function convertResponseKeys(data){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(!data||!(0,_constants.shouldEnableCaseConversion)(options))return data;try{return(0,_neetoCist.keysToCamelCase)(data);}catch(error){logCaseConversionError(error,{type:"response",data:data});return data;}};
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.shouldEnableCaseConversion=exports.DEFAULT_CASE_CONVERSION=void 0;var _reactNativeConfig=_interopRequireDefault(require("react-native-config"));var DEFAULT_CASE_CONVERSION=exports.DEFAULT_CASE_CONVERSION=_reactNativeConfig.default.ENABLE_CASE_CONVERSION==="true";var shouldEnableCaseConversion=exports.shouldEnableCaseConversion=function shouldEnableCaseConversion(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(!DEFAULT_CASE_CONVERSION)return false;if(options.enableCaseConversion!==undefined){return options.enableCaseConversion;}return DEFAULT_CASE_CONVERSION;};
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.rootUrlCreator=exports.configureAxiosHeaders=exports.configureAxios=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _reactNative=require("react-native");var _neetouiRn=require("@bigbinary/neetoui-rn");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 _auth=require("../../slices/auth");var _asyncStore=require("../../helpers/asyncStore");var _store=require("../../store");var _paramsSerializer=_interopRequireDefault(require("./paramsSerializer"));_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"To prevent spam, we send login code only 10 times in an hour across organizations.\n\n"+"Please note that 10 login codes were sent to you within an hour."+"Please try again after one hour.\n\n"+"If you are short on time, then email support@neeto.com, and we will look into it.";}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(", "))||"Unauthorized access";};var handleUnauthorizedAccess=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(errorMessage){_neetouiRn.Toast.show({type:"error",text2:_store.Store.getState().auth.name?"Your session has expired. Please log in again.":errorMessage});(0,_asyncStore.removeItem)(_constants.STORAGE_KEYS.DEVICE_TOKEN);yield(0,_keychain.removeSecureValue)("userAuth");_store.Store.dispatch((0,_auth.logoutUserAction)());});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])||"Something went wrong";}return(data==null?void 0:data.error)||error.message;};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){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(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 registerResponseIntercept=function registerResponseIntercept(){_axios.default.interceptors.response.use(handleSuccessResponse,handleErrorResponse);};var registerRequestIntercept=function registerRequestIntercept(){_axios.default.interceptors.request.use(function(){var _ref5=(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});return config;});return function(_x3){return _ref5.apply(this,arguments);};}(),handleErrorRequest);};var configureAxiosHeaders=exports.configureAxiosHeaders=function(){var _ref6=(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(_x4){return _ref6.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=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _reactNative=require("react-native");var _neetouiRn=require("@bigbinary/neetoui-rn");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 _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 _paramsSerializer=_interopRequireDefault(require("./paramsSerializer"));_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"To prevent spam, we send login code only 10 times in an hour across organizations.\n\n"+"Please note that 10 login codes were sent to you within an hour."+"Please try again after one hour.\n\n"+"If you are short on time, then email support@neeto.com, and we will look into it.";}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(", "))||"Unauthorized access";};var handleUnauthorizedAccess=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(errorMessage){_neetouiRn.Toast.show({type:"error",text2:_store.Store.getState().auth.name?"Your session has expired. Please log in again.":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])||"Something went wrong";}return(data==null?void 0:data.error)||error.message;};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(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 registerResponseIntercept=function registerResponseIntercept(){_axios.default.interceptors.response.use(handleSuccessResponse,handleErrorResponse);};var registerRequestIntercept=function registerRequestIntercept(){_axios.default.interceptors.request.use(function(){var _ref5=(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(_x3){return _ref5.apply(this,arguments);};}(),handleErrorRequest);};var configureAxiosHeaders=exports.configureAxiosHeaders=function(){var _ref6=(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(_x4){return _ref6.apply(this,arguments);};}();var configureAxios=exports.configureAxios=function configureAxios(){registerResponseIntercept();registerRequestIntercept();(0,_paramsSerializer.default)();};
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.STORAGE_KEYS=exports.DEFAULT_PAGE_SIZE=void 0;Object.defineProperty(exports,"dateTimeFormats",{enumerable:true,get:function get(){return _dayjs.dateTimeFormats;}});var _dayjs=require("../config/dayjs");var STORAGE_KEYS=exports.STORAGE_KEYS={DEVICE_TOKEN:"devicetoken",IS_VISITED:"isVisited"};var DEFAULT_PAGE_SIZE=exports.DEFAULT_PAGE_SIZE=30;
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.STORAGE_KEYS=exports.DEFAULT_PAGE_SIZE=void 0;Object.defineProperty(exports,"dateTimeFormats",{enumerable:true,get:function get(){return _dayjs.dateTimeFormats;}});var _dayjs=require("../config/dayjs");var STORAGE_KEYS=exports.STORAGE_KEYS={DEVICE_TOKEN:"devicetoken",IS_VISITED:"isVisited",NOTIFICATION_PERMISSION_REQUESTED:"notificationPermissionRequested",DEVICE_REGISTERED:"deviceRegistered"};var DEFAULT_PAGE_SIZE=exports.DEFAULT_PAGE_SIZE=30;
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.usePushNotification=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _react=require("react");var _reactNative=require("react-native");var _dayjs=_interopRequireDefault(require("dayjs"));var _reactNativeNotifications=require("react-native-notifications");var _reactNativePermissions=require("react-native-permissions");var _reactNativePushNotification=_interopRequireDefault(require("react-native-push-notification"));var _bugsnag=require("../../config/bugsnag");var _constants=require("../../constants");var _asyncStore=require("../asyncStore");var _useNotification2=require("../../hooks/query/useNotification");var _useAppState=require("../../hooks/useAppState");var _store=require("../../store");var usePushNotification=exports.usePushNotification=function usePushNotification(isLoggedIn,_ref){var handleClick=_ref.handleClick;var appState=(0,_useAppState.useAppState)();var _useNotification=(0,_useNotification2.useNotification)(),useRegisterTokenMutation=_useNotification.useRegisterTokenMutation,useMarkReadUnreadNotification=_useNotification.useMarkReadUnreadNotification;var _useRegisterTokenMuta=useRegisterTokenMutation(),registerToken=_useRegisterTokenMuta.mutate;var _useMarkReadUnreadNot=useMarkReadUnreadNotification(),markReadUnreadNotification=_useMarkReadUnreadNot.mutate;(0,_react.useEffect)(function(){var events=initializeNotificationEvents();return function(){events.forEach(function(event){return event.remove();});};},[]);(0,_react.useEffect)(function(){if(isLoggedIn&&appState==="active"){initializePN();}},[initializePN,isLoggedIn,appState]);var initializePN=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(){var notificationPermission=yield(0,_reactNativePermissions.checkNotifications)();if(["blocked","unavailable"].includes(notificationPermission.status)){return;}var isRegisteredAlready=yield _reactNativeNotifications.Notifications.isRegisteredForRemoteNotifications();var storedDeviceToken=yield(0,_asyncStore.getItem)(_constants.STORAGE_KEYS.DEVICE_TOKEN);if(isRegisteredAlready&&storedDeviceToken)return;registerForRemoteNotifications();});return function initializePN(){return _ref2.apply(this,arguments);};}();var registerForRemoteNotifications=function registerForRemoteNotifications(){_reactNativeNotifications.Notifications.registerRemoteNotifications();var registerDeviceOnce=function(){var isRegistered=false;return function(){var _ref3=(0,_asyncToGenerator2.default)(function*(event){var _Store$getState,_Store$getState$auth;if(isRegistered)return;var isLoggedIn=((_Store$getState=_store.Store.getState())==null?void 0:(_Store$getState$auth=_Store$getState.auth)==null?void 0:_Store$getState$auth.isLoggedIn)||false;if(isLoggedIn&&event.deviceToken){isRegistered=true;var payload={device:{device_token:event.deviceToken,platform:_reactNative.Platform.OS}};var notificationDeviceId=yield(0,_asyncStore.getItem)(_constants.STORAGE_KEYS.DEVICE_TOKEN);if(typeof notificationDeviceId!=="string"){registerToken(payload,{onError:function onError(){return isRegistered=false;}});}}});return function(_x){return _ref3.apply(this,arguments);};}();}();_reactNativeNotifications.Notifications.events().registerRemoteNotificationsRegistered(function(event){return registerDeviceOnce(event);});_reactNativeNotifications.Notifications.events().registerRemoteNotificationsRegistrationFailed(function(event){(0,_bugsnag.bugsnagErrorHandler)(JSON.stringify(event),"notification");});};var markNotificationsAsRead=function markNotificationsAsRead(notification){var _notification$payload,_notification$payload2,_notification$payload3,_notification$payload4;var notificationId=(notification==null?void 0:(_notification$payload=notification.payload)==null?void 0:_notification$payload.notification_id)||(notification==null?void 0:(_notification$payload2=notification.payload)==null?void 0:(_notification$payload3=_notification$payload2.aps)==null?void 0:(_notification$payload4=_notification$payload3.alert)==null?void 0:_notification$payload4.notification_id);handleClick(notification);if(notificationId){markReadUnreadNotification({readAt:(0,_dayjs.default)().toISOString(),notificationId:notificationId});}};_reactNativePushNotification.default.configure({onNotification:function onNotification(notification){return handleClick(notification);}});var initializeNotificationEvents=function initializeNotificationEvents(){var foregroundEvent=_reactNativeNotifications.Notifications.events().registerNotificationReceivedForeground(function(notification,completion){if(_reactNative.Platform.OS==="android"){var _notification$payload5,_notification$payload6,_notification$payload7;_reactNativeNotifications.Notifications.postLocalNotification({body:notification==null?void 0:(_notification$payload5=notification.payload)==null?void 0:_notification$payload5["gcm.notification.body"],title:notification==null?void 0:(_notification$payload6=notification.payload)==null?void 0:_notification$payload6["gcm.notification.title"],url:notification==null?void 0:(_notification$payload7=notification.payload)==null?void 0:_notification$payload7.url});}completion({alert:true,sound:true,badge:false});});var backgroundEvent=_reactNativeNotifications.Notifications.events().registerNotificationReceivedBackground(function(_,completion){completion({alert:true,sound:true,badge:false});});var openedEvent=_reactNativeNotifications.Notifications.events().registerNotificationOpened(function(notification,completion){markNotificationsAsRead(notification);completion();});if(_reactNative.Platform.OS==="android"){_reactNativeNotifications.Notifications.setNotificationChannel({channelId:"default",name:"default",importance:5,enableLights:true,enableVibration:true,showBadge:true});}return[foregroundEvent,backgroundEvent,openedEvent];};return[];};
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.usePushNotification=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=require("react");var _reactNative=require("react-native");var _dayjs=_interopRequireDefault(require("dayjs"));var _reactNativeNotifications=require("react-native-notifications");var _reactNativePermissions=require("react-native-permissions");var _reactNativePushNotification=_interopRequireDefault(require("react-native-push-notification"));var _bugsnag=require("../../config/bugsnag");var _constants=require("../../constants");var _asyncStore=require("../asyncStore");var _useNotification2=require("../../hooks/query/useNotification");var _useAppState=require("../../hooks/useAppState");var _store=require("../../store");var usePushNotification=exports.usePushNotification=function usePushNotification(isLoggedIn){var _ref=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{handleClick:function handleClick(){}},handleClick=_ref.handleClick;var appState=(0,_useAppState.useAppState)();var _useState=(0,_react.useState)(false),_useState2=(0,_slicedToArray2.default)(_useState,2),notificationPermission=_useState2[0],setNotificationPermission=_useState2[1];var _useNotification=(0,_useNotification2.useNotification)(),useRegisterTokenMutation=_useNotification.useRegisterTokenMutation,useMarkReadUnreadNotification=_useNotification.useMarkReadUnreadNotification;var _useRegisterTokenMuta=useRegisterTokenMutation(),registerToken=_useRegisterTokenMuta.mutate;var _useMarkReadUnreadNot=useMarkReadUnreadNotification(),markReadUnreadNotification=_useMarkReadUnreadNot.mutate;(0,_react.useEffect)(function(){var checkPermission=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(){try{if(_reactNative.Platform.OS==="android"&&_reactNative.Platform.Version<33){setNotificationPermission(true);return;}var _yield$checkNotificat=yield(0,_reactNativePermissions.checkNotifications)(),status=_yield$checkNotificat.status;setNotificationPermission(status===_reactNativePermissions.RESULTS.GRANTED);}catch(error){(0,_bugsnag.bugsnagErrorHandler)(JSON.stringify(error),"notification");}});return function checkPermission(){return _ref2.apply(this,arguments);};}();if(appState==="active"){checkPermission();}},[appState]);var registerNotificationEvents=(0,_react.useCallback)(function(){var foregroundEvent=_reactNativeNotifications.Notifications.events().registerNotificationReceivedForeground(function(notification,completion){if(_reactNative.Platform.OS==="android"){var _notification$payload,_notification$payload2,_notification$payload3,_notification$payload4,_notification$payload5;var notificationTitle=(notification==null?void 0:(_notification$payload=notification.payload)==null?void 0:_notification$payload["gcm.notification.title"])||(notification==null?void 0:(_notification$payload2=notification.payload)==null?void 0:_notification$payload2.title)||"New Notification";var notificationBody=(notification==null?void 0:(_notification$payload3=notification.payload)==null?void 0:_notification$payload3["gcm.notification.body"])||(notification==null?void 0:(_notification$payload4=notification.payload)==null?void 0:_notification$payload4.message)||"You have a new message";_reactNativeNotifications.Notifications.postLocalNotification({body:notificationBody,title:notificationTitle,url:notification==null?void 0:(_notification$payload5=notification.payload)==null?void 0:_notification$payload5.url});}completion({alert:true,sound:true,badge:false});});var backgroundEvent=_reactNativeNotifications.Notifications.events().registerNotificationReceivedBackground(function(_,completion){completion({alert:true,sound:true,badge:false});});var openedEvent=_reactNativeNotifications.Notifications.events().registerNotificationOpened(function(notification,completion){markNotificationsAsRead(notification);completion();});if(_reactNative.Platform.OS==="android"){_reactNativeNotifications.Notifications.setNotificationChannel({channelId:"default",name:"default",importance:5,enableLights:true,enableVibration:true,showBadge:true});}return[foregroundEvent,backgroundEvent,openedEvent];},[]);(0,_react.useEffect)(function(){var events=registerNotificationEvents();return function(){events.forEach(function(event){return event.remove();});};},[registerNotificationEvents]);(0,_react.useEffect)(function(){if(isLoggedIn&&appState==="active"&&notificationPermission){initializePN();}},[initializePN,isLoggedIn,appState,notificationPermission]);var registerForRemoteNotifications=(0,_react.useCallback)(function(){_reactNativeNotifications.Notifications.registerRemoteNotifications();var registerDeviceOnce=function(){var isRegistered=false;return function(){var _ref3=(0,_asyncToGenerator2.default)(function*(event){var _Store$getState,_Store$getState$auth;if(isRegistered)return;var isLoggedIn=((_Store$getState=_store.Store.getState())==null?void 0:(_Store$getState$auth=_Store$getState.auth)==null?void 0:_Store$getState$auth.isLoggedIn)||false;if(isLoggedIn&&event.deviceToken){isRegistered=true;var payload={device:{device_token:event.deviceToken,platform:_reactNative.Platform.OS}};var notificationDeviceId=yield(0,_asyncStore.getItem)(_constants.STORAGE_KEYS.DEVICE_TOKEN);if(typeof notificationDeviceId!=="string"){registerToken(payload,{onSuccess:function(){var _onSuccess=(0,_asyncToGenerator2.default)(function*(){yield(0,_asyncStore.setItem)(_constants.STORAGE_KEYS.DEVICE_REGISTERED,true);});function onSuccess(){return _onSuccess.apply(this,arguments);}return onSuccess;}(),onError:function onError(){isRegistered=false;}});}}});return function(_x){return _ref3.apply(this,arguments);};}();}();_reactNativeNotifications.Notifications.events().registerRemoteNotificationsRegistered(function(event){return registerDeviceOnce(event);});_reactNativeNotifications.Notifications.events().registerRemoteNotificationsRegistrationFailed(function(event){(0,_bugsnag.bugsnagErrorHandler)(JSON.stringify(event),"notification");});},[registerToken]);var initializePN=(0,_react.useCallback)((0,_asyncToGenerator2.default)(function*(){try{var isRegisteredAlready=yield _reactNativeNotifications.Notifications.isRegisteredForRemoteNotifications();var storedDeviceToken=yield(0,_asyncStore.getItem)(_constants.STORAGE_KEYS.DEVICE_TOKEN);var deviceRegistered=yield(0,_asyncStore.getItem)(_constants.STORAGE_KEYS.DEVICE_REGISTERED);if(isRegisteredAlready&&storedDeviceToken&&deviceRegistered)return;registerForRemoteNotifications();}catch(error){(0,_bugsnag.bugsnagErrorHandler)(JSON.stringify(error),"notification");}}),[registerForRemoteNotifications]);var markNotificationsAsRead=function markNotificationsAsRead(notification){var _notification$payload6,_notification$payload7,_notification$payload8,_notification$payload9;var notificationId=(notification==null?void 0:(_notification$payload6=notification.payload)==null?void 0:_notification$payload6.notification_id)||(notification==null?void 0:(_notification$payload7=notification.payload)==null?void 0:(_notification$payload8=_notification$payload7.aps)==null?void 0:(_notification$payload9=_notification$payload8.alert)==null?void 0:_notification$payload9.notification_id);handleClick(notification);if(notificationId){markReadUnreadNotification({readAt:(0,_dayjs.default)().toISOString(),notificationId:notificationId});}};_reactNativePushNotification.default.configure({onNotification:function onNotification(notification){return handleClick(notification);}});return[];};
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.usePushNotificationPermissions=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=require("react");var _reactNative=require("react-native");var _reactNativePermissions=require("react-native-permissions");var usePushNotificationPermissions=exports.usePushNotificationPermissions=function usePushNotificationPermissions(){var _useState=(0,_react.useState)(_reactNative.AppState.currentState),_useState2=(0,_slicedToArray2.default)(_useState,2),appState=_useState2[0],setAppState=_useState2[1];var _useState3=(0,_react.useState)(false),_useState4=(0,_slicedToArray2.default)(_useState3,2),notificationPermission=_useState4[0],setNotificationPermission=_useState4[1];(0,_react.useEffect)(function(){var subscription=_reactNative.AppState.addEventListener("change",function(nextAppState){setAppState(nextAppState);});return function(){subscription==null?void 0:subscription.remove();};},[]);(0,_react.useEffect)(function(){var checkNotificationPermissions=function(){var _ref=(0,_asyncToGenerator2.default)(function*(){var notifications=yield(0,_reactNativePermissions.checkNotifications)();var permission=notifications.status==="granted";setNotificationPermission(permission);});return function checkNotificationPermissions(){return _ref.apply(this,arguments);};}();if(appState==="active"){checkNotificationPermissions();}},[appState]);return[notificationPermission];};
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.usePushNotificationPermissions=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=require("react");var _reactNative=require("react-native");var _reactNativePermissions=require("react-native-permissions");var _bugsnag=require("../config/bugsnag");var _constants=require("../constants");var _asyncStore=require("../helpers/asyncStore");var usePushNotificationPermissions=exports.usePushNotificationPermissions=function usePushNotificationPermissions(){var _useState=(0,_react.useState)(_reactNative.AppState.currentState),_useState2=(0,_slicedToArray2.default)(_useState,2),appState=_useState2[0],setAppState=_useState2[1];var _useState3=(0,_react.useState)(false),_useState4=(0,_slicedToArray2.default)(_useState3,2),notificationPermission=_useState4[0],setNotificationPermission=_useState4[1];(0,_react.useEffect)(function(){var subscription=_reactNative.AppState.addEventListener("change",function(nextAppState){setAppState(nextAppState);});return function(){subscription==null?void 0:subscription.remove();};},[]);var checkNotificationPermission=(0,_react.useCallback)((0,_asyncToGenerator2.default)(function*(){try{if(_reactNative.Platform.OS==="android"&&_reactNative.Platform.Version<33){return{isGranted:true};}var _yield$checkNotificat=yield(0,_reactNativePermissions.checkNotifications)(),status=_yield$checkNotificat.status;return{isGranted:status===_reactNativePermissions.RESULTS.GRANTED,status:status};}catch(error){(0,_bugsnag.bugsnagErrorHandler)(JSON.stringify(error),"notification");return{isGranted:false};}}),[]);var requestNotificationPermission=(0,_react.useCallback)((0,_asyncToGenerator2.default)(function*(){try{var permissionRequested=yield(0,_asyncStore.getItem)(_constants.STORAGE_KEYS.NOTIFICATION_PERMISSION_REQUESTED);if(permissionRequested){return false;}var _yield$requestNotific=yield(0,_reactNativePermissions.requestNotifications)(["alert","sound","badge"]),status=_yield$requestNotific.status;yield(0,_asyncStore.setItem)(_constants.STORAGE_KEYS.NOTIFICATION_PERMISSION_REQUESTED,true);return status===_reactNativePermissions.RESULTS.GRANTED;}catch(error){(0,_bugsnag.bugsnagErrorHandler)(JSON.stringify(error),"notification");return false;}}),[]);(0,_react.useEffect)(function(){var handlePermissions=function(){var _ref3=(0,_asyncToGenerator2.default)(function*(){try{var _yield$checkNotificat2=yield checkNotificationPermission(),isGranted=_yield$checkNotificat2.isGranted,status=_yield$checkNotificat2.status;if(isGranted){setNotificationPermission(true);return;}if(status===_reactNativePermissions.RESULTS.DENIED){var granted=yield requestNotificationPermission();setNotificationPermission(granted);}else{setNotificationPermission(false);}}catch(error){(0,_bugsnag.bugsnagErrorHandler)(JSON.stringify(error),"notification");setNotificationPermission(false);}});return function handlePermissions(){return _ref3.apply(this,arguments);};}();if(appState==="active"){handlePermissions();}},[appState,checkNotificationPermission,requestNotificationPermission]);return[notificationPermission];};
@@ -148,7 +148,7 @@
148
148
  },
149
149
  "disabledNotifications": {
150
150
  "title": "Notifications are disabled",
151
- "description": "To enable notifications, you will need to allow notifications for neetoInvoice app in your phone's settings.",
151
+ "description": "To enable notifications, you will need to allow notifications for {0} app in your phone's settings.",
152
152
  "button": "Open app settings"
153
153
  },
154
154
  "verifyTimesheet": {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.navigate=navigate;exports.navigationRef=void 0;var React=_interopRequireWildcard(require("react"));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&&{}.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 navigationRef=exports.navigationRef=React.createRef();function navigate(name,params){var _navigationRef$curren;(_navigationRef$curren=navigationRef.current)==null?void 0:_navigationRef$curren.navigate(name,params);}
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.navigate=navigate;exports.navigationRef=void 0;exports.reset=reset;var React=_interopRequireWildcard(require("react"));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&&{}.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 navigationRef=exports.navigationRef=React.createRef();function navigate(name,params){var _navigationRef$curren;(_navigationRef$curren=navigationRef.current)==null?void 0:_navigationRef$curren.navigate(name,params);}function reset(routes){var _navigationRef$curren2;(_navigationRef$curren2=navigationRef.current)==null?void 0:_navigationRef$curren2.reset({index:0,routes:Array.isArray(routes)?routes:[routes]});}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-commons-rn",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "main": ".",
5
5
  "files": [
6
6
  "api",
@@ -36,13 +36,13 @@
36
36
  "@react-navigation/native-stack": "6.9.8",
37
37
  "axios": "^1.2.2",
38
38
  "dayjs": "^1.11.6",
39
+ "react-native-cam": "^5.4.16",
39
40
  "react-native-keychain": "^13.7.0",
40
41
  "react-native-notifications": "^5.1.0",
41
42
  "react-native-push-notification": "^8.1.1",
42
43
  "react-native-reanimated": "3.6.0",
43
44
  "react-native-safe-area-context": "^3.3.2",
44
45
  "react-native-svg": "^12.3.0",
45
- "react-native-cam": "^5.4.16",
46
46
  "react-query": "^3.38.1",
47
47
  "react-redux": "^8.0.5",
48
48
  "redux": "^4.1.2",
@@ -52,6 +52,7 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "@babel/cli": "^7.18.10",
55
+ "@bigbinary/neeto-cist": "^1.0.15",
55
56
  "@bugsnag/plugin-react-navigation": "^7.11.0",
56
57
  "@bugsnag/react-native": "^7.11.0",
57
58
  "@invertase/react-native-apple-authentication": "^2.2.2",
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.NeetoCommonsRNProvider=void 0;var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactRedux=require("react-redux");var _react2=require("redux-persist/integration/react");var _navigationService=require("../navigation/navigationService");var _auth=require("../slices/auth");var _config=require("../config");var _localization=require("../contexts/localization");var _store=require("../store");var _utils=require("../store/utils");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/neeto-commons-rn/neeto-commons-rn/src/providers/NeetoCommonsRNProvider.jsx";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&&{}.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;}(0,_config.initializeConfigs)();var NeetoCommonsRNProvider=exports.NeetoCommonsRNProvider=function NeetoCommonsRNProvider(_ref){var appName=_ref.appName,hostNavigationRef=_ref.hostNavigationRef,hostStrings=_ref.hostStrings,hostRootReducer=_ref.hostRootReducer,blacklistedReducers=_ref.blacklistedReducers,children=_ref.children;_navigationService.navigationRef.current=hostNavigationRef.current;(0,_utils.updateRootReducer)({reducers:hostRootReducer,blacklistedReducers:blacklistedReducers});(0,_react.useEffect)(function(){_store.Store.dispatch((0,_auth.setAppName)({appName:appName}));},[appName]);return(0,_jsxRuntime.jsx)(_reactRedux.Provider,{store:_store.Store,children:(0,_jsxRuntime.jsx)(_react2.PersistGate,{loading:null,persistor:_store.Persistor,children:(0,_jsxRuntime.jsx)(_localization.LocalizationProvider,{hostStrings:hostStrings,children:children})})});};NeetoCommonsRNProvider.propTypes={appName:_propTypes.default.string,children:_propTypes.default.any,hostNavigationRef:_propTypes.default.object,hostStrings:_propTypes.default.any,hostRootReducer:_propTypes.default.any,blacklistedReducers:_propTypes.default.array};
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.NeetoCommonsRNProvider=void 0;var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactRedux=require("react-redux");var _react2=require("redux-persist/integration/react");var _navigationService=require("../navigation/navigationService");var _auth=require("../slices/auth");var _config=require("../config");var _store=require("../store");var _utils=require("../store/utils");var _localization=require("../contexts/localization");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/neeto-commons-rn/neeto-commons-rn/src/providers/NeetoCommonsRNProvider.jsx";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&&{}.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;}(0,_config.initializeConfigs)();var NeetoCommonsRNProvider=exports.NeetoCommonsRNProvider=function NeetoCommonsRNProvider(_ref){var appName=_ref.appName,hostNavigationRef=_ref.hostNavigationRef,hostStrings=_ref.hostStrings,hostRootReducer=_ref.hostRootReducer,blacklistedReducers=_ref.blacklistedReducers,children=_ref.children;_navigationService.navigationRef.current=hostNavigationRef.current;(0,_utils.updateRootReducer)({reducers:hostRootReducer,blacklistedReducers:blacklistedReducers});(0,_react.useEffect)(function(){_store.Store.dispatch((0,_auth.setAppName)({appName:appName}));},[appName]);return(0,_jsxRuntime.jsx)(_reactRedux.Provider,{store:_store.Store,children:(0,_jsxRuntime.jsx)(_react2.PersistGate,{loading:null,persistor:_store.Persistor,children:(0,_jsxRuntime.jsx)(_localization.LocalizationProvider,{hostStrings:hostStrings,children:children})})});};NeetoCommonsRNProvider.propTypes={appName:_propTypes.default.string,children:_propTypes.default.any,hostNavigationRef:_propTypes.default.object,hostStrings:_propTypes.default.any,hostRootReducer:_propTypes.default.any,blacklistedReducers:_propTypes.default.array};
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ProfileScreen=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _neetoIconsRn=require("@bigbinary/neeto-icons-rn");var _neetouiRn=require("@bigbinary/neetoui-rn");var _googleSignin=require("@react-native-google-signin/google-signin");var _reactNativeConfig=_interopRequireDefault(require("react-native-config"));var _reactNativeDeviceInfo=_interopRequireDefault(require("react-native-device-info"));var _reactNativeSizeMatters=require("react-native-size-matters");var _reactRedux=require("react-redux");var _native=require("styled-components/native");var _constants=require("../../constants");var _asyncStore=require("../../helpers/asyncStore");var _keychain=require("../../helpers/keychain");var _hooks=require("../../hooks");var _useNotification2=require("../../hooks/query/useNotification");var _auth=require("../../slices/auth");var _components=require("../../components");var _useProfile=require("../../hooks/query/useProfile");var _UserData=require("./UserData");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/neeto-commons-rn/neeto-commons-rn/src/screens/profile/ProfileScreen.jsx";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&&{}.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 ProfileScreen=exports.ProfileScreen=function ProfileScreen(_ref){var notificationPreferencesData=_ref.notificationPreferencesData,hasNotificationPermission=_ref.hasNotificationPermission,isNotificationPreferencesUpdating=_ref.isNotificationPreferencesUpdating,children=_ref.children,_ref$openChatWidget=_ref.openChatWidget,openChatWidget=_ref$openChatWidget===void 0?null:_ref$openChatWidget;var theme=(0,_react.useContext)(_native.ThemeContext);var _useLocalization=(0,_hooks.useLocalization)(),strings=_useLocalization.strings;var dispatch=(0,_reactRedux.useDispatch)();var _useNotification=(0,_useNotification2.useNotification)(),useDeleteTokenMutation=_useNotification.useDeleteTokenMutation;var _useDeleteTokenMutati=useDeleteTokenMutation(),deleteToken=_useDeleteTokenMutati.mutate,isDeletingToken=_useDeleteTokenMutati.isLoading;var subdomain=(0,_reactRedux.useSelector)(function(state){return state.auth.subdomain;});var _useFetchProfileDetai=(0,_useProfile.useFetchProfileDetails)(subdomain),userDetails=_useFetchProfileDetai.data;var handleNotificationSettings=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(){return yield _reactNative.Linking.openSettings();});return function handleNotificationSettings(){return _ref2.apply(this,arguments);};}();var handleLogout=function(){var _ref3=(0,_asyncToGenerator2.default)(function*(){var googleSignedIn=_googleSignin.GoogleSignin.hasPreviousSignIn();if(googleSignedIn){yield _googleSignin.GoogleSignin.signOut();}var deviceNotificationId=yield(0,_asyncStore.getItem)(_constants.STORAGE_KEYS.DEVICE_TOKEN);if(deviceNotificationId){deleteToken(deviceNotificationId);}else{yield(0,_keychain.removeSecureValue)("userAuth");dispatch((0,_auth.logoutUserAction)());}});return function handleLogout(){return _ref3.apply(this,arguments);};}();var openConfirmLogoutAlert=function openConfirmLogoutAlert(){_neetouiRn.Alert.show({title:strings.commons.confirmMessage.Logout.title,description:strings.commons.confirmMessage.Logout.message,buttons:[{label:strings.commons.confirmMessage.Logout.title,onPress:handleLogout,variant:"danger"},{label:strings.commons.buttons.noCancel,onPress:function onPress(){}}]});};return(0,_jsxRuntime.jsxs)(_neetouiRn.ParentView,{barStyle:"dark-content",bottomInset:false,flex:1,children:[(0,_jsxRuntime.jsx)(_components.Header,{title:strings.commons.headers.Settings}),(0,_jsxRuntime.jsxs)(_neetouiRn.Container,{flex:1,justifyContent:"space-between",pb:(0,_reactNativeSizeMatters.moderateScale)(16),px:(0,_reactNativeSizeMatters.moderateScale)(16),children:[(0,_jsxRuntime.jsxs)(_neetouiRn.Container,{children:[(0,_jsxRuntime.jsx)(_UserData.UserData,{userDetails:userDetails}),hasNotificationPermission?(0,_jsxRuntime.jsx)(_neetouiRn.NotificationPreferenceList,{data:notificationPreferencesData,isLoading:isNotificationPreferencesUpdating,title:strings.commons.profileScreen.notifyTitle}):!isNotificationPreferencesUpdating&&(0,_jsxRuntime.jsxs)(_neetouiRn.Container,{alignItems:"center",borderColor:"border.grey300",borderRadius:(0,_reactNativeSizeMatters.moderateScale)(15),borderWidth:(0,_reactNativeSizeMatters.moderateScale)(1),mt:(0,_reactNativeSizeMatters.moderateScale)(10),p:(0,_reactNativeSizeMatters.moderateScale)(18),children:[(0,_jsxRuntime.jsx)(_neetouiRn.Typography,{fontFamily:"sf600",fontSize:"3xl",mt:(0,_reactNativeSizeMatters.moderateScale)(10),children:strings.commons.disabledNotifications.title}),(0,_jsxRuntime.jsx)(_neetouiRn.Typography,{color:"font.grey500",fontSize:"s",mt:(0,_reactNativeSizeMatters.moderateScale)(10),textAlign:"center",children:strings.commons.disabledNotifications.description}),(0,_jsxRuntime.jsx)(_neetouiRn.Button,{borderRadius:(0,_reactNativeSizeMatters.moderateScale)(10),fontSize:"m",label:strings.commons.disabledNotifications.button,mt:(0,_reactNativeSizeMatters.moderateScale)(24),width:(0,_reactNativeSizeMatters.moderateScale)(192),onPress:handleNotificationSettings})]}),children,openChatWidget&&(0,_jsxRuntime.jsx)(_neetouiRn.Button,{bg:"background.secondary",fontFamily:"sf400",fontSize:"l",justifyContent:"space-between",label:strings.commons.buttons.helpAndSupport,mt:(0,_reactNativeSizeMatters.moderateScale)(24),px:(0,_reactNativeSizeMatters.moderateScale)(12),textAlign:"left",variant:"text",RightIcon:function RightIcon(){return(0,_jsxRuntime.jsx)(_neetoIconsRn.Help,{color:theme.colors.font.primary,size:(0,_reactNativeSizeMatters.moderateScale)(22),viewBox:"0 0 25 25"});},onPress:openChatWidget})]}),(0,_jsxRuntime.jsxs)(_neetouiRn.Container,{children:[(0,_jsxRuntime.jsxs)(_neetouiRn.Typography,{color:"font.grey600",fontFamily:"sf400",fontSize:"s",children:[_reactNativeConfig.default.APP_DISPLAY_NAME," ",strings.commons.version,_reactNativeDeviceInfo.default.getVersion()]}),(0,_jsxRuntime.jsx)(_neetouiRn.Button,{color:"font.primary",fontFamily:"sf400",fontSize:"xl",isLoading:isDeletingToken,label:strings.commons.buttons.Logout,labelStyle:{ml:(0,_reactNativeSizeMatters.moderateScale)(6)},loadingText:strings.commons.buttons.loggingOut,ml:-1,style:styles.logoutButton,variant:"text",LeftIcon:function LeftIcon(){return(0,_jsxRuntime.jsx)(_neetoIconsRn.LeftArrow,{color:theme.colors.font.primary,size:(0,_reactNativeSizeMatters.moderateScale)(20),viewBox:"0 0 20 20"});},onPress:openConfirmLogoutAlert})]})]})]});};var styles=_reactNative.StyleSheet.create({logoutButton:{alignSelf:"flex-start"}});
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ProfileScreen=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _neetoIconsRn=require("@bigbinary/neeto-icons-rn");var _neetouiRn=require("@bigbinary/neetoui-rn");var _googleSignin=require("@react-native-google-signin/google-signin");var _reactNativeConfig=_interopRequireDefault(require("react-native-config"));var _reactNativeDeviceInfo=_interopRequireDefault(require("react-native-device-info"));var _reactNativeSizeMatters=require("react-native-size-matters");var _reactRedux=require("react-redux");var _native=require("styled-components/native");var _constants=require("../../constants");var _asyncStore=require("../../helpers/asyncStore");var _keychain=require("../../helpers/keychain");var _hooks=require("../../hooks");var _useNotification2=require("../../hooks/query/useNotification");var _auth=require("../../slices/auth");var _components=require("../../components");var _useProfile=require("../../hooks/query/useProfile");var _UserData=require("./UserData");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/neeto-commons-rn/neeto-commons-rn/src/screens/profile/ProfileScreen.jsx";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&&{}.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 ProfileScreen=exports.ProfileScreen=function ProfileScreen(_ref){var notificationPreferencesData=_ref.notificationPreferencesData,hasNotificationPermission=_ref.hasNotificationPermission,isNotificationPreferencesUpdating=_ref.isNotificationPreferencesUpdating,children=_ref.children,_ref$openChatWidget=_ref.openChatWidget,openChatWidget=_ref$openChatWidget===void 0?null:_ref$openChatWidget;var theme=(0,_react.useContext)(_native.ThemeContext);var _useLocalization=(0,_hooks.useLocalization)(),strings=_useLocalization.strings;var dispatch=(0,_reactRedux.useDispatch)();var _useNotification=(0,_useNotification2.useNotification)(),useDeleteTokenMutation=_useNotification.useDeleteTokenMutation;var _useDeleteTokenMutati=useDeleteTokenMutation(),deleteToken=_useDeleteTokenMutati.mutate,isDeletingToken=_useDeleteTokenMutati.isLoading;var subdomain=(0,_reactRedux.useSelector)(function(state){return state.auth.subdomain;});var _useFetchProfileDetai=(0,_useProfile.useFetchProfileDetails)(subdomain),userDetails=_useFetchProfileDetai.data;var handleNotificationSettings=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(){return yield _reactNative.Linking.openSettings();});return function handleNotificationSettings(){return _ref2.apply(this,arguments);};}();var handleLogout=function(){var _ref3=(0,_asyncToGenerator2.default)(function*(){var googleSignedIn=_googleSignin.GoogleSignin.hasPreviousSignIn();if(googleSignedIn){yield _googleSignin.GoogleSignin.signOut();}var deviceNotificationId=yield(0,_asyncStore.getItem)(_constants.STORAGE_KEYS.DEVICE_TOKEN);if(deviceNotificationId){deleteToken(deviceNotificationId);}else{yield(0,_keychain.removeSecureValue)("userAuth");dispatch((0,_auth.logoutUserAction)());}});return function handleLogout(){return _ref3.apply(this,arguments);};}();var openConfirmLogoutAlert=function openConfirmLogoutAlert(){_neetouiRn.Alert.show({title:strings.commons.confirmMessage.Logout.title,description:strings.commons.confirmMessage.Logout.message,buttons:[{label:strings.commons.confirmMessage.Logout.title,onPress:handleLogout,variant:"danger"},{label:strings.commons.buttons.noCancel,onPress:function onPress(){}}]});};return(0,_jsxRuntime.jsxs)(_neetouiRn.ParentView,{barStyle:"dark-content",bottomInset:false,flex:1,children:[(0,_jsxRuntime.jsx)(_components.Header,{title:strings.commons.headers.Settings}),(0,_jsxRuntime.jsxs)(_neetouiRn.Container,{flex:1,justifyContent:"space-between",pb:(0,_reactNativeSizeMatters.moderateScale)(16),px:(0,_reactNativeSizeMatters.moderateScale)(16),children:[(0,_jsxRuntime.jsxs)(_neetouiRn.Container,{children:[(0,_jsxRuntime.jsx)(_UserData.UserData,{userDetails:userDetails}),hasNotificationPermission?(0,_jsxRuntime.jsx)(_neetouiRn.NotificationPreferenceList,{data:notificationPreferencesData,isLoading:isNotificationPreferencesUpdating,title:strings.commons.profileScreen.notifyTitle}):!isNotificationPreferencesUpdating&&(0,_jsxRuntime.jsxs)(_neetouiRn.Container,{alignItems:"center",borderColor:"border.grey300",borderRadius:(0,_reactNativeSizeMatters.moderateScale)(15),borderWidth:(0,_reactNativeSizeMatters.moderateScale)(1),mt:(0,_reactNativeSizeMatters.moderateScale)(10),p:(0,_reactNativeSizeMatters.moderateScale)(18),children:[(0,_jsxRuntime.jsx)(_neetouiRn.Typography,{fontFamily:"sf600",fontSize:"3xl",mt:(0,_reactNativeSizeMatters.moderateScale)(10),children:strings.commons.disabledNotifications.title}),(0,_jsxRuntime.jsx)(_neetouiRn.Typography,{color:"font.grey500",fontSize:"s",mt:(0,_reactNativeSizeMatters.moderateScale)(10),textAlign:"center",children:strings.commons.disabledNotifications.description.replace("{0}",_reactNativeConfig.default.APP_DISPLAY_NAME)}),(0,_jsxRuntime.jsx)(_neetouiRn.Button,{borderRadius:(0,_reactNativeSizeMatters.moderateScale)(10),fontSize:"m",label:strings.commons.disabledNotifications.button,mt:(0,_reactNativeSizeMatters.moderateScale)(24),width:(0,_reactNativeSizeMatters.moderateScale)(192),onPress:handleNotificationSettings})]}),children,openChatWidget&&(0,_jsxRuntime.jsx)(_neetouiRn.Button,{bg:"background.secondary",fontFamily:"sf400",fontSize:"l",justifyContent:"space-between",label:strings.commons.buttons.helpAndSupport,mt:(0,_reactNativeSizeMatters.moderateScale)(24),px:(0,_reactNativeSizeMatters.moderateScale)(12),textAlign:"left",variant:"text",RightIcon:function RightIcon(){return(0,_jsxRuntime.jsx)(_neetoIconsRn.Help,{color:theme.colors.font.primary,size:(0,_reactNativeSizeMatters.moderateScale)(22),viewBox:"0 0 25 25"});},onPress:openChatWidget})]}),(0,_jsxRuntime.jsxs)(_neetouiRn.Container,{children:[(0,_jsxRuntime.jsxs)(_neetouiRn.Typography,{color:"font.grey600",fontFamily:"sf400",fontSize:"s",children:[_reactNativeConfig.default.APP_DISPLAY_NAME," ",strings.commons.version,_reactNativeDeviceInfo.default.getVersion()]}),(0,_jsxRuntime.jsx)(_neetouiRn.Button,{color:"font.primary",fontFamily:"sf400",fontSize:"xl",isLoading:isDeletingToken,label:strings.commons.buttons.Logout,labelStyle:{ml:(0,_reactNativeSizeMatters.moderateScale)(6)},loadingText:strings.commons.buttons.loggingOut,ml:-1,style:styles.logoutButton,variant:"text",LeftIcon:function LeftIcon(){return(0,_jsxRuntime.jsx)(_neetoIconsRn.LeftArrow,{color:theme.colors.font.primary,size:(0,_reactNativeSizeMatters.moderateScale)(20),viewBox:"0 0 20 20"});},onPress:openConfirmLogoutAlert})]})]})]});};var styles=_reactNative.StyleSheet.create({logoutButton:{alignSelf:"flex-start"}});