@onairos/react-native 3.7.2 → 3.7.4
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/api/index.js +219 -9
- package/lib/commonjs/components/BodyText.js +27 -9
- package/lib/commonjs/components/BrandMark.js +111 -10
- package/lib/commonjs/components/CodeInput.js +120 -9
- package/lib/commonjs/components/EmailInput.js +30 -8
- package/lib/commonjs/components/GoogleButton.js +56 -9
- package/lib/commonjs/components/HeadingGroup.js +43 -9
- package/lib/commonjs/components/LLMDataInputModal.js +664 -14
- package/lib/commonjs/components/ModalHeader.js +99 -9
- package/lib/commonjs/components/ModalSheet.js +47 -9
- package/lib/commonjs/components/Onairos.js +380 -14
- package/lib/commonjs/components/OnairosButton.js +313 -13
- package/lib/commonjs/components/OnairosSignInButton.js +130 -12
- package/lib/commonjs/components/Overlay.js +465 -13
- package/lib/commonjs/components/PersonaImage.js +137 -10
- package/lib/commonjs/components/PersonaLoadingScreen.js +318 -12
- package/lib/commonjs/components/PersonalizationConsentScreen.js +467 -13
- package/lib/commonjs/components/PinCreationScreen.js +403 -12
- package/lib/commonjs/components/PinInput.js +464 -9
- package/lib/commonjs/components/PlatformConnectorsStep.js +1311 -23
- package/lib/commonjs/components/PlatformList.js +137 -10
- package/lib/commonjs/components/PlatformToggle.js +180 -9
- package/lib/commonjs/components/PrimaryButton.js +180 -10
- package/lib/commonjs/components/SignInMatchAnimation.js +197 -9
- package/lib/commonjs/components/SignInStep.js +345 -12
- package/lib/commonjs/components/UniversalOnboarding.js +2780 -30
- package/lib/commonjs/components/VerificationStep.js +176 -11
- package/lib/commonjs/components/WelcomeScreen.js +461 -22
- package/lib/commonjs/components/icons/Basicproficon.js +37 -8
- package/lib/commonjs/components/icons/Basicprofile.js +21 -8
- package/lib/commonjs/components/icons/Checkbox.js +21 -8
- package/lib/commonjs/components/icons/Checkmark.js +27 -8
- package/lib/commonjs/components/icons/Contentanalysis.js +21 -8
- package/lib/commonjs/components/icons/Contenticon.js +39 -8
- package/lib/commonjs/components/icons/EnochE.js +41 -8
- package/lib/commonjs/components/icons/Personalityicon.js +30 -8
- package/lib/commonjs/components/icons/Personalityprofile.js +21 -8
- package/lib/commonjs/components/icons/Personalitytraits.js +21 -8
- package/lib/commonjs/components/icons/Userpreferences.js +21 -8
- package/lib/commonjs/components/icons/index.js +84 -17
- package/lib/commonjs/components/onboarding/OAuthWebView.js +1754 -18
- package/lib/commonjs/components/onboarding/OnboardingHeader.js +74 -10
- package/lib/commonjs/components/onboarding/PinInput.js +283 -10
- package/lib/commonjs/components/onboarding/PlatformConnector.js +249 -11
- package/lib/commonjs/config/PLATFORM_APIS.md +849 -0
- package/lib/commonjs/config/api.js +56 -7
- package/lib/commonjs/constants/index.js +120 -7
- package/lib/commonjs/context/AuthContext.js +345 -10
- package/lib/commonjs/hooks/useConnectedAccounts.js +111 -9
- package/lib/commonjs/hooks/useConnections.js +102 -8
- package/lib/commonjs/hooks/useCredentials.js +178 -10
- package/lib/commonjs/hooks/useUserConnections.js +148 -10
- package/lib/commonjs/index.js +439 -34
- package/lib/commonjs/services/apiClient.js +298 -8
- package/lib/commonjs/services/biometricPinService.js +180 -8
- package/lib/commonjs/services/chatGPTConversationExtractor.js +155 -8
- package/lib/commonjs/services/chatGPTConversationService.js +275 -9
- package/lib/commonjs/services/claudeConversationExtractor.js +103 -8
- package/lib/commonjs/services/claudeConversationService.js +158 -9
- package/lib/commonjs/services/connectedAccountsService.js +310 -10
- package/lib/commonjs/services/googleAuthService.js +252 -11
- package/lib/commonjs/services/hingeDataExtractor.js +105 -8
- package/lib/commonjs/services/hingeDataService.js +150 -9
- package/lib/commonjs/services/imageCompressionService.js +260 -7
- package/lib/commonjs/services/instagramDataExtractor.js +126 -8
- package/lib/commonjs/services/instagramDataService.js +163 -9
- package/lib/commonjs/services/jwtStorageService.js +276 -7
- package/lib/commonjs/services/linkedinDOMExtractor.js +245 -7
- package/lib/commonjs/services/linkedinProfileService.js +222 -9
- package/lib/commonjs/services/linkedinScrapingService.js +230 -8
- package/lib/commonjs/services/llmDataStorage.js +294 -8
- package/lib/commonjs/services/mobileTrainingService.js +186 -8
- package/lib/commonjs/services/netflixDataExtractor.js +120 -8
- package/lib/commonjs/services/netflixDataService.js +198 -9
- package/lib/commonjs/services/pinEncryptionService.js +84 -8
- package/lib/commonjs/services/pinStorageUtils.js +105 -7
- package/lib/commonjs/services/platformAuthService.js +1484 -12
- package/lib/commonjs/services/sephoraDataExtractor.js +140 -8
- package/lib/commonjs/services/sephoraDataService.js +200 -9
- package/lib/commonjs/services/spotifyDataExtractor.js +148 -8
- package/lib/commonjs/services/spotifyDataService.js +241 -9
- package/lib/commonjs/services/storageService.js +404 -8
- package/lib/commonjs/services/telegramDataExtractor.js +115 -8
- package/lib/commonjs/services/telegramDataService.js +499 -9
- package/lib/commonjs/services/trainingApiHelpers.js +73 -7
- package/lib/commonjs/services/userConnectionsService.js +340 -10
- package/lib/commonjs/services/youtubeMigrationService.js +416 -10
- package/lib/commonjs/theme/index.js +250 -7
- package/lib/commonjs/types/ambient.d.js +2 -1
- package/lib/commonjs/types/declarations.d.js +2 -1
- package/lib/commonjs/types/index.js +6 -1
- package/lib/commonjs/types/node-fix.d.js +2 -1
- package/lib/commonjs/types/node-override.d.js +2 -1
- package/lib/commonjs/types/opacity.d.js +2 -1
- package/lib/commonjs/types.js +14 -1
- package/lib/commonjs/utils/Portal.js +98 -8
- package/lib/commonjs/utils/api.js +130 -9
- package/lib/commonjs/utils/assetRegistry.js +210 -35
- package/lib/commonjs/utils/auth.js +112 -9
- package/lib/commonjs/utils/connectorTests.js +613 -29
- package/lib/commonjs/utils/crypto.js +62 -8
- package/lib/commonjs/utils/debugHelper.js +64 -1
- package/lib/commonjs/utils/encryption.js +76 -7
- package/lib/commonjs/utils/eventUtils.js +288 -1
- package/lib/commonjs/utils/haptics.js +66 -9
- package/lib/commonjs/utils/imagePreloader.js +6 -1
- package/lib/commonjs/utils/networkDiagnostics.js +226 -8
- package/lib/commonjs/utils/onairosApi.js +350 -9
- package/lib/commonjs/utils/programmaticFlow.js +117 -9
- package/lib/commonjs/utils/retryHelper.js +220 -1
- package/lib/commonjs/utils/secureStorage.js +349 -10
- package/lib/commonjs/utils/webviewScripts/chatgpt.js +551 -1
- package/lib/commonjs/utils/webviewScripts/claude.js +376 -1
- package/lib/commonjs/utils/webviewScripts/hinge.js +411 -1
- package/lib/commonjs/utils/webviewScripts/index.js +698 -15
- package/lib/commonjs/utils/webviewScripts/instagram.js +454 -1
- package/lib/commonjs/utils/webviewScripts/linkedin.js +880 -1
- package/lib/commonjs/utils/webviewScripts/netflix.js +382 -1
- package/lib/commonjs/utils/webviewScripts/sephora.js +516 -1
- package/lib/commonjs/utils/webviewScripts/spotify.js +419 -1
- package/lib/commonjs/utils/webviewScripts/telegram.js +678 -1
- package/lib/module/api/index.js +211 -1
- package/lib/module/components/BodyText.js +20 -1
- package/lib/module/components/BrandMark.js +104 -1
- package/lib/module/components/CodeInput.js +113 -1
- package/lib/module/components/EmailInput.js +23 -1
- package/lib/module/components/GoogleButton.js +49 -1
- package/lib/module/components/HeadingGroup.js +36 -1
- package/lib/module/components/LLMDataInputModal.js +656 -7
- package/lib/module/components/ModalHeader.js +92 -1
- package/lib/module/components/ModalSheet.js +39 -1
- package/lib/module/components/Onairos.js +373 -1
- package/lib/module/components/OnairosButton.js +305 -1
- package/lib/module/components/OnairosSignInButton.js +121 -1
- package/lib/module/components/Overlay.js +456 -1
- package/lib/module/components/PersonaImage.js +129 -1
- package/lib/module/components/PersonaLoadingScreen.js +310 -1
- package/lib/module/components/PersonalizationConsentScreen.js +460 -1
- package/lib/module/components/PinCreationScreen.js +396 -1
- package/lib/module/components/PinInput.js +456 -1
- package/lib/module/components/PlatformConnectorsStep.js +1302 -6
- package/lib/module/components/PlatformList.js +129 -1
- package/lib/module/components/PlatformToggle.js +173 -1
- package/lib/module/components/PrimaryButton.js +172 -1
- package/lib/module/components/SignInMatchAnimation.js +189 -1
- package/lib/module/components/SignInStep.js +338 -1
- package/lib/module/components/UniversalOnboarding.js +2770 -1
- package/lib/module/components/VerificationStep.js +168 -1
- package/lib/module/components/WelcomeScreen.js +453 -1
- package/lib/module/components/icons/Basicproficon.js +30 -1
- package/lib/module/components/icons/Basicprofile.js +14 -1
- package/lib/module/components/icons/Checkbox.js +14 -1
- package/lib/module/components/icons/Checkmark.js +20 -1
- package/lib/module/components/icons/Contentanalysis.js +14 -1
- package/lib/module/components/icons/Contenticon.js +32 -1
- package/lib/module/components/icons/EnochE.js +34 -1
- package/lib/module/components/icons/Personalityicon.js +23 -1
- package/lib/module/components/icons/Personalityprofile.js +14 -1
- package/lib/module/components/icons/Personalitytraits.js +14 -1
- package/lib/module/components/icons/Userpreferences.js +14 -1
- package/lib/module/components/icons/index.js +13 -1
- package/lib/module/components/onboarding/OAuthWebView.js +1746 -1
- package/lib/module/components/onboarding/OnboardingHeader.js +66 -1
- package/lib/module/components/onboarding/PinInput.js +274 -1
- package/lib/module/components/onboarding/PlatformConnector.js +240 -1
- package/lib/module/config/PLATFORM_APIS.md +849 -0
- package/lib/module/config/api.js +47 -1
- package/lib/module/constants/index.js +114 -1
- package/lib/module/context/AuthContext.js +335 -1
- package/lib/module/hooks/useConnectedAccounts.js +106 -1
- package/lib/module/hooks/useConnections.js +95 -1
- package/lib/module/hooks/useCredentials.js +171 -6
- package/lib/module/hooks/useUserConnections.js +140 -1
- package/lib/module/index.js +172 -1
- package/lib/module/services/apiClient.js +295 -1
- package/lib/module/services/biometricPinService.js +169 -1
- package/lib/module/services/chatGPTConversationExtractor.js +149 -1
- package/lib/module/services/chatGPTConversationService.js +268 -1
- package/lib/module/services/claudeConversationExtractor.js +97 -1
- package/lib/module/services/claudeConversationService.js +151 -1
- package/lib/module/services/connectedAccountsService.js +293 -1
- package/lib/module/services/googleAuthService.js +241 -1
- package/lib/module/services/hingeDataExtractor.js +99 -1
- package/lib/module/services/hingeDataService.js +143 -1
- package/lib/module/services/imageCompressionService.js +250 -1
- package/lib/module/services/instagramDataExtractor.js +120 -1
- package/lib/module/services/instagramDataService.js +156 -1
- package/lib/module/services/jwtStorageService.js +257 -1
- package/lib/module/services/linkedinDOMExtractor.js +234 -1
- package/lib/module/services/linkedinProfileService.js +210 -1
- package/lib/module/services/linkedinScrapingService.js +219 -1
- package/lib/module/services/llmDataStorage.js +277 -1
- package/lib/module/services/mobileTrainingService.js +173 -1
- package/lib/module/services/netflixDataExtractor.js +114 -1
- package/lib/module/services/netflixDataService.js +191 -1
- package/lib/module/services/pinEncryptionService.js +74 -6
- package/lib/module/services/pinStorageUtils.js +93 -1
- package/lib/module/services/platformAuthService.js +1461 -1
- package/lib/module/services/sephoraDataExtractor.js +134 -1
- package/lib/module/services/sephoraDataService.js +193 -1
- package/lib/module/services/spotifyDataExtractor.js +142 -1
- package/lib/module/services/spotifyDataService.js +234 -1
- package/lib/module/services/storageService.js +383 -1
- package/lib/module/services/telegramDataExtractor.js +109 -1
- package/lib/module/services/telegramDataService.js +493 -1
- package/lib/module/services/trainingApiHelpers.js +67 -1
- package/lib/module/services/userConnectionsService.js +329 -1
- package/lib/module/services/youtubeMigrationService.js +405 -1
- package/lib/module/theme/index.js +245 -1
- package/lib/module/types.js +10 -1
- package/lib/module/utils/Portal.js +90 -1
- package/lib/module/utils/api.js +118 -1
- package/lib/module/utils/assetRegistry.js +200 -34
- package/lib/module/utils/auth.js +100 -1
- package/lib/module/utils/connectorTests.js +600 -27
- package/lib/module/utils/crypto.js +54 -1
- package/lib/module/utils/debugHelper.js +54 -1
- package/lib/module/utils/encryption.js +67 -1
- package/lib/module/utils/eventUtils.js +270 -1
- package/lib/module/utils/haptics.js +59 -8
- package/lib/module/utils/imagePreloader.js +3 -1
- package/lib/module/utils/networkDiagnostics.js +217 -1
- package/lib/module/utils/onairosApi.js +333 -1
- package/lib/module/utils/programmaticFlow.js +111 -1
- package/lib/module/utils/retryHelper.js +211 -1
- package/lib/module/utils/secureStorage.js +330 -6
- package/lib/module/utils/webviewScripts/chatgpt.js +545 -1
- package/lib/module/utils/webviewScripts/claude.js +370 -1
- package/lib/module/utils/webviewScripts/hinge.js +405 -1
- package/lib/module/utils/webviewScripts/index.js +434 -1
- package/lib/module/utils/webviewScripts/instagram.js +448 -1
- package/lib/module/utils/webviewScripts/linkedin.js +874 -1
- package/lib/module/utils/webviewScripts/netflix.js +376 -1
- package/lib/module/utils/webviewScripts/sephora.js +510 -1
- package/lib/module/utils/webviewScripts/spotify.js +413 -1
- package/lib/module/utils/webviewScripts/telegram.js +672 -1
- package/package.json +2 -2
|
@@ -1,12 +1,403 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
function _0x1562(){const _0x379bbc=['__esModule','default','PinCreationScreen','object','function','cGPOr','RfLPn','ztXUy','yEuRT','tmbjc','get','set','TBXMr','hasOwnProperty','defineProperty','getOwnPropertyDescriptor','triggerHaptic','HapticType','pEAKM','Face\x20ID\x20authentication\x20was\x20cancelled\x20or\x20failed.\x20Your\x20PIN\x20is\x20still\x20saved\x20securely.','Try\x20Again','Please\x20ensure\x20your\x20PIN\x20meets\x20all\x20requirements.','JKjIc','bfKIW','🔐\x20Starting\x20PIN\x20creation\x20process...','🔐\x20[PIN\x20CREATION]\x20Biometric\x20storage\x20enabled,\x20starting\x20biometric\x20flow...','📱\x20[PIN\x20CREATION]\x20Biometric\x20available\x20before\x20storage:','soiGy','unavailable','✅\x20PIN\x20stored\x20successfully\x20with\x20Face\x20ID','KKosY','0|1|2|4|3','PIN\x20Storage\x20Error','error','📱\x20Biometric\x20not\x20available,\x20continuing\x20without\x20Face\x20ID','ffHKe','qUhya','❌\x20Error\x20in\x20PIN\x20creation\x20process:','PIN\x20Creation\x20Error','There\x20was\x20an\x20issue\x20creating\x20your\x20PIN.\x20Please\x20try\x20again.','checking','📱\x20Biometric\x20availability\x20check:','success','Create\x20a\x20PIN','Your\x20PIN\x20must:','Be\x20at\x20least\x208\x20characters\x20in\x20length.','Contain\x20a\x20number.','small','Checking\x20Face\x20ID...','Enhanced\x20Security','Face\x20ID\x20Unavailable','Securing\x20with\x20Face\x20ID...','PIN\x20Secured\x20with\x20Face\x20ID','We\x20use\x20Face\x20ID\x20to\x20ensure\x20only\x20you\x20can\x20access\x20your\x20data.','Face\x20ID\x20is\x20not\x20available\x20on\x20this\x20device.\x20Your\x20PIN\x20will\x20be\x20stored\x20securely.','Your\x20PIN\x20is\x20now\x20protected\x20with\x20Face\x20ID\x20authentication.','#FFFFFF','useState','IKTuk','length','test','wYrRh','values','every','JVrZV','mbBUb','cNBMf','wfdTQ','NTBVX','HKEpF','jkjyo','xRGzc','Yirjc','SFtmE','fLhpN','PFvvY','QEygY','tyyfq','pRRYV','ERROR','Alert','alert','Invalid\x20PIN','wThGh','BUTTON_PRESS','dOGXB','ipVAA','kVerj','log','yfWIL','setTemporaryPin','📝\x20PIN\x20stored\x20temporarily\x20for\x20onboarding','YMXQO','storing','eGmTM','biometricPinService','isBiometricAvailable','cRWMe','rATeV','eLTZA','tDObw','storePinWithBiometric','QPqHa','isPinStored','ivGwm','zbXQO','CxQlI','kJWVw','QktOo','EVoKV','VrARc','GYheY','RtoGt','POVbU','uiGOJ','hLLRH','yZqXA','dAGkb','Continue\x20Without\x20Face\x20ID','MsYLL','fmXAZ','rwDti','split','❌\x20PIN\x20storage\x20verification\x20failed','QssFY','kmtVB','zRLoP','Face\x20ID\x20Setup','jFBDl','EWewo','rYJjJ','RBYeh','GvfBc','CHvix','JqlNn','agBdY','tHwnv','KctdL','hNYWG','JtFkn','call','uDLlm','TWJpl','wQgbN','dylVd','JuhHA','JUzeq','HPWVY','MCHzo','useEffect','TBuQk','CiVjp','zIPEi','PIN\x20storage\x20verification\x20failed.\x20Please\x20try\x20again.','XiEfX','✅\x20PIN\x20storage\x20verified\x20-\x20proceeding\x20with\x20onboarding','qCuYr','CfpFI','ytKve','pHhNl','tHNxd','mGZFs','ofgBa','oGryv','tBhGs','PqDAz','BlZWT','Dwzfd','XdsGe','XAats','createElement','container','View','titleContainer','Text','title','XmvBa','pinContainer','TextInput','pinInput','Enter\x20your\x20PIN','requirementsContainer','requirementsTitle','requirementItem','checkbox','checkboxChecked','checkmark','requirementText','requirementTextMet','DdsmG','uppercase','XceBX','number','puYEi','symbol','Contain\x20a\x20symbol\x20(e.g.\x20!@#$%^&*).','securityCardSuccess','securityCardError','securityIconContainer','YsYRd','sIbgp','securityIcon','jdhfJ','KzxnN','KzePX','securityTitle','ZBJNE','xPvaV','mGLdm','IbEvT','NcMoH','securityDescription','Verifying\x20Face\x20ID\x20availability\x20on\x20your\x20device.','VbKvZ','uHAvM','KazjJ','FTMNF','Face\x20ID\x20setup\x20failed,\x20but\x20your\x20PIN\x20is\x20stored\x20securely.','buttonContainer','TouchableOpacity','continueButton','ActivityIndicator','xRNNK','continueButtonText','continueButtonTextActive','StyleSheet','create','surface','center','grey800','IBM\x20Plex\x20Sans','COLORS','grey600','Inter','#F8F9FA','#E5E5E5','600','#4CD964','bold','row','#F0FDF4','#22C55E','#EF4444','auto','#999999'];_0x1562=function(){return _0x379bbc;};return _0x1562();}Object['defineProperty'](exports,_0x2ca8(0x0),{'value':!![]}),exports[_0x2ca8(0x1)]=exports[_0x2ca8(0x2)]=void 0x0;function _0x2ca8(_0x1562f7,_0x2ca8a5){_0x1562f7=_0x1562f7-0x0;const _0x2a77f0=_0x1562();let _0x560a93=_0x2a77f0[_0x1562f7];return _0x560a93;}var _react=_interopRequireWildcard(__ONAIROS_REQ_FUNC__(0x0)),_reactNative=__ONAIROS_REQ_FUNC__(0x1),_theme=__ONAIROS_REQ_FUNC__(0x2),_haptics=__ONAIROS_REQ_FUNC__(0x3),_biometricPinService=__ONAIROS_REQ_FUNC__(0x4),_pinStorageUtils=__ONAIROS_REQ_FUNC__(0x5);function _interopRequireWildcard(_0x521215,_0x15bd6e){const _0x24627b={'cGPOr':function(_0x13b6ca,_0x5ba3d3){return _0x13b6ca===_0x5ba3d3;},'RfLPn':'qhxAO','BJgev':function(_0x2b208e,_0x39c54b){return _0x2b208e&&_0x39c54b;},'ztXUy':function(_0x354a21,_0x5a3f31){return _0x354a21!=_0x5a3f31;},'yEuRT':_0x2ca8(0x3),'tmbjc':_0x2ca8(0x4),'TBXMr':function(_0x5239ae,_0x24a39a){return _0x5239ae!==_0x24a39a;},'ADgvk':_0x2ca8(0x1)};if(_0x24627b['tmbjc']==typeof WeakMap)var _0x5a684d=new WeakMap(),_0xfd129d=new WeakMap();return(_interopRequireWildcard=function(_0x1a9380,_0x4f2672){const _0x4fbcdd={'pEAKM':function(_0x257fb8){return _0x257fb8();}};if(_0x24627b[_0x2ca8(0x5)](_0x24627b[_0x2ca8(0x6)],_0x24627b['RfLPn'])){if(_0x24627b['BJgev'](!_0x4f2672,_0x1a9380)&&_0x1a9380['__esModule'])return _0x1a9380;var _0x2fb6ae,_0x18451a,_0x5d2a0e={'__proto__':null,'default':_0x1a9380};if(_0x24627b['cGPOr'](null,_0x1a9380)||_0x24627b[_0x2ca8(0x7)](_0x24627b[_0x2ca8(0x8)],typeof _0x1a9380)&&_0x24627b[_0x2ca8(0x7)](_0x24627b[_0x2ca8(0x9)],typeof _0x1a9380))return _0x5d2a0e;if(_0x2fb6ae=_0x4f2672?_0xfd129d:_0x5a684d){if(_0x2fb6ae['has'](_0x1a9380))return _0x2fb6ae[_0x2ca8(0xa)](_0x1a9380);_0x2fb6ae[_0x2ca8(0xb)](_0x1a9380,_0x5d2a0e);}for(const _0x1432ec in _0x1a9380)_0x24627b[_0x2ca8(0xc)](_0x24627b['ADgvk'],_0x1432ec)&&{}[_0x2ca8(0xd)]['call'](_0x1a9380,_0x1432ec)&&((_0x18451a=(_0x2fb6ae=Object[_0x2ca8(0xe)])&&Object[_0x2ca8(0xf)](_0x1a9380,_0x1432ec))&&(_0x18451a['get']||_0x18451a['set'])?_0x2fb6ae(_0x5d2a0e,_0x1432ec,_0x18451a):_0x5d2a0e[_0x1432ec]=_0x1a9380[_0x1432ec]);return _0x5d2a0e;}else(0x0,_0x3587c7[_0x2ca8(0x10)])(_0x2021aa[_0x2ca8(0x11)]['BUTTON_PRESS']),_0x4fbcdd[_0x2ca8(0x12)](_0x57becb);})(_0x521215,_0x15bd6e);}const PinCreationScreen=({visible:_0x4da0a8,onComplete:_0x4a69d4,onBack:_0x2aa9a2})=>{const _0x400058={'IKTuk':function(_0x19443c,_0x16a6e7){return _0x19443c>=_0x16a6e7;},'wYrRh':function(_0x480708,_0x4e04ec){return _0x480708(_0x4e04ec);},'jFBDl':function(_0x4f671a,_0x25b407){return _0x4f671a!==_0x25b407;},'EWewo':'FTVLL','rYJjJ':function(_0x5e9d6b,_0x17d0df){return _0x5e9d6b(_0x17d0df);},'wfdTQ':'available','vYosN':'⚠️\x20Face\x20ID\x20authentication\x20was\x20cancelled\x20or\x20failed','JVrZV':'Face\x20ID\x20Setup','mbBUb':_0x2ca8(0x13),'cNBMf':_0x2ca8(0x14),'HKEpF':function(_0x4949b4,_0x1ad791){return _0x4949b4!==_0x1ad791;},'rWMbH':function(_0x425e34,_0x356898){return _0x425e34(_0x356898);},'xRGzc':function(_0x1350e3,_0x1f40d0){return _0x1350e3&&_0x1f40d0;},'Yirjc':function(_0x5c3bd9,_0x53c413){return _0x5c3bd9===_0x53c413;},'SFtmE':_0x2ca8(0x3),'fLhpN':function(_0x100c48,_0x2403e8){return _0x100c48!=_0x2403e8;},'PFvvY':'default','QEygY':function(_0x473b87,_0x5492b5,_0x4f6630,_0x2db7ca){return _0x473b87(_0x5492b5,_0x4f6630,_0x2db7ca);},'tyyfq':'❌\x20Error\x20checking\x20biometric\x20availability:','pRRYV':function(_0x3dec88,_0x903fb6){return _0x3dec88(_0x903fb6);},'wThGh':_0x2ca8(0x15),'dOGXB':function(_0x399182,_0x3951a4){return _0x399182!==_0x3951a4;},'ipVAA':_0x2ca8(0x16),'kVerj':_0x2ca8(0x17),'yfWIL':_0x2ca8(0x18),'YMXQO':function(_0xd02eb5,_0x44f192){return _0xd02eb5(_0x44f192);},'eGmTM':_0x2ca8(0x19),'DdtZn':_0x2ca8(0x1a),'cRWMe':_0x2ca8(0x1b),'rATeV':'❌\x20[PIN\x20CREATION]\x20Face\x20ID\x20not\x20available\x20on\x20this\x20device','naJWz':function(_0x4224a3,_0x6b88c3){return _0x4224a3(_0x6b88c3);},'eLTZA':_0x2ca8(0x1c),'tDObw':'🔐\x20[PIN\x20CREATION]\x20Triggering\x20biometric\x20authentication\x20for\x20PIN\x20storage...','QPqHa':_0x2ca8(0x1d),'ivGwm':_0x2ca8(0x1e),'zbXQO':'✅\x20PIN\x20storage\x20verified\x20-\x20proceeding\x20with\x20onboarding','CxQlI':function(_0x8de81b,_0x2428c6,_0x4f0df3){return _0x8de81b(_0x2428c6,_0x4f0df3);},'rwDti':_0x2ca8(0x1f),'JCRNx':function(_0x580d20,_0x35d91b){return _0x580d20(_0x35d91b);},'QssFY':_0x2ca8(0x20),'kmtVB':'PIN\x20storage\x20verification\x20failed.\x20Please\x20try\x20again.','zRLoP':function(_0x5b1d0b,_0x302765){return _0x5b1d0b(_0x302765);},'CiVjp':_0x2ca8(0x21),'YcsKy':'Continue\x20Without\x20Face\x20ID','agBdY':_0x2ca8(0x22),'vVxVj':function(_0x983a1,_0x3accd0){return _0x983a1(_0x3accd0);},'TWJpl':_0x2ca8(0x23),'kqkso':_0x2ca8(0x24),'JuhHA':_0x2ca8(0x25),'YXhTM':function(_0x561950,_0x34cc41){return _0x561950(_0x34cc41);},'JUzeq':_0x2ca8(0x26),'HPWVY':_0x2ca8(0x27),'MCHzo':function(_0x10e615){return _0x10e615();},'tHNxd':'rWIno','BlZWT':function(_0x38c11e,_0x366539){return _0x38c11e(_0x366539);},'Dwzfd':_0x2ca8(0x28),'XdsGe':_0x2ca8(0x29),'zIPEi':function(_0xfeeb8d,_0x19e1b2){return _0xfeeb8d(_0x19e1b2);},'zborR':function(_0x41799a,_0x43ad0a){return _0x41799a(_0x43ad0a);},'TBuQk':_0x2ca8(0x2a),'XiEfX':'Ftyot','RaOgg':'RRttx','XAats':function(_0x558f1c){return _0x558f1c();},'kbhGP':_0x2ca8(0x2b),'XmvBa':'A\x20PIN\x20so\x20only\x20you\x20have\x20access\x20to\x20your\x20data.','VnGEn':_0x2ca8(0x2c),'DdsmG':_0x2ca8(0x2d),'XceBX':'Contain\x20an\x20uppercase\x20letter.','puYEi':_0x2ca8(0x2e),'KzePX':function(_0x21ca9d,_0x1d42ad){return _0x21ca9d===_0x1d42ad;},'YsYRd':_0x2ca8(0x2f),'sIbgp':'storing','jdhfJ':function(_0x2167a1,_0x272d52){return _0x2167a1===_0x272d52;},'KzxnN':function(_0x5c5a74,_0xc00130){return _0x5c5a74===_0xc00130;},'ZBJNE':_0x2ca8(0x30),'xPvaV':_0x2ca8(0x31),'mGLdm':_0x2ca8(0x32),'wcCtb':_0x2ca8(0x33),'IbEvT':_0x2ca8(0x34),'NcMoH':'Face\x20ID\x20Setup\x20Failed','VbKvZ':_0x2ca8(0x35),'uHAvM':_0x2ca8(0x36),'ApiHa':'Please\x20authenticate\x20with\x20Face\x20ID\x20to\x20secure\x20your\x20PIN.','KazjJ':function(_0x158585,_0x4ab256){return _0x158585===_0x4ab256;},'FTMNF':_0x2ca8(0x37),'xRNNK':_0x2ca8(0x38),'kJJAC':'Continue'},[_0x293a3d,_0x58a271]=(0x0,_react[_0x2ca8(0x39)])(''),[_0x307e0e,_0x91a64]=(0x0,_react[_0x2ca8(0x39)])({'length':![],'uppercase':![],'number':![],'symbol':![]}),[_0x559a65,_0x4a3012]=(0x0,_react[_0x2ca8(0x39)])(![]),[_0x2703bc,_0x490b5b]=(0x0,_react['useState'])(![]),[_0x26c785,_0x2a9653]=(0x0,_react[_0x2ca8(0x39)])(_0x400058['Dwzfd']),_0xafd71a=_0x4eaca6=>{const _0x28eedb={'length':_0x400058[_0x2ca8(0x3a)](_0x4eaca6[_0x2ca8(0x3b)],0x8),'uppercase':/[A-Z]/[_0x2ca8(0x3c)](_0x4eaca6),'number':/[0-9]/[_0x2ca8(0x3c)](_0x4eaca6),'symbol':/[!@#$%^&*(),.?":{}|<>]/[_0x2ca8(0x3c)](_0x4eaca6)};return _0x400058[_0x2ca8(0x3d)](_0x91a64,_0x28eedb),Object[_0x2ca8(0x3e)](_0x28eedb)[_0x2ca8(0x3f)](_0x260093=>_0x260093);},_0x42055e=_0xa4a86d=>{_0x58a271(_0xa4a86d),_0x400058[_0x2ca8(0x3d)](_0xafd71a,_0xa4a86d);},_0x1b326c=async()=>{const _0x5372c9={'GYheY':_0x400058['vYosN'],'RtoGt':function(_0x3a3615,_0x549cc7){return _0x3a3615(_0x549cc7);},'POVbU':_0x400058[_0x2ca8(0x40)],'uiGOJ':_0x400058[_0x2ca8(0x41)],'hLLRH':_0x400058[_0x2ca8(0x42)],'kJWVw':function(_0x25e35b,_0x4e39e7){return _0x25e35b(_0x4e39e7);},'QktOo':_0x400058[_0x2ca8(0x43)],'VrARc':_0x2ca8(0x44),'pgmaN':function(_0x24c07a,_0xfb725b){return _0x400058['rYJjJ'](_0x24c07a,_0xfb725b);},'otNpi':function(_0x255618,_0x1283d0){return _0x400058['rYJjJ'](_0x255618,_0x1283d0);},'RBYeh':function(_0x4ed88f,_0x13e021){return _0x400058[_0x2ca8(0x45)](_0x4ed88f,_0x13e021);},'GvfBc':_0x2ca8(0x46),'JqlNn':function(_0xee1a17,_0x3a49eb){return _0x400058['rWMbH'](_0xee1a17,_0x3a49eb);},'ltSXO':function(_0xa93679,_0x14d695){return _0x400058[_0x2ca8(0x47)](_0xa93679,_0x14d695);},'tHwnv':function(_0x2d9296,_0x157af4){return _0x400058[_0x2ca8(0x48)](_0x2d9296,_0x157af4);},'KctdL':_0x400058[_0x2ca8(0x49)],'hNYWG':function(_0x1e2d48,_0x213623){return _0x400058[_0x2ca8(0x4a)](_0x1e2d48,_0x213623);},'JtFkn':_0x400058[_0x2ca8(0x4b)],'uDLlm':function(_0x4bd6ef,_0x21d86c,_0x1c4926,_0x4dd661){return _0x400058[_0x2ca8(0x4c)](_0x4bd6ef,_0x21d86c,_0x1c4926,_0x4dd661);},'wQgbN':_0x400058[_0x2ca8(0x4d)],'dylVd':_0x2ca8(0x1c)};if(!_0x400058[_0x2ca8(0x4e)](_0xafd71a,_0x293a3d)){(0x0,_haptics[_0x2ca8(0x10)])(_haptics['HapticType'][_0x2ca8(0x4f)]),_reactNative[_0x2ca8(0x50)][_0x2ca8(0x51)](_0x2ca8(0x52),_0x400058[_0x2ca8(0x53)]);return;}(0x0,_haptics['triggerHaptic'])(_haptics[_0x2ca8(0x11)][_0x2ca8(0x54)]),_0x400058[_0x2ca8(0x3d)](_0x4a3012,!![]);try{if(_0x400058[_0x2ca8(0x55)](_0x400058[_0x2ca8(0x56)],_0x400058[_0x2ca8(0x57)])){console[_0x2ca8(0x58)](_0x400058[_0x2ca8(0x59)]),(0x0,_pinStorageUtils[_0x2ca8(0x5a)])(_0x293a3d),console[_0x2ca8(0x58)](_0x2ca8(0x5b));if(_0x2703bc){_0x400058[_0x2ca8(0x5c)](_0x2a9653,_0x2ca8(0x5d)),console[_0x2ca8(0x58)](_0x400058[_0x2ca8(0x5e)]);const _0x3b4c9d=await _biometricPinService[_0x2ca8(0x5f)][_0x2ca8(0x60)]();console[_0x2ca8(0x58)](_0x400058['DdtZn'],_0x3b4c9d);if(!_0x3b4c9d){if(_0x400058[_0x2ca8(0x61)]!=='zysrJ'){console['error'](_0x400058[_0x2ca8(0x62)]),_0x400058['naJWz'](_0x2a9653,_0x400058[_0x2ca8(0x63)]),_0x400058['naJWz'](_0x4a3012,![]);return;}else _0x400058[_0x2ca8(0x3d)](_0x4ad9f3,![]),_0x302bad(_0x46646a);}console[_0x2ca8(0x58)](_0x400058[_0x2ca8(0x64)]);const _0x2688a1=await _biometricPinService['biometricPinService'][_0x2ca8(0x65)](_0x293a3d);if(_0x2688a1){console[_0x2ca8(0x58)](_0x400058[_0x2ca8(0x66)]);const _0x450444=await _biometricPinService['biometricPinService'][_0x2ca8(0x67)]();if(_0x450444)_0x400058['dOGXB'](_0x400058[_0x2ca8(0x68)],_0x400058['ivGwm'])?(_0x400058['wYrRh'](_0x1e831b,_0x33c82f),_0x1b20f6(_0x4e2a9d)):(console[_0x2ca8(0x58)](_0x400058[_0x2ca8(0x69)]),_0x2a9653(_0x2ca8(0x2a)),(0x0,_haptics[_0x2ca8(0x10)])(_haptics[_0x2ca8(0x11)]['SUCCESS']),_0x400058[_0x2ca8(0x6a)](setTimeout,()=>{const _0x375a7c={'yZqXA':function(_0x5a1d95,_0x5a99e7){return _0x5372c9[_0x2ca8(0x6b)](_0x5a1d95,_0x5a99e7);},'dAGkb':_0x5372c9[_0x2ca8(0x6c)],'MsYLL':function(_0xf0e017,_0x317fb0){return _0x5372c9['RtoGt'](_0xf0e017,_0x317fb0);},'fmXAZ':function(_0x238abc,_0x338515){return _0x5372c9[_0x2ca8(0x6b)](_0x238abc,_0x338515);}};_0x2ca8(0x6d)!==_0x5372c9[_0x2ca8(0x6e)]?(_0x5372c9['pgmaN'](_0x4a3012,![]),_0x4a69d4(_0x293a3d)):(_0x39ca64[_0x2ca8(0x58)](_0x5372c9[_0x2ca8(0x6f)]),_0x5372c9[_0x2ca8(0x70)](_0x2ee4e6,_0x2ca8(0x21)),(0x0,_0x16c657[_0x2ca8(0x10)])(_0x4d8740[_0x2ca8(0x11)]['ERROR']),_0x3d8ce4[_0x2ca8(0x50)][_0x2ca8(0x51)](_0x5372c9[_0x2ca8(0x71)],_0x5372c9[_0x2ca8(0x72)],[{'text':_0x5372c9[_0x2ca8(0x73)],'onPress':()=>{_0x375a7c['yZqXA'](_0x4bbac0,![]),_0x375a7c[_0x2ca8(0x74)](_0x348f2d,_0x375a7c[_0x2ca8(0x75)]);}},{'text':_0x2ca8(0x76),'onPress':()=>{_0x375a7c[_0x2ca8(0x77)](_0xf575cf,![]),_0x375a7c[_0x2ca8(0x78)](_0x1d96ce,_0x12cd45);}}]));},0x320));else{const _0x1e0f49=_0x400058[_0x2ca8(0x79)][_0x2ca8(0x7a)]('|');let _0x403d82=0x0;while(!![]){switch(_0x1e0f49[_0x403d82++]){case'0':console[_0x2ca8(0x21)](_0x2ca8(0x7b));continue;case'1':_0x400058['JCRNx'](_0x2a9653,'error');continue;case'2':_0x400058['JCRNx'](_0x4a3012,![]);continue;case'3':_reactNative[_0x2ca8(0x50)][_0x2ca8(0x51)](_0x400058[_0x2ca8(0x7c)],_0x400058[_0x2ca8(0x7d)],[{'text':'OK'}]);continue;case'4':(0x0,_haptics[_0x2ca8(0x10)])(_haptics['HapticType'][_0x2ca8(0x4f)]);continue;}break;}}}else console[_0x2ca8(0x58)]('⚠️\x20Face\x20ID\x20authentication\x20was\x20cancelled\x20or\x20failed'),_0x400058[_0x2ca8(0x7e)](_0x2a9653,_0x400058['CiVjp']),(0x0,_haptics[_0x2ca8(0x10)])(_haptics['HapticType'][_0x2ca8(0x4f)]),_reactNative[_0x2ca8(0x50)][_0x2ca8(0x51)](_0x2ca8(0x7f),_0x400058[_0x2ca8(0x41)],[{'text':_0x400058[_0x2ca8(0x42)],'onPress':()=>{_0x400058[_0x2ca8(0x80)](_0x400058[_0x2ca8(0x81)],_0x400058[_0x2ca8(0x81)])?(_0x5372c9['otNpi'](_0x5c6d92,![]),_0x5e383c(_0x5372c9[_0x2ca8(0x6c)])):(_0x400058[_0x2ca8(0x82)](_0x4a3012,![]),_0x2a9653(_0x400058['wfdTQ']));}},{'text':_0x400058['YcsKy'],'onPress':()=>{const _0x1098cf={'CHvix':function(_0x13e74f,_0x4fa0c9){return _0x13e74f(_0x4fa0c9);}};_0x5372c9[_0x2ca8(0x83)](_0x5372c9[_0x2ca8(0x84)],_0x5372c9[_0x2ca8(0x84)])?(_0x1098cf[_0x2ca8(0x85)](_0x572488,![]),_0x1098cf['CHvix'](_0x1e36ea,_0x59e9af)):(_0x5372c9[_0x2ca8(0x86)](_0x4a3012,![]),_0x4a69d4(_0x293a3d));}}]);}else console[_0x2ca8(0x58)](_0x400058[_0x2ca8(0x87)]),_0x2a9653(_0x2ca8(0x1c)),_0x400058[_0x2ca8(0x7e)](_0x4a3012,![]),_0x400058['vVxVj'](_0x4a69d4,_0x293a3d);}else{if(_0x5372c9['ltSXO'](!_0x3afb06,_0x2557a9)&&_0x24b59a[_0x2ca8(0x0)])return _0x3412ed;var _0x1bb694,_0x4c921b,_0x4e4051={'__proto__':null,'default':_0x3eb0c8};if(_0x5372c9[_0x2ca8(0x88)](null,_0x47c4d7)||_0x5372c9[_0x2ca8(0x89)]!=typeof _0x217ea4&&_0x5372c9[_0x2ca8(0x8a)](_0x2ca8(0x4),typeof _0x485d9b))return _0x4e4051;if(_0x1bb694=_0x1c1ebe?_0x15dd8b:_0x56ff71){if(_0x1bb694['has'](_0xdf875a))return _0x1bb694[_0x2ca8(0xa)](_0x3372f5);_0x1bb694[_0x2ca8(0xb)](_0x2c336b,_0x4e4051);}for(const _0x3f7d06 in _0x446006)_0x5372c9[_0x2ca8(0x8b)]!==_0x3f7d06&&{}['hasOwnProperty'][_0x2ca8(0x8c)](_0x4bd75d,_0x3f7d06)&&((_0x4c921b=(_0x1bb694=_0x40e29d['defineProperty'])&&_0x584b1d[_0x2ca8(0xf)](_0x58b659,_0x3f7d06))&&(_0x4c921b[_0x2ca8(0xa)]||_0x4c921b[_0x2ca8(0xb)])?_0x5372c9[_0x2ca8(0x8d)](_0x1bb694,_0x4e4051,_0x3f7d06,_0x4c921b):_0x4e4051[_0x3f7d06]=_0x2a77c2[_0x3f7d06]);return _0x4e4051;}}catch(_0x5586ba){_0x400058[_0x2ca8(0x48)](_0x400058[_0x2ca8(0x8e)],_0x400058['kqkso'])?(_0x4f62a8[_0x2ca8(0x21)](_0x5372c9[_0x2ca8(0x8f)],_0x4a5ccf),_0x5372c9['otNpi'](_0x1d992a,![]),_0x4f3587(_0x5372c9[_0x2ca8(0x90)])):(console['error'](_0x400058[_0x2ca8(0x91)],_0x5586ba),_0x400058[_0x2ca8(0x82)](_0x2a9653,_0x2ca8(0x21)),_0x400058['YXhTM'](_0x4a3012,![]),(0x0,_haptics[_0x2ca8(0x10)])(_haptics[_0x2ca8(0x11)][_0x2ca8(0x4f)]),_reactNative[_0x2ca8(0x50)][_0x2ca8(0x51)](_0x400058[_0x2ca8(0x92)],_0x400058[_0x2ca8(0x93)],[{'text':'OK'}]));}},_0x5b92f7=()=>{(0x0,_haptics[_0x2ca8(0x10)])(_haptics[_0x2ca8(0x11)][_0x2ca8(0x54)]),_0x400058[_0x2ca8(0x94)](_0x2aa9a2);};(0x0,_react[_0x2ca8(0x95)])(()=>{const _0x414a35={'pHhNl':function(_0x19d761,_0x3b7f83){return _0x400058['zIPEi'](_0x19d761,_0x3b7f83);},'qCuYr':function(_0x4d7da3,_0x30f24a){return _0x400058['zborR'](_0x4d7da3,_0x30f24a);},'CfpFI':_0x400058[_0x2ca8(0x96)],'ytKve':function(_0x24d3df,_0x10b4fb,_0x53c435){return _0x400058[_0x2ca8(0x6a)](_0x24d3df,_0x10b4fb,_0x53c435);},'mGZFs':_0x2ca8(0x7b),'ofgBa':_0x400058[_0x2ca8(0x97)],'oGryv':function(_0x15321e,_0x152de6){return _0x400058[_0x2ca8(0x98)](_0x15321e,_0x152de6);},'tBhGs':_0x400058['QssFY'],'PqDAz':_0x2ca8(0x99)};if(_0x400058[_0x2ca8(0x9a)]===_0x400058['RaOgg'])_0x3dcfe7[_0x2ca8(0x58)](_0x2ca8(0x9b)),_0x414a35[_0x2ca8(0x9c)](_0x53d783,_0x414a35[_0x2ca8(0x9d)]),(0x0,_0x58cd33['triggerHaptic'])(_0x3689b4[_0x2ca8(0x11)]['SUCCESS']),_0x414a35[_0x2ca8(0x9e)](_0x4b5395,()=>{_0x414a35[_0x2ca8(0x9f)](_0x57761e,![]),_0x29b063(_0x39a195);},0x320);else{const _0x298366=async()=>{try{if(_0x400058[_0x2ca8(0x45)](_0x400058[_0x2ca8(0xa0)],_0x400058['tHNxd']))_0x3090e6[_0x2ca8(0x21)](_0x414a35[_0x2ca8(0xa1)]),_0x3e3504(_0x414a35[_0x2ca8(0xa2)]),_0x414a35[_0x2ca8(0xa3)](_0x218d6d,![]),(0x0,_0x30bbec['triggerHaptic'])(_0x22d2fb['HapticType'][_0x2ca8(0x4f)]),_0x5d7da8[_0x2ca8(0x50)][_0x2ca8(0x51)](_0x414a35[_0x2ca8(0xa4)],_0x414a35[_0x2ca8(0xa5)],[{'text':'OK'}]);else{_0x400058[_0x2ca8(0xa6)](_0x2a9653,_0x400058[_0x2ca8(0xa7)]);const _0x48d236=await _biometricPinService[_0x2ca8(0x5f)][_0x2ca8(0x60)]();_0x400058['YXhTM'](_0x490b5b,_0x48d236),_0x400058[_0x2ca8(0xa6)](_0x2a9653,_0x48d236?'available':_0x400058['eLTZA']),console['log'](_0x400058[_0x2ca8(0xa8)],_0x48d236);}}catch(_0x4269bc){console[_0x2ca8(0x21)](_0x400058[_0x2ca8(0x4d)],_0x4269bc),_0x490b5b(![]),_0x2a9653('unavailable');}};_0x4da0a8&&_0x400058[_0x2ca8(0xa9)](_0x298366);}},[_0x4da0a8]);const _0x3add36=Object[_0x2ca8(0x3e)](_0x307e0e)[_0x2ca8(0x3f)](_0xd2ceff=>_0xd2ceff);if(!_0x4da0a8)return null;return _react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative['View'],{'style':styles[_0x2ca8(0xab)]},_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xac)],{'style':styles[_0x2ca8(0xad)]},_react['default']['createElement'](_reactNative[_0x2ca8(0xae)],{'style':styles[_0x2ca8(0xaf)]},_0x400058['kbhGP']),_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative['Text'],{'style':styles['subtitle']},_0x400058[_0x2ca8(0xb0)])),_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xac)],{'style':styles[_0x2ca8(0xb1)]},_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xb2)],{'style':styles[_0x2ca8(0xb3)],'value':_0x293a3d,'onChangeText':_0x42055e,'placeholder':_0x2ca8(0xb4),'secureTextEntry':!![],'autoFocus':!![],'maxLength':0x14})),_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative['View'],{'style':styles[_0x2ca8(0xb5)]},_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xae)],{'style':styles[_0x2ca8(0xb6)]},_0x400058['VnGEn']),_react['default'][_0x2ca8(0xaa)](_reactNative['View'],{'style':styles[_0x2ca8(0xb7)]},_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xac)],{'style':[styles[_0x2ca8(0xb8)],_0x307e0e[_0x2ca8(0x3b)]&&styles[_0x2ca8(0xb9)]]},_0x307e0e[_0x2ca8(0x3b)]&&_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative['Text'],{'style':styles[_0x2ca8(0xba)]},'✓')),_react[_0x2ca8(0x1)]['createElement'](_reactNative[_0x2ca8(0xae)],{'style':[styles[_0x2ca8(0xbb)],_0x307e0e[_0x2ca8(0x3b)]&&styles[_0x2ca8(0xbc)]]},_0x400058[_0x2ca8(0xbd)])),_react[_0x2ca8(0x1)]['createElement'](_reactNative[_0x2ca8(0xac)],{'style':styles[_0x2ca8(0xb7)]},_react['default'][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xac)],{'style':[styles['checkbox'],_0x307e0e[_0x2ca8(0xbe)]&&styles[_0x2ca8(0xb9)]]},_0x307e0e[_0x2ca8(0xbe)]&&_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xae)],{'style':styles[_0x2ca8(0xba)]},'✓')),_react['default'][_0x2ca8(0xaa)](_reactNative['Text'],{'style':[styles['requirementText'],_0x307e0e[_0x2ca8(0xbe)]&&styles[_0x2ca8(0xbc)]]},_0x400058[_0x2ca8(0xbf)])),_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xac)],{'style':styles[_0x2ca8(0xb7)]},_react[_0x2ca8(0x1)]['createElement'](_reactNative[_0x2ca8(0xac)],{'style':[styles[_0x2ca8(0xb8)],_0x307e0e['number']&&styles[_0x2ca8(0xb9)]]},_0x307e0e[_0x2ca8(0xc0)]&&_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xae)],{'style':styles[_0x2ca8(0xba)]},'✓')),_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xae)],{'style':[styles[_0x2ca8(0xbb)],_0x307e0e['number']&&styles['requirementTextMet']]},_0x400058[_0x2ca8(0xc1)])),_react[_0x2ca8(0x1)]['createElement'](_reactNative[_0x2ca8(0xac)],{'style':styles[_0x2ca8(0xb7)]},_react[_0x2ca8(0x1)]['createElement'](_reactNative[_0x2ca8(0xac)],{'style':[styles[_0x2ca8(0xb8)],_0x307e0e['symbol']&&styles['checkboxChecked']]},_0x307e0e[_0x2ca8(0xc2)]&&_react[_0x2ca8(0x1)]['createElement'](_reactNative['Text'],{'style':styles[_0x2ca8(0xba)]},'✓')),_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xae)],{'style':[styles[_0x2ca8(0xbb)],_0x307e0e['symbol']&&styles[_0x2ca8(0xbc)]]},_0x2ca8(0xc3)))),_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative['View'],{'style':[styles['securityCard'],_0x400058['Yirjc'](_0x26c785,_0x2ca8(0x2a))&&styles[_0x2ca8(0xc4)],_0x26c785===_0x400058[_0x2ca8(0x97)]&&styles[_0x2ca8(0xc5)]]},_react[_0x2ca8(0x1)]['createElement'](_reactNative['View'],{'style':styles[_0x2ca8(0xc6)]},_0x400058['KzePX'](_0x26c785,_0x400058[_0x2ca8(0xa7)])&&_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative['ActivityIndicator'],{'size':_0x400058[_0x2ca8(0xc7)],'color':_theme['COLORS']['grey600']}),_0x400058[_0x2ca8(0x48)](_0x26c785,_0x400058[_0x2ca8(0xc8)])&&_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative['ActivityIndicator'],{'size':_0x400058['YsYRd'],'color':'#D4A536'}),_0x26c785===_0x400058[_0x2ca8(0x43)]&&_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xae)],{'style':styles[_0x2ca8(0xc9)]},'🔐'),_0x400058[_0x2ca8(0xca)](_0x26c785,_0x400058[_0x2ca8(0x63)])&&_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative['Text'],{'style':styles[_0x2ca8(0xc9)]},'⚠️'),_0x400058[_0x2ca8(0xcb)](_0x26c785,_0x400058[_0x2ca8(0x96)])&&_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xae)],{'style':styles[_0x2ca8(0xc9)]},'✅'),_0x400058[_0x2ca8(0xcc)](_0x26c785,_0x400058[_0x2ca8(0x97)])&&_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xae)],{'style':styles[_0x2ca8(0xc9)]},'❌')),_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xac)],{'style':styles['securityTextContainer']},_react['default']['createElement'](_reactNative['Text'],{'style':styles[_0x2ca8(0xcd)]},_0x26c785===_0x400058[_0x2ca8(0xa7)]&&_0x400058[_0x2ca8(0xce)],_0x400058['jdhfJ'](_0x26c785,_0x400058[_0x2ca8(0x43)])&&_0x400058[_0x2ca8(0xcf)],_0x26c785===_0x400058[_0x2ca8(0x63)]&&_0x400058[_0x2ca8(0xd0)],_0x400058[_0x2ca8(0xcb)](_0x26c785,_0x400058[_0x2ca8(0xc8)])&&_0x400058['wcCtb'],_0x26c785==='success'&&_0x400058[_0x2ca8(0xd1)],_0x400058[_0x2ca8(0xcb)](_0x26c785,_0x400058['CiVjp'])&&_0x400058[_0x2ca8(0xd2)]),_react['default']['createElement'](_reactNative[_0x2ca8(0xae)],{'style':styles[_0x2ca8(0xd3)]},_0x400058[_0x2ca8(0x48)](_0x26c785,_0x400058[_0x2ca8(0xa7)])&&_0x2ca8(0xd4),_0x26c785===_0x400058['wfdTQ']&&_0x400058[_0x2ca8(0xd5)],_0x400058[_0x2ca8(0x48)](_0x26c785,_0x400058['eLTZA'])&&_0x400058[_0x2ca8(0xd6)],_0x26c785===_0x400058[_0x2ca8(0xc8)]&&_0x400058['ApiHa'],_0x400058[_0x2ca8(0xd7)](_0x26c785,_0x400058[_0x2ca8(0x96)])&&_0x400058[_0x2ca8(0xd8)],_0x400058[_0x2ca8(0x48)](_0x26c785,_0x400058[_0x2ca8(0x97)])&&_0x2ca8(0xd9)))),_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xac)],{'style':styles[_0x2ca8(0xda)]},_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xdb)],{'style':[styles[_0x2ca8(0xdc)],_0x3add36&&styles['continueButtonActive']],'onPress':_0x1b326c,'disabled':!_0x3add36||_0x559a65},_0x559a65?_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xdd)],{'size':_0x400058['YsYRd'],'color':_0x400058[_0x2ca8(0xde)]}):_react[_0x2ca8(0x1)][_0x2ca8(0xaa)](_reactNative[_0x2ca8(0xae)],{'style':[styles[_0x2ca8(0xdf)],_0x3add36&&styles[_0x2ca8(0xe0)]]},_0x400058['kJJAC']))));};exports['PinCreationScreen']=PinCreationScreen;const styles=_reactNative[_0x2ca8(0xe1)][_0x2ca8(0xe2)]({'container':{'flex':0x1,'backgroundColor':_theme['COLORS'][_0x2ca8(0xe3)],'paddingHorizontal':0x18,'paddingTop':0x28},'titleContainer':{'alignItems':_0x2ca8(0xe4),'marginBottom':0x18,'paddingTop':0x0,'marginTop':0x0},'title':{'fontSize':0x18,'fontWeight':'700','color':_theme['COLORS'][_0x2ca8(0xe5)],'marginBottom':0x8,'fontFamily':_0x2ca8(0xe6)},'subtitle':{'fontSize':0x10,'color':_theme[_0x2ca8(0xe7)][_0x2ca8(0xe8)],'lineHeight':0x18,'fontFamily':_0x2ca8(0xe9)},'pinContainer':{'marginBottom':0x20},'pinInput':{'backgroundColor':_0x2ca8(0xea),'borderRadius':0xc,'paddingVertical':0x10,'paddingHorizontal':0x10,'fontSize':0x10,'fontFamily':_0x2ca8(0xe9),'borderWidth':0x1,'borderColor':_0x2ca8(0xeb)},'requirementsContainer':{'marginBottom':0x20},'requirementsTitle':{'fontSize':0x10,'fontWeight':_0x2ca8(0xec),'color':_theme[_0x2ca8(0xe7)][_0x2ca8(0xe5)],'marginBottom':0x10,'fontFamily':_0x2ca8(0xe9)},'requirementItem':{'flexDirection':'row','alignItems':_0x2ca8(0xe4),'marginBottom':0xc},'checkbox':{'width':0x14,'height':0x14,'borderRadius':0xa,'borderWidth':0x2,'borderColor':_0x2ca8(0xeb),'marginRight':0xc,'alignItems':_0x2ca8(0xe4),'justifyContent':'center'},'checkboxChecked':{'borderColor':_0x2ca8(0xed),'backgroundColor':_0x2ca8(0xed)},'checkmark':{'color':_0x2ca8(0x38),'fontSize':0xc,'fontWeight':_0x2ca8(0xee)},'requirementText':{'fontSize':0xe,'color':_theme[_0x2ca8(0xe7)][_0x2ca8(0xe8)],'fontFamily':_0x2ca8(0xe9),'flex':0x1},'requirementTextMet':{'color':_theme[_0x2ca8(0xe7)][_0x2ca8(0xe5)]},'securityCard':{'backgroundColor':_0x2ca8(0xea),'borderRadius':0xc,'padding':0x10,'flexDirection':_0x2ca8(0xef),'alignItems':_0x2ca8(0xe4),'marginBottom':0x18,'borderWidth':0x1,'borderColor':_0x2ca8(0xeb)},'securityCardSuccess':{'backgroundColor':_0x2ca8(0xf0),'borderColor':_0x2ca8(0xf1)},'securityCardError':{'backgroundColor':'#FEF2F2','borderColor':_0x2ca8(0xf2)},'securityIconContainer':{'marginRight':0xc},'securityIcon':{'fontSize':0x18},'securityTextContainer':{'flex':0x1},'securityTitle':{'fontSize':0xe,'fontWeight':_0x2ca8(0xec),'color':_theme['COLORS'][_0x2ca8(0xe5)],'marginBottom':0x4,'fontFamily':_0x2ca8(0xe9)},'securityDescription':{'fontSize':0xd,'color':_theme[_0x2ca8(0xe7)]['grey600'],'lineHeight':0x12,'fontFamily':_0x2ca8(0xe9)},'buttonContainer':{'marginTop':_0x2ca8(0xf3),'paddingBottom':0x22},'continueButton':{'backgroundColor':'#E5E5E5','borderRadius':0x19,'paddingVertical':0x10,'alignItems':_0x2ca8(0xe4),'justifyContent':_0x2ca8(0xe4)},'continueButtonActive':{'backgroundColor':'#2D3436'},'continueButtonText':{'fontSize':0x10,'fontWeight':_0x2ca8(0xec),'color':_0x2ca8(0xf4),'fontFamily':'Inter'},'continueButtonTextActive':{'color':_0x2ca8(0x38)}});var _default=exports[_0x2ca8(0x1)]=PinCreationScreen;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.PinCreationScreen = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _theme = require("../theme");
|
|
10
|
+
var _haptics = require("../utils/haptics");
|
|
11
|
+
var _biometricPinService = require("../services/biometricPinService");
|
|
12
|
+
var _pinStorageUtils = require("../services/pinStorageUtils");
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); }
|
|
14
|
+
const PinCreationScreen = ({
|
|
15
|
+
visible,
|
|
16
|
+
onComplete,
|
|
17
|
+
onBack
|
|
18
|
+
}) => {
|
|
19
|
+
const [pin, setPin] = (0, _react.useState)('');
|
|
20
|
+
const [requirements, setRequirements] = (0, _react.useState)({
|
|
21
|
+
length: false,
|
|
22
|
+
uppercase: false,
|
|
23
|
+
number: false,
|
|
24
|
+
symbol: false
|
|
25
|
+
});
|
|
26
|
+
const [isLoading, setIsLoading] = (0, _react.useState)(false);
|
|
27
|
+
const [biometricAvailable, setBiometricAvailable] = (0, _react.useState)(false);
|
|
28
|
+
const [biometricStatus, setBiometricStatus] = (0, _react.useState)('checking');
|
|
29
|
+
const validatePin = pinText => {
|
|
30
|
+
const newRequirements = {
|
|
31
|
+
length: pinText.length >= 8,
|
|
32
|
+
uppercase: /[A-Z]/.test(pinText),
|
|
33
|
+
number: /[0-9]/.test(pinText),
|
|
34
|
+
symbol: /[!@#$%^&*(),.?":{}|<>]/.test(pinText)
|
|
35
|
+
};
|
|
36
|
+
setRequirements(newRequirements);
|
|
37
|
+
return Object.values(newRequirements).every(req => req);
|
|
38
|
+
};
|
|
39
|
+
const handlePinChange = text => {
|
|
40
|
+
setPin(text);
|
|
41
|
+
validatePin(text);
|
|
42
|
+
};
|
|
43
|
+
const handleContinue = async () => {
|
|
44
|
+
if (!validatePin(pin)) {
|
|
45
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
|
|
46
|
+
_reactNative.Alert.alert('Invalid PIN', 'Please ensure your PIN meets all requirements.');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
|
|
50
|
+
setIsLoading(true);
|
|
51
|
+
try {
|
|
52
|
+
console.log('🔐 Starting PIN creation process...');
|
|
53
|
+
|
|
54
|
+
// Store PIN temporarily for the onboarding flow first
|
|
55
|
+
(0, _pinStorageUtils.setTemporaryPin)(pin);
|
|
56
|
+
console.log('📝 PIN stored temporarily for onboarding');
|
|
57
|
+
|
|
58
|
+
// If biometric is available, immediately trigger Face ID authentication
|
|
59
|
+
if (biometricAvailable) {
|
|
60
|
+
setBiometricStatus('storing');
|
|
61
|
+
console.log('🔐 [PIN CREATION] Biometric storage enabled, starting biometric flow...');
|
|
62
|
+
|
|
63
|
+
// Double-check biometric availability right before triggering
|
|
64
|
+
const biometricStillAvailable = await _biometricPinService.biometricPinService.isBiometricAvailable();
|
|
65
|
+
console.log('📱 [PIN CREATION] Biometric available before storage:', biometricStillAvailable);
|
|
66
|
+
if (!biometricStillAvailable) {
|
|
67
|
+
console.error('❌ [PIN CREATION] Face ID not available on this device');
|
|
68
|
+
setBiometricStatus('unavailable');
|
|
69
|
+
setIsLoading(false);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Immediately attempt to store PIN with biometric authentication
|
|
74
|
+
console.log('🔐 [PIN CREATION] Triggering biometric authentication for PIN storage...');
|
|
75
|
+
|
|
76
|
+
// This will immediately show the Face ID prompt
|
|
77
|
+
const stored = await _biometricPinService.biometricPinService.storePinWithBiometric(pin);
|
|
78
|
+
if (stored) {
|
|
79
|
+
console.log('✅ PIN stored successfully with Face ID');
|
|
80
|
+
|
|
81
|
+
// Verify the PIN was actually stored by checking if it can be retrieved
|
|
82
|
+
const isStored = await _biometricPinService.biometricPinService.isPinStored();
|
|
83
|
+
if (isStored) {
|
|
84
|
+
console.log('✅ PIN storage verified - proceeding with onboarding');
|
|
85
|
+
setBiometricStatus('success');
|
|
86
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.SUCCESS);
|
|
87
|
+
|
|
88
|
+
// Brief success state, then continue
|
|
89
|
+
setTimeout(() => {
|
|
90
|
+
setIsLoading(false);
|
|
91
|
+
onComplete(pin);
|
|
92
|
+
}, 800);
|
|
93
|
+
} else {
|
|
94
|
+
console.error('❌ PIN storage verification failed');
|
|
95
|
+
setBiometricStatus('error');
|
|
96
|
+
setIsLoading(false);
|
|
97
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
|
|
98
|
+
_reactNative.Alert.alert('PIN Storage Error', 'PIN storage verification failed. Please try again.', [{
|
|
99
|
+
text: 'OK'
|
|
100
|
+
}]);
|
|
101
|
+
}
|
|
102
|
+
} else {
|
|
103
|
+
console.log('⚠️ Face ID authentication was cancelled or failed');
|
|
104
|
+
setBiometricStatus('error');
|
|
105
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
|
|
106
|
+
|
|
107
|
+
// Show error but still allow continuation
|
|
108
|
+
_reactNative.Alert.alert('Face ID Setup', 'Face ID authentication was cancelled or failed. Your PIN is still saved securely.', [{
|
|
109
|
+
text: 'Try Again',
|
|
110
|
+
onPress: () => {
|
|
111
|
+
setIsLoading(false);
|
|
112
|
+
setBiometricStatus('available');
|
|
113
|
+
}
|
|
114
|
+
}, {
|
|
115
|
+
text: 'Continue Without Face ID',
|
|
116
|
+
onPress: () => {
|
|
117
|
+
setIsLoading(false);
|
|
118
|
+
onComplete(pin);
|
|
119
|
+
}
|
|
120
|
+
}]);
|
|
121
|
+
}
|
|
122
|
+
} else {
|
|
123
|
+
console.log('📱 Biometric not available, continuing without Face ID');
|
|
124
|
+
setBiometricStatus('unavailable');
|
|
125
|
+
setIsLoading(false);
|
|
126
|
+
onComplete(pin);
|
|
127
|
+
}
|
|
128
|
+
} catch (error) {
|
|
129
|
+
console.error('❌ Error in PIN creation process:', error);
|
|
130
|
+
setBiometricStatus('error');
|
|
131
|
+
setIsLoading(false);
|
|
132
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
|
|
133
|
+
_reactNative.Alert.alert('PIN Creation Error', 'There was an issue creating your PIN. Please try again.', [{
|
|
134
|
+
text: 'OK'
|
|
135
|
+
}]);
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
const handleBack = () => {
|
|
139
|
+
(0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
|
|
140
|
+
onBack();
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
// Check biometric availability on component mount
|
|
144
|
+
(0, _react.useEffect)(() => {
|
|
145
|
+
const checkBiometric = async () => {
|
|
146
|
+
try {
|
|
147
|
+
setBiometricStatus('checking');
|
|
148
|
+
const available = await _biometricPinService.biometricPinService.isBiometricAvailable();
|
|
149
|
+
setBiometricAvailable(available);
|
|
150
|
+
setBiometricStatus(available ? 'available' : 'unavailable');
|
|
151
|
+
console.log('📱 Biometric availability check:', available);
|
|
152
|
+
} catch (error) {
|
|
153
|
+
console.error('❌ Error checking biometric availability:', error);
|
|
154
|
+
setBiometricAvailable(false);
|
|
155
|
+
setBiometricStatus('unavailable');
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
if (visible) {
|
|
159
|
+
checkBiometric();
|
|
160
|
+
}
|
|
161
|
+
}, [visible]);
|
|
162
|
+
const allRequirementsMet = Object.values(requirements).every(req => req);
|
|
163
|
+
if (!visible) return null;
|
|
164
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
165
|
+
style: styles.container
|
|
166
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
167
|
+
style: styles.titleContainer
|
|
168
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
169
|
+
style: styles.title
|
|
170
|
+
}, "Create a PIN"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
171
|
+
style: styles.subtitle
|
|
172
|
+
}, "A PIN so only you have access to your data.")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
173
|
+
style: styles.pinContainer
|
|
174
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
|
|
175
|
+
style: styles.pinInput,
|
|
176
|
+
value: pin,
|
|
177
|
+
onChangeText: handlePinChange,
|
|
178
|
+
placeholder: "Enter your PIN",
|
|
179
|
+
secureTextEntry: true,
|
|
180
|
+
autoFocus: true,
|
|
181
|
+
maxLength: 20
|
|
182
|
+
})), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
183
|
+
style: styles.requirementsContainer
|
|
184
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
185
|
+
style: styles.requirementsTitle
|
|
186
|
+
}, "Your PIN must:"), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
187
|
+
style: styles.requirementItem
|
|
188
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
189
|
+
style: [styles.checkbox, requirements.length && styles.checkboxChecked]
|
|
190
|
+
}, requirements.length && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
191
|
+
style: styles.checkmark
|
|
192
|
+
}, "\u2713")), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
193
|
+
style: [styles.requirementText, requirements.length && styles.requirementTextMet]
|
|
194
|
+
}, "Be at least 8 characters in length.")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
195
|
+
style: styles.requirementItem
|
|
196
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
197
|
+
style: [styles.checkbox, requirements.uppercase && styles.checkboxChecked]
|
|
198
|
+
}, requirements.uppercase && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
199
|
+
style: styles.checkmark
|
|
200
|
+
}, "\u2713")), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
201
|
+
style: [styles.requirementText, requirements.uppercase && styles.requirementTextMet]
|
|
202
|
+
}, "Contain an uppercase letter.")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
203
|
+
style: styles.requirementItem
|
|
204
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
205
|
+
style: [styles.checkbox, requirements.number && styles.checkboxChecked]
|
|
206
|
+
}, requirements.number && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
207
|
+
style: styles.checkmark
|
|
208
|
+
}, "\u2713")), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
209
|
+
style: [styles.requirementText, requirements.number && styles.requirementTextMet]
|
|
210
|
+
}, "Contain a number.")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
211
|
+
style: styles.requirementItem
|
|
212
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
213
|
+
style: [styles.checkbox, requirements.symbol && styles.checkboxChecked]
|
|
214
|
+
}, requirements.symbol && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
215
|
+
style: styles.checkmark
|
|
216
|
+
}, "\u2713")), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
217
|
+
style: [styles.requirementText, requirements.symbol && styles.requirementTextMet]
|
|
218
|
+
}, "Contain a symbol (e.g. !@#$%^&*)."))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
219
|
+
style: [styles.securityCard, biometricStatus === 'success' && styles.securityCardSuccess, biometricStatus === 'error' && styles.securityCardError]
|
|
220
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
221
|
+
style: styles.securityIconContainer
|
|
222
|
+
}, biometricStatus === 'checking' && /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
|
|
223
|
+
size: "small",
|
|
224
|
+
color: _theme.COLORS.grey600
|
|
225
|
+
}), biometricStatus === 'storing' && /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
|
|
226
|
+
size: "small",
|
|
227
|
+
color: "#D4A536"
|
|
228
|
+
}), biometricStatus === 'available' && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
229
|
+
style: styles.securityIcon
|
|
230
|
+
}, "\uD83D\uDD10"), biometricStatus === 'unavailable' && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
231
|
+
style: styles.securityIcon
|
|
232
|
+
}, "\u26A0\uFE0F"), biometricStatus === 'success' && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
233
|
+
style: styles.securityIcon
|
|
234
|
+
}, "\u2705"), biometricStatus === 'error' && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
235
|
+
style: styles.securityIcon
|
|
236
|
+
}, "\u274C")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
237
|
+
style: styles.securityTextContainer
|
|
238
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
239
|
+
style: styles.securityTitle
|
|
240
|
+
}, biometricStatus === 'checking' && 'Checking Face ID...', biometricStatus === 'available' && 'Enhanced Security', biometricStatus === 'unavailable' && 'Face ID Unavailable', biometricStatus === 'storing' && 'Securing with Face ID...', biometricStatus === 'success' && 'PIN Secured with Face ID', biometricStatus === 'error' && 'Face ID Setup Failed'), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
241
|
+
style: styles.securityDescription
|
|
242
|
+
}, biometricStatus === 'checking' && 'Verifying Face ID availability on your device.', biometricStatus === 'available' && 'We use Face ID to ensure only you can access your data.', biometricStatus === 'unavailable' && 'Face ID is not available on this device. Your PIN will be stored securely.', biometricStatus === 'storing' && 'Please authenticate with Face ID to secure your PIN.', biometricStatus === 'success' && 'Your PIN is now protected with Face ID authentication.', biometricStatus === 'error' && 'Face ID setup failed, but your PIN is stored securely.'))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
243
|
+
style: styles.buttonContainer
|
|
244
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
245
|
+
style: [styles.continueButton, allRequirementsMet && styles.continueButtonActive],
|
|
246
|
+
onPress: handleContinue,
|
|
247
|
+
disabled: !allRequirementsMet || isLoading
|
|
248
|
+
}, isLoading ? /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
|
|
249
|
+
size: "small",
|
|
250
|
+
color: "#FFFFFF"
|
|
251
|
+
}) : /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
252
|
+
style: [styles.continueButtonText, allRequirementsMet && styles.continueButtonTextActive]
|
|
253
|
+
}, "Continue"))));
|
|
254
|
+
};
|
|
255
|
+
exports.PinCreationScreen = PinCreationScreen;
|
|
256
|
+
const styles = _reactNative.StyleSheet.create({
|
|
257
|
+
container: {
|
|
258
|
+
flex: 1,
|
|
259
|
+
backgroundColor: _theme.COLORS.surface,
|
|
260
|
+
paddingHorizontal: 24,
|
|
261
|
+
paddingTop: 40
|
|
262
|
+
},
|
|
263
|
+
titleContainer: {
|
|
264
|
+
alignItems: 'center',
|
|
265
|
+
marginBottom: 24,
|
|
266
|
+
paddingTop: 0,
|
|
267
|
+
marginTop: 0
|
|
268
|
+
},
|
|
269
|
+
title: {
|
|
270
|
+
fontSize: 24,
|
|
271
|
+
fontWeight: '700',
|
|
272
|
+
color: _theme.COLORS.grey800,
|
|
273
|
+
marginBottom: 8,
|
|
274
|
+
fontFamily: 'IBM Plex Sans'
|
|
275
|
+
},
|
|
276
|
+
subtitle: {
|
|
277
|
+
fontSize: 16,
|
|
278
|
+
color: _theme.COLORS.grey600,
|
|
279
|
+
lineHeight: 24,
|
|
280
|
+
fontFamily: 'Inter'
|
|
281
|
+
},
|
|
282
|
+
pinContainer: {
|
|
283
|
+
marginBottom: 32
|
|
284
|
+
},
|
|
285
|
+
pinInput: {
|
|
286
|
+
backgroundColor: '#F8F9FA',
|
|
287
|
+
borderRadius: 12,
|
|
288
|
+
paddingVertical: 16,
|
|
289
|
+
paddingHorizontal: 16,
|
|
290
|
+
fontSize: 16,
|
|
291
|
+
fontFamily: 'Inter',
|
|
292
|
+
borderWidth: 1,
|
|
293
|
+
borderColor: '#E5E5E5'
|
|
294
|
+
},
|
|
295
|
+
requirementsContainer: {
|
|
296
|
+
marginBottom: 32
|
|
297
|
+
},
|
|
298
|
+
requirementsTitle: {
|
|
299
|
+
fontSize: 16,
|
|
300
|
+
fontWeight: '600',
|
|
301
|
+
color: _theme.COLORS.grey800,
|
|
302
|
+
marginBottom: 16,
|
|
303
|
+
fontFamily: 'Inter'
|
|
304
|
+
},
|
|
305
|
+
requirementItem: {
|
|
306
|
+
flexDirection: 'row',
|
|
307
|
+
alignItems: 'center',
|
|
308
|
+
marginBottom: 12
|
|
309
|
+
},
|
|
310
|
+
checkbox: {
|
|
311
|
+
width: 20,
|
|
312
|
+
height: 20,
|
|
313
|
+
borderRadius: 10,
|
|
314
|
+
borderWidth: 2,
|
|
315
|
+
borderColor: '#E5E5E5',
|
|
316
|
+
marginRight: 12,
|
|
317
|
+
alignItems: 'center',
|
|
318
|
+
justifyContent: 'center'
|
|
319
|
+
},
|
|
320
|
+
checkboxChecked: {
|
|
321
|
+
borderColor: '#4CD964',
|
|
322
|
+
backgroundColor: '#4CD964'
|
|
323
|
+
},
|
|
324
|
+
checkmark: {
|
|
325
|
+
color: '#FFFFFF',
|
|
326
|
+
fontSize: 12,
|
|
327
|
+
fontWeight: 'bold'
|
|
328
|
+
},
|
|
329
|
+
requirementText: {
|
|
330
|
+
fontSize: 14,
|
|
331
|
+
color: _theme.COLORS.grey600,
|
|
332
|
+
fontFamily: 'Inter',
|
|
333
|
+
flex: 1
|
|
334
|
+
},
|
|
335
|
+
requirementTextMet: {
|
|
336
|
+
color: _theme.COLORS.grey800
|
|
337
|
+
},
|
|
338
|
+
securityCard: {
|
|
339
|
+
backgroundColor: '#F8F9FA',
|
|
340
|
+
borderRadius: 12,
|
|
341
|
+
padding: 16,
|
|
342
|
+
flexDirection: 'row',
|
|
343
|
+
alignItems: 'center',
|
|
344
|
+
marginBottom: 24,
|
|
345
|
+
borderWidth: 1,
|
|
346
|
+
borderColor: '#E5E5E5'
|
|
347
|
+
},
|
|
348
|
+
securityCardSuccess: {
|
|
349
|
+
backgroundColor: '#F0FDF4',
|
|
350
|
+
borderColor: '#22C55E'
|
|
351
|
+
},
|
|
352
|
+
securityCardError: {
|
|
353
|
+
backgroundColor: '#FEF2F2',
|
|
354
|
+
borderColor: '#EF4444'
|
|
355
|
+
},
|
|
356
|
+
securityIconContainer: {
|
|
357
|
+
marginRight: 12
|
|
358
|
+
},
|
|
359
|
+
securityIcon: {
|
|
360
|
+
fontSize: 24
|
|
361
|
+
},
|
|
362
|
+
securityTextContainer: {
|
|
363
|
+
flex: 1
|
|
364
|
+
},
|
|
365
|
+
securityTitle: {
|
|
366
|
+
fontSize: 14,
|
|
367
|
+
fontWeight: '600',
|
|
368
|
+
color: _theme.COLORS.grey800,
|
|
369
|
+
marginBottom: 4,
|
|
370
|
+
fontFamily: 'Inter'
|
|
371
|
+
},
|
|
372
|
+
securityDescription: {
|
|
373
|
+
fontSize: 13,
|
|
374
|
+
color: _theme.COLORS.grey600,
|
|
375
|
+
lineHeight: 18,
|
|
376
|
+
fontFamily: 'Inter'
|
|
377
|
+
},
|
|
378
|
+
buttonContainer: {
|
|
379
|
+
marginTop: 'auto',
|
|
380
|
+
paddingBottom: 34
|
|
381
|
+
},
|
|
382
|
+
continueButton: {
|
|
383
|
+
backgroundColor: '#E5E5E5',
|
|
384
|
+
borderRadius: 25,
|
|
385
|
+
paddingVertical: 16,
|
|
386
|
+
alignItems: 'center',
|
|
387
|
+
justifyContent: 'center'
|
|
388
|
+
},
|
|
389
|
+
continueButtonActive: {
|
|
390
|
+
backgroundColor: '#2D3436'
|
|
391
|
+
},
|
|
392
|
+
continueButtonText: {
|
|
393
|
+
fontSize: 16,
|
|
394
|
+
fontWeight: '600',
|
|
395
|
+
color: '#999999',
|
|
396
|
+
fontFamily: 'Inter'
|
|
397
|
+
},
|
|
398
|
+
continueButtonTextActive: {
|
|
399
|
+
color: '#FFFFFF'
|
|
400
|
+
}
|
|
401
|
+
});
|
|
402
|
+
var _default = exports.default = PinCreationScreen;
|
|
403
|
+
//# sourceMappingURL=PinCreationScreen.js.map
|