diff --git a/android/app/build.gradle b/android/app/build.gradle index db1b0d231..4ea562e0a 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -364,7 +364,8 @@ project.ext.vectoricons = [ 'AntDesign.ttf', 'Foundation.ttf', 'Entypo.ttf', - 'MaterialIcons.ttf' + 'MaterialIcons.ttf', + 'Feather.ttf' ] ] diff --git a/assets/translations/en.json b/assets/translations/en.json index baf4ff103..846cdb832 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -227,11 +227,14 @@ "last_name": "Last Name", "password_placeholder": "Password", "please_accept_terms": "Please accept terms of service.", - "password_at_least_characters": "Password must be at least 6 characters", "email_looks_incomplete": "Looks like this email is incomplete", - "password_no_spaces": "Password should not contain blank spaces", "sign_up_agree": "By signing up, you agree to MindLogger’s" }, + "password_requirements": { + "at_least_characters": "6 characters", + "no_blank_spaces": "no blank spaces", + "must_include": "Password must include:" + }, "geolocation": { "get_location": "GET LOCATION", "must_enable_location": "You must enable Location services to complete this task. Please grant MindLogger permission in your iOS Settings and press the button again.", diff --git a/assets/translations/fr.json b/assets/translations/fr.json index 2b5048358..813609e0d 100644 --- a/assets/translations/fr.json +++ b/assets/translations/fr.json @@ -213,11 +213,14 @@ "last_name": "Nom", "password_placeholder": "Mot de passe", "please_accept_terms": "Veuillez accepter les conditions d'utilisation.", - "password_at_least_characters": "Le mot de passe doit être au moins de 6 caractères", "email_looks_incomplete": "Il semble que cet e-mail soit incomplet", - "password_no_spaces": "Le mot de passe ne doit pas contenir d'espaces vides", "sign_up_agree": "By signing up, you agree to MindLogger’s" }, + "password_requirements": { + "at_least_characters": "6 caractères", + "no_blank_spaces": "pas d'espaces vides", + "must_include": "Le mot de passe doit inclure:" + }, "geolocation": { "get_location": "LOCALISATION", "must_enable_location": "Vous devez permettre aux services de localisation d'accomplir cette tâche. Veuillez autoriser MindLogger dans les paramètres iOS et appuyez à nouveau sur le bouton.", diff --git a/ios/MindloggerMobile dev-Info.plist b/ios/MindloggerMobile dev-Info.plist index 8210b09e4..7e4f4f5ca 100644 --- a/ios/MindloggerMobile dev-Info.plist +++ b/ios/MindloggerMobile dev-Info.plist @@ -67,6 +67,7 @@ Foundation.ttf Entypo.ttf MaterialIcons.ttf + Feather.ttf UIBackgroundModes diff --git a/ios/MindloggerMobile qa-Info.plist b/ios/MindloggerMobile qa-Info.plist index e57c7cd45..ae7f80088 100644 --- a/ios/MindloggerMobile qa-Info.plist +++ b/ios/MindloggerMobile qa-Info.plist @@ -67,6 +67,7 @@ Foundation.ttf Entypo.ttf MaterialIcons.ttf + Feather.ttf UIBackgroundModes diff --git a/ios/MindloggerMobile staging-Info.plist b/ios/MindloggerMobile staging-Info.plist index 11b6ec285..1df4e46d8 100644 --- a/ios/MindloggerMobile staging-Info.plist +++ b/ios/MindloggerMobile staging-Info.plist @@ -67,6 +67,7 @@ Foundation.ttf Entypo.ttf MaterialIcons.ttf + Feather.ttf UIBackgroundModes diff --git a/ios/MindloggerMobile uat-Info.plist b/ios/MindloggerMobile uat-Info.plist index b37deadae..6d56a2ee9 100644 --- a/ios/MindloggerMobile uat-Info.plist +++ b/ios/MindloggerMobile uat-Info.plist @@ -67,6 +67,7 @@ Foundation.ttf Entypo.ttf MaterialIcons.ttf + Feather.ttf UIBackgroundModes diff --git a/ios/MindloggerMobile.xcodeproj/project.pbxproj b/ios/MindloggerMobile.xcodeproj/project.pbxproj index 18b4994fa..e13198291 100644 --- a/ios/MindloggerMobile.xcodeproj/project.pbxproj +++ b/ios/MindloggerMobile.xcodeproj/project.pbxproj @@ -67,7 +67,6 @@ 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 143DBD48109F8C5B0574C468 /* libPods-MindloggerMobileCommonPods-MindloggerMobileDev.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B0CF32465AE0FEAF18650A51 /* libPods-MindloggerMobileCommonPods-MindloggerMobileDev.a */; }; 288FAA9A29C882AB0089AB98 /* FlankerSandboxView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01D339DE29C2E672003935D9 /* FlankerSandboxView.swift */; }; 288FAA9B29C882AC0089AB98 /* FlankerSandboxView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01D339DE29C2E672003935D9 /* FlankerSandboxView.swift */; }; 288FAA9C29C882B00089AB98 /* FlankerSandboxView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01D339DE29C2E672003935D9 /* FlankerSandboxView.swift */; }; @@ -87,7 +86,6 @@ 288FAB3729C88A590089AB98 /* FlankerViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 288FAB2629C88A590089AB98 /* FlankerViewManager.swift */; }; 288FAB3829C88A590089AB98 /* UIImageView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 288FAB2829C88A590089AB98 /* UIImageView+Extensions.swift */; }; 288FAB3929C88A590089AB98 /* ResultView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 288FAB2929C88A590089AB98 /* ResultView.swift */; }; - 3B8689E401F36349D9697DA5 /* libPods-MindloggerMobileCommonPods-MindloggerMobileTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 73A2B1EDC50A14EC123FD1CE /* libPods-MindloggerMobileCommonPods-MindloggerMobileTests.a */; }; 4E2C2E9229A3826900BAEF10 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4E2C2E9129A3826900BAEF10 /* Entypo.ttf */; }; 4E2C2E9329A3826900BAEF10 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4E2C2E9129A3826900BAEF10 /* Entypo.ttf */; }; 4E2C2E9429A3826900BAEF10 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4E2C2E9129A3826900BAEF10 /* Entypo.ttf */; }; @@ -104,12 +102,20 @@ 4E9EC54929BA279C002F69A5 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4E9EC54629BA279C002F69A5 /* MaterialIcons.ttf */; }; 4E9EC54A29BA279C002F69A5 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4E9EC54629BA279C002F69A5 /* MaterialIcons.ttf */; }; 4EBCD5B22971514E00D3C04C /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4EBCD5B12971514E00D3C04C /* Foundation.ttf */; }; - 51A6E1C8BEDF3FA779731DCF /* (null) in Frameworks */ = {isa = PBXBuildFile; }; - 576A514B56E3A67507F07537 /* libPods-MindloggerMobileCommonPods-MindloggerMobileQA.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 21757FDADD80F784BA19F9CE /* libPods-MindloggerMobileCommonPods-MindloggerMobileQA.a */; }; - 64E12A71F27F432DC162ADD4 /* libPods-MindloggerMobileCommonPods-MindloggerMobile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D7DDDCABAD8F56B29309A97 /* libPods-MindloggerMobileCommonPods-MindloggerMobile.a */; }; + 51A6E1C8BEDF3FA779731DCF /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; - E46740FDE708A77B6E900F4C /* libPods-MindloggerMobileCommonPods-MindloggerMobileUAT.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E22B04944A139D59C30AEEFD /* libPods-MindloggerMobileCommonPods-MindloggerMobileUAT.a */; }; - E4EE5203507F0D384A133C99 /* libPods-MindloggerMobileCommonPods-MindloggerMobileStaging.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DFBED16C42BB1590161DAD9C /* libPods-MindloggerMobileCommonPods-MindloggerMobileStaging.a */; }; + 877235D0EBDAE5907B848DAB /* libPods-MindloggerMobileCommonPods-MindloggerMobileDev.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EE7C9F67E64152DFD9983278 /* libPods-MindloggerMobileCommonPods-MindloggerMobileDev.a */; }; + 90CA1E95A0B7D5AEBD875DF2 /* libPods-MindloggerMobileCommonPods-MindloggerMobileStaging.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 372995A11045EA25FEF29C24 /* libPods-MindloggerMobileCommonPods-MindloggerMobileStaging.a */; }; + A24425132B6D903700EDDAF4 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A24425122B6D903700EDDAF4 /* Feather.ttf */; }; + A24425142B6D903700EDDAF4 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A24425122B6D903700EDDAF4 /* Feather.ttf */; }; + A24425152B6D903700EDDAF4 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A24425122B6D903700EDDAF4 /* Feather.ttf */; }; + A24425162B6D903700EDDAF4 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A24425122B6D903700EDDAF4 /* Feather.ttf */; }; + A24425172B6D903700EDDAF4 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A24425122B6D903700EDDAF4 /* Feather.ttf */; }; + A24425182B6D903700EDDAF4 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A24425122B6D903700EDDAF4 /* Feather.ttf */; }; + C0A9131263C68CD8F7C49040 /* libPods-MindloggerMobileCommonPods-MindloggerMobileTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E10EE9BBB9E9E3A5383B813 /* libPods-MindloggerMobileCommonPods-MindloggerMobileTests.a */; }; + C460F31402A154850122677B /* libPods-MindloggerMobileCommonPods-MindloggerMobile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 922DFBCE47C4421A455B6C8D /* libPods-MindloggerMobileCommonPods-MindloggerMobile.a */; }; + D10A41EDC79B0CF471C45451 /* libPods-MindloggerMobileCommonPods-MindloggerMobileQA.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AC2A7526745028C6B76C1EEC /* libPods-MindloggerMobileCommonPods-MindloggerMobileQA.a */; }; + D36CF16F7CB84517F1086FC5 /* libPods-MindloggerMobileCommonPods-MindloggerMobileUAT.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 708A70ACE0EB3A998A0E9ED2 /* libPods-MindloggerMobileCommonPods-MindloggerMobileUAT.a */; }; F80121702A017A2B00F31D91 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = F801216E2A017A2B00F31D91 /* GoogleService-Info.plist */; }; F80121732A017AB300F31D91 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = F80121712A017AB300F31D91 /* GoogleService-Info.plist */; }; F80121762A017B2300F31D91 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = F80121742A017B2300F31D91 /* GoogleService-Info.plist */; }; @@ -204,10 +210,7 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = MindloggerMobile/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = MindloggerMobile/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = MindloggerMobile/main.m; sourceTree = ""; }; - 1D071C9586DC1FFE40CF6B24 /* Pods-MindloggerMobileCommonPods-MindloggerMobileQA.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileQA.release.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileQA/Pods-MindloggerMobileCommonPods-MindloggerMobileQA.release.xcconfig"; sourceTree = ""; }; - 1DE66C0B2574000B083AFA0C /* Pods-MindloggerMobileCommonPods-MindloggerMobileDev.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileDev.release.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev.release.xcconfig"; sourceTree = ""; }; - 21757FDADD80F784BA19F9CE /* libPods-MindloggerMobileCommonPods-MindloggerMobileQA.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MindloggerMobileCommonPods-MindloggerMobileQA.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 27215BA6DB8A2E33E2B15C68 /* Pods-MindloggerMobileCommonPods-MindloggerMobileQA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileQA.debug.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileQA/Pods-MindloggerMobileCommonPods-MindloggerMobileQA.debug.xcconfig"; sourceTree = ""; }; + 1B302C57B5709916905120B4 /* Pods-MindloggerMobileCommonPods-MindloggerMobileDev.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileDev.release.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev.release.xcconfig"; sourceTree = ""; }; 288FAB1929C88A580089AB98 /* ParameterGameManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ParameterGameManager.swift; sourceTree = ""; }; 288FAB1A29C88A580089AB98 /* UIColor+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIColor+Extension.swift"; sourceTree = ""; }; 288FAB1B29C88A580089AB98 /* GameManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GameManager.swift; sourceTree = ""; }; @@ -225,9 +228,9 @@ 288FAB2729C88A590089AB98 /* MindloggerMobile-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MindloggerMobile-Bridging-Header.h"; sourceTree = ""; }; 288FAB2829C88A590089AB98 /* UIImageView+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImageView+Extensions.swift"; sourceTree = ""; }; 288FAB2929C88A590089AB98 /* ResultView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResultView.swift; sourceTree = ""; }; - 3C835A8674B8C88D9343D4FD /* Pods-MindloggerMobileCommonPods-MindloggerMobile.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobile.debug.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile.debug.xcconfig"; sourceTree = ""; }; - 40932F5617DFCA1C42388086 /* Pods-MindloggerMobileCommonPods-MindloggerMobileTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileTests.release.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests.release.xcconfig"; sourceTree = ""; }; - 460AE10D47ECAF083434EC9D /* Pods-MindloggerMobileCommonPods-MindloggerMobileTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileTests.debug.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests.debug.xcconfig"; sourceTree = ""; }; + 2FC116A11BAA579E894C82DC /* Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.debug.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.debug.xcconfig"; sourceTree = ""; }; + 372995A11045EA25FEF29C24 /* libPods-MindloggerMobileCommonPods-MindloggerMobileStaging.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MindloggerMobileCommonPods-MindloggerMobileStaging.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 435663194FC93B8F7117F8A8 /* Pods-MindloggerMobileCommonPods-MindloggerMobile.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobile.release.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile.release.xcconfig"; sourceTree = ""; }; 4E2C2E9129A3826900BAEF10 /* Entypo.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Entypo.ttf; sourceTree = ""; }; 4E30A5832962BE4E0032C2A8 /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = FontAwesome5_Solid.ttf; sourceTree = ""; }; 4E30A5842962BE4E0032C2A8 /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = FontAwesome5_Regular.ttf; sourceTree = ""; }; @@ -235,19 +238,23 @@ 4E30A59A2962C3D60032C2A8 /* AntDesign.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = AntDesign.ttf; sourceTree = ""; }; 4E9EC54629BA279C002F69A5 /* MaterialIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = MaterialIcons.ttf; sourceTree = ""; }; 4EBCD5B12971514E00D3C04C /* Foundation.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Foundation.ttf; sourceTree = ""; }; - 52877052C3C270B145BE04AD /* Pods-MindloggerMobileCommonPods-MindloggerMobile.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobile.release.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile.release.xcconfig"; sourceTree = ""; }; - 73A2B1EDC50A14EC123FD1CE /* libPods-MindloggerMobileCommonPods-MindloggerMobileTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MindloggerMobileCommonPods-MindloggerMobileTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 7D7DDDCABAD8F56B29309A97 /* libPods-MindloggerMobileCommonPods-MindloggerMobile.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MindloggerMobileCommonPods-MindloggerMobile.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5251135591DA1D2419B12728 /* Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.release.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.release.xcconfig"; sourceTree = ""; }; + 570C7E62F62FFC9725AA3216 /* Pods-MindloggerMobileCommonPods-MindloggerMobileQA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileQA.debug.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileQA/Pods-MindloggerMobileCommonPods-MindloggerMobileQA.debug.xcconfig"; sourceTree = ""; }; + 6A71814A4710A865DB74A973 /* Pods-MindloggerMobileCommonPods-MindloggerMobile.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobile.debug.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile.debug.xcconfig"; sourceTree = ""; }; + 708A70ACE0EB3A998A0E9ED2 /* libPods-MindloggerMobileCommonPods-MindloggerMobileUAT.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MindloggerMobileCommonPods-MindloggerMobileUAT.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7E10EE9BBB9E9E3A5383B813 /* libPods-MindloggerMobileCommonPods-MindloggerMobileTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MindloggerMobileCommonPods-MindloggerMobileTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = MindloggerMobile/LaunchScreen.storyboard; sourceTree = ""; }; - 968510687704A704C1C4781E /* Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.debug.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.debug.xcconfig"; sourceTree = ""; }; - 9888E589D4B5061BEDF44FAE /* Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.release.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.release.xcconfig"; sourceTree = ""; }; - B0CF32465AE0FEAF18650A51 /* libPods-MindloggerMobileCommonPods-MindloggerMobileDev.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MindloggerMobileCommonPods-MindloggerMobileDev.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - C0291341DEA47DB3CB5E55A6 /* Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.release.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.release.xcconfig"; sourceTree = ""; }; - DA5F8C3C5092CE0F46685106 /* Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.debug.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.debug.xcconfig"; sourceTree = ""; }; - DFBED16C42BB1590161DAD9C /* libPods-MindloggerMobileCommonPods-MindloggerMobileStaging.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MindloggerMobileCommonPods-MindloggerMobileStaging.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - E22B04944A139D59C30AEEFD /* libPods-MindloggerMobileCommonPods-MindloggerMobileUAT.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MindloggerMobileCommonPods-MindloggerMobileUAT.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 8D0AD470DE42308E4C5D14AE /* Pods-MindloggerMobileCommonPods-MindloggerMobileQA.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileQA.release.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileQA/Pods-MindloggerMobileCommonPods-MindloggerMobileQA.release.xcconfig"; sourceTree = ""; }; + 922DFBCE47C4421A455B6C8D /* libPods-MindloggerMobileCommonPods-MindloggerMobile.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MindloggerMobileCommonPods-MindloggerMobile.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 95F918090183DE9C6759EE78 /* Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.debug.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.debug.xcconfig"; sourceTree = ""; }; + 9D4C10D9D4BD02AE2AC47896 /* Pods-MindloggerMobileCommonPods-MindloggerMobileDev.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileDev.debug.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev.debug.xcconfig"; sourceTree = ""; }; + A24425122B6D903700EDDAF4 /* Feather.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Feather.ttf; sourceTree = ""; }; + A4E94DF58943206645E6FF59 /* Pods-MindloggerMobileCommonPods-MindloggerMobileTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileTests.release.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests.release.xcconfig"; sourceTree = ""; }; + AC2A7526745028C6B76C1EEC /* libPods-MindloggerMobileCommonPods-MindloggerMobileQA.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MindloggerMobileCommonPods-MindloggerMobileQA.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + CF9A042A5946611800387C00 /* Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.release.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.release.xcconfig"; sourceTree = ""; }; + E96FDE007DC0D231C188B37F /* Pods-MindloggerMobileCommonPods-MindloggerMobileTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileTests.debug.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests.debug.xcconfig"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - F67CE9B394623080D8A8AB85 /* Pods-MindloggerMobileCommonPods-MindloggerMobileDev.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MindloggerMobileCommonPods-MindloggerMobileDev.debug.xcconfig"; path = "Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev.debug.xcconfig"; sourceTree = ""; }; + EE7C9F67E64152DFD9983278 /* libPods-MindloggerMobileCommonPods-MindloggerMobileDev.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MindloggerMobileCommonPods-MindloggerMobileDev.a"; sourceTree = BUILT_PRODUCTS_DIR; }; F801216E2A017A2B00F31D91 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; F80121712A017AB300F31D91 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; F80121742A017B2300F31D91 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; @@ -279,7 +286,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 3B8689E401F36349D9697DA5 /* libPods-MindloggerMobileCommonPods-MindloggerMobileTests.a in Frameworks */, + C0A9131263C68CD8F7C49040 /* libPods-MindloggerMobileCommonPods-MindloggerMobileTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -287,7 +294,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 64E12A71F27F432DC162ADD4 /* libPods-MindloggerMobileCommonPods-MindloggerMobile.a in Frameworks */, + C460F31402A154850122677B /* libPods-MindloggerMobileCommonPods-MindloggerMobile.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -295,7 +302,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 143DBD48109F8C5B0574C468 /* libPods-MindloggerMobileCommonPods-MindloggerMobileDev.a in Frameworks */, + 877235D0EBDAE5907B848DAB /* libPods-MindloggerMobileCommonPods-MindloggerMobileDev.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -303,7 +310,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 576A514B56E3A67507F07537 /* libPods-MindloggerMobileCommonPods-MindloggerMobileQA.a in Frameworks */, + D10A41EDC79B0CF471C45451 /* libPods-MindloggerMobileCommonPods-MindloggerMobileQA.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -311,8 +318,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 51A6E1C8BEDF3FA779731DCF /* (null) in Frameworks */, - E4EE5203507F0D384A133C99 /* libPods-MindloggerMobileCommonPods-MindloggerMobileStaging.a in Frameworks */, + 51A6E1C8BEDF3FA779731DCF /* BuildFile in Frameworks */, + 90CA1E95A0B7D5AEBD875DF2 /* libPods-MindloggerMobileCommonPods-MindloggerMobileStaging.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -320,7 +327,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E46740FDE708A77B6E900F4C /* libPods-MindloggerMobileCommonPods-MindloggerMobileUAT.a in Frameworks */, + D36CF16F7CB84517F1086FC5 /* libPods-MindloggerMobileCommonPods-MindloggerMobileUAT.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -405,12 +412,12 @@ children = ( F83ED9792A40549C00DD5C3F /* hermes.xcframework */, ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 7D7DDDCABAD8F56B29309A97 /* libPods-MindloggerMobileCommonPods-MindloggerMobile.a */, - B0CF32465AE0FEAF18650A51 /* libPods-MindloggerMobileCommonPods-MindloggerMobileDev.a */, - 21757FDADD80F784BA19F9CE /* libPods-MindloggerMobileCommonPods-MindloggerMobileQA.a */, - DFBED16C42BB1590161DAD9C /* libPods-MindloggerMobileCommonPods-MindloggerMobileStaging.a */, - 73A2B1EDC50A14EC123FD1CE /* libPods-MindloggerMobileCommonPods-MindloggerMobileTests.a */, - E22B04944A139D59C30AEEFD /* libPods-MindloggerMobileCommonPods-MindloggerMobileUAT.a */, + 922DFBCE47C4421A455B6C8D /* libPods-MindloggerMobileCommonPods-MindloggerMobile.a */, + EE7C9F67E64152DFD9983278 /* libPods-MindloggerMobileCommonPods-MindloggerMobileDev.a */, + AC2A7526745028C6B76C1EEC /* libPods-MindloggerMobileCommonPods-MindloggerMobileQA.a */, + 372995A11045EA25FEF29C24 /* libPods-MindloggerMobileCommonPods-MindloggerMobileStaging.a */, + 7E10EE9BBB9E9E3A5383B813 /* libPods-MindloggerMobileCommonPods-MindloggerMobileTests.a */, + 708A70ACE0EB3A998A0E9ED2 /* libPods-MindloggerMobileCommonPods-MindloggerMobileUAT.a */, ); name = Frameworks; sourceTree = ""; @@ -418,6 +425,7 @@ 4E30A5792962BE4E0032C2A8 /* Fonts */ = { isa = PBXGroup; children = ( + A24425122B6D903700EDDAF4 /* Feather.ttf */, 4E9EC54629BA279C002F69A5 /* MaterialIcons.ttf */, 4E30A59A2962C3D60032C2A8 /* AntDesign.ttf */, 4EBCD5B12971514E00D3C04C /* Foundation.ttf */, @@ -479,18 +487,18 @@ BBD78D7AC51CEA395F1C20DB /* Pods */ = { isa = PBXGroup; children = ( - 3C835A8674B8C88D9343D4FD /* Pods-MindloggerMobileCommonPods-MindloggerMobile.debug.xcconfig */, - 52877052C3C270B145BE04AD /* Pods-MindloggerMobileCommonPods-MindloggerMobile.release.xcconfig */, - F67CE9B394623080D8A8AB85 /* Pods-MindloggerMobileCommonPods-MindloggerMobileDev.debug.xcconfig */, - 1DE66C0B2574000B083AFA0C /* Pods-MindloggerMobileCommonPods-MindloggerMobileDev.release.xcconfig */, - 27215BA6DB8A2E33E2B15C68 /* Pods-MindloggerMobileCommonPods-MindloggerMobileQA.debug.xcconfig */, - 1D071C9586DC1FFE40CF6B24 /* Pods-MindloggerMobileCommonPods-MindloggerMobileQA.release.xcconfig */, - DA5F8C3C5092CE0F46685106 /* Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.debug.xcconfig */, - C0291341DEA47DB3CB5E55A6 /* Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.release.xcconfig */, - 460AE10D47ECAF083434EC9D /* Pods-MindloggerMobileCommonPods-MindloggerMobileTests.debug.xcconfig */, - 40932F5617DFCA1C42388086 /* Pods-MindloggerMobileCommonPods-MindloggerMobileTests.release.xcconfig */, - 968510687704A704C1C4781E /* Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.debug.xcconfig */, - 9888E589D4B5061BEDF44FAE /* Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.release.xcconfig */, + 6A71814A4710A865DB74A973 /* Pods-MindloggerMobileCommonPods-MindloggerMobile.debug.xcconfig */, + 435663194FC93B8F7117F8A8 /* Pods-MindloggerMobileCommonPods-MindloggerMobile.release.xcconfig */, + 9D4C10D9D4BD02AE2AC47896 /* Pods-MindloggerMobileCommonPods-MindloggerMobileDev.debug.xcconfig */, + 1B302C57B5709916905120B4 /* Pods-MindloggerMobileCommonPods-MindloggerMobileDev.release.xcconfig */, + 570C7E62F62FFC9725AA3216 /* Pods-MindloggerMobileCommonPods-MindloggerMobileQA.debug.xcconfig */, + 8D0AD470DE42308E4C5D14AE /* Pods-MindloggerMobileCommonPods-MindloggerMobileQA.release.xcconfig */, + 2FC116A11BAA579E894C82DC /* Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.debug.xcconfig */, + CF9A042A5946611800387C00 /* Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.release.xcconfig */, + E96FDE007DC0D231C188B37F /* Pods-MindloggerMobileCommonPods-MindloggerMobileTests.debug.xcconfig */, + A4E94DF58943206645E6FF59 /* Pods-MindloggerMobileCommonPods-MindloggerMobileTests.release.xcconfig */, + 95F918090183DE9C6759EE78 /* Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.debug.xcconfig */, + 5251135591DA1D2419B12728 /* Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -546,12 +554,12 @@ isa = PBXNativeTarget; buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "MindloggerMobileTests" */; buildPhases = ( - BBE1BF1C30F6144E15F75158 /* [CP] Check Pods Manifest.lock */, + D277D8A13A3117EEC4782172 /* [CP] Check Pods Manifest.lock */, 00E356EA1AD99517003FC87E /* Sources */, 00E356EB1AD99517003FC87E /* Frameworks */, 00E356EC1AD99517003FC87E /* Resources */, - 6D09D5FEA3B67DB8D9E0E7C1 /* [CP] Embed Pods Frameworks */, - 8E5D6E69E37F54FBA2AC1BA6 /* [CP] Copy Pods Resources */, + CB635A6F2B8BBC25EFE1976C /* [CP] Embed Pods Frameworks */, + C1F500F4FDFC934FF69908D2 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -567,14 +575,14 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "MindloggerMobile" */; buildPhases = ( - B1764749CF490739F243776F /* [CP] Check Pods Manifest.lock */, + D6D108229BC111CE13F70B8B /* [CP] Check Pods Manifest.lock */, FD10A7F022414F080027D42C /* Start Packager */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - EE8BBE79948379E952B7CB72 /* [CP] Embed Pods Frameworks */, - 9931236417BD74EBF1F80A7E /* [CP] Copy Pods Resources */, + 340C31F6E0879580848AD4FD /* [CP] Embed Pods Frameworks */, + 12C7DBCFD7EE2282B649A2AF /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -589,14 +597,14 @@ isa = PBXNativeTarget; buildConfigurationList = F87E175D29771F200021550E /* Build configuration list for PBXNativeTarget "MindloggerMobileDev" */; buildPhases = ( - A998AFB114BBC41D9AF74243 /* [CP] Check Pods Manifest.lock */, + 17F7789C0CE37064C5B6E659 /* [CP] Check Pods Manifest.lock */, F87E174D29771F200021550E /* Start Packager */, F87E174E29771F200021550E /* Sources */, F87E175129771F200021550E /* Frameworks */, F87E175329771F200021550E /* Resources */, F87E175A29771F200021550E /* Bundle React Native code and images */, - 1B03BA5A82153F00ACC32FC3 /* [CP] Embed Pods Frameworks */, - 2203C82E6318556EFA82CD50 /* [CP] Copy Pods Resources */, + 8903D64D96E736DB5C62445C /* [CP] Embed Pods Frameworks */, + 015AF6209BAED3447DC14CFB /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -611,14 +619,14 @@ isa = PBXNativeTarget; buildConfigurationList = F87E177429771F290021550E /* Build configuration list for PBXNativeTarget "MindloggerMobileQA" */; buildPhases = ( - 39531A23017BA41A3E2D29EE /* [CP] Check Pods Manifest.lock */, + 641CC5173D31397321B72BAD /* [CP] Check Pods Manifest.lock */, F87E176429771F290021550E /* Start Packager */, F87E176529771F290021550E /* Sources */, F87E176829771F290021550E /* Frameworks */, F87E176A29771F290021550E /* Resources */, F87E177129771F290021550E /* Bundle React Native code and images */, - D23245C67BA87DE57DD3E684 /* [CP] Embed Pods Frameworks */, - D543F9A53AA6D396D4122658 /* [CP] Copy Pods Resources */, + D536E8BB456351DDD1F2B84F /* [CP] Embed Pods Frameworks */, + 05829D1B79DFF82449D5BD0F /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -633,14 +641,14 @@ isa = PBXNativeTarget; buildConfigurationList = F87E178B29771F310021550E /* Build configuration list for PBXNativeTarget "MindloggerMobileStaging" */; buildPhases = ( - 758E7F937D7D86039142BC6E /* [CP] Check Pods Manifest.lock */, + 95FF1E810CAA885FEF9DA0BC /* [CP] Check Pods Manifest.lock */, F87E177B29771F310021550E /* Start Packager */, F87E177C29771F310021550E /* Sources */, F87E177F29771F310021550E /* Frameworks */, F87E178129771F310021550E /* Resources */, F87E178829771F310021550E /* Bundle React Native code and images */, - 269B176FBBF5E22D9044105D /* [CP] Embed Pods Frameworks */, - B1A67E96E209D40DD2DDDE28 /* [CP] Copy Pods Resources */, + 30E45BF305478F1328C051C7 /* [CP] Embed Pods Frameworks */, + 3117D17D9A1478B4AE2528E8 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -655,14 +663,14 @@ isa = PBXNativeTarget; buildConfigurationList = F8EF456F2A975A9200EEC085 /* Build configuration list for PBXNativeTarget "MindloggerMobileUAT" */; buildPhases = ( - DD82C6F7404BB45B51E9BEE6 /* [CP] Check Pods Manifest.lock */, + EADE3754B24A6D81AE6B3FB4 /* [CP] Check Pods Manifest.lock */, F8EF45482A975A9200EEC085 /* Start Packager */, F8EF45492A975A9200EEC085 /* Sources */, F8EF455E2A975A9200EEC085 /* Frameworks */, F8EF45602A975A9200EEC085 /* Resources */, F8EF456C2A975A9200EEC085 /* Bundle React Native code and images */, - 5074B709509C15396DCE585B /* [CP] Embed Pods Frameworks */, - B61B4CFBC10992315EF20418 /* [CP] Copy Pods Resources */, + 4016D2D783B1DF1F3935F9AC /* [CP] Embed Pods Frameworks */, + B1745D681A70CE3A3DFB7B7E /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -718,6 +726,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + A24425142B6D903700EDDAF4 /* Feather.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -727,6 +736,7 @@ files = ( 4E30A59B2962C3D60032C2A8 /* AntDesign.ttf in Resources */, 4EBCD5B22971514E00D3C04C /* Foundation.ttf in Resources */, + A24425132B6D903700EDDAF4 /* Feather.ttf in Resources */, F83E655429FA845400D57006 /* Settings.bundle in Resources */, 4E30A5952962BE4F0032C2A8 /* FontAwesome.ttf in Resources */, 4E30A5942962BE4F0032C2A8 /* FontAwesome5_Regular.ttf in Resources */, @@ -745,6 +755,7 @@ files = ( 4E5906BB2987C41300A5D9E5 /* Foundation.ttf in Resources */, F87E175429771F200021550E /* AntDesign.ttf in Resources */, + A24425152B6D903700EDDAF4 /* Feather.ttf in Resources */, F83E655529FA845400D57006 /* Settings.bundle in Resources */, F87E175529771F200021550E /* FontAwesome.ttf in Resources */, F87E175629771F200021550E /* FontAwesome5_Regular.ttf in Resources */, @@ -763,6 +774,7 @@ files = ( 4E5906BC2987C41700A5D9E5 /* Foundation.ttf in Resources */, F87E176B29771F290021550E /* AntDesign.ttf in Resources */, + A24425162B6D903700EDDAF4 /* Feather.ttf in Resources */, F83E655629FA845400D57006 /* Settings.bundle in Resources */, F87E176C29771F290021550E /* FontAwesome.ttf in Resources */, F87E176D29771F290021550E /* FontAwesome5_Regular.ttf in Resources */, @@ -781,6 +793,7 @@ files = ( 4E5906BD2987C41B00A5D9E5 /* Foundation.ttf in Resources */, F87E178229771F310021550E /* AntDesign.ttf in Resources */, + A24425172B6D903700EDDAF4 /* Feather.ttf in Resources */, F83E655729FA845400D57006 /* Settings.bundle in Resources */, F87E178329771F310021550E /* FontAwesome.ttf in Resources */, F87E178429771F310021550E /* FontAwesome5_Regular.ttf in Resources */, @@ -799,6 +812,7 @@ files = ( F8EF45612A975A9200EEC085 /* Foundation.ttf in Resources */, F8EF45622A975A9200EEC085 /* AntDesign.ttf in Resources */, + A24425182B6D903700EDDAF4 /* Feather.ttf in Resources */, F8EF45632A975A9200EEC085 /* Settings.bundle in Resources */, F8EF45642A975A9200EEC085 /* FontAwesome.ttf in Resources */, F8EF45652A975A9200EEC085 /* FontAwesome5_Regular.ttf in Resources */, @@ -830,58 +844,58 @@ shellPath = /bin/sh; shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; }; - 1B03BA5A82153F00ACC32FC3 /* [CP] Embed Pods Frameworks */ = { + 015AF6209BAED3447DC14CFB /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-frameworks-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 2203C82E6318556EFA82CD50 /* [CP] Copy Pods Resources */ = { + 05829D1B79DFF82449D5BD0F /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-resources-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileQA/Pods-MindloggerMobileCommonPods-MindloggerMobileQA-resources-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-resources-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileQA/Pods-MindloggerMobileCommonPods-MindloggerMobileQA-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileQA/Pods-MindloggerMobileCommonPods-MindloggerMobileQA-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 269B176FBBF5E22D9044105D /* [CP] Embed Pods Frameworks */ = { + 12C7DBCFD7EE2282B649A2AF /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-frameworks-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 39531A23017BA41A3E2D29EE /* [CP] Check Pods Manifest.lock */ = { + 17F7789C0CE37064C5B6E659 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -896,126 +910,121 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-MindloggerMobileCommonPods-MindloggerMobileQA-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 5074B709509C15396DCE585B /* [CP] Embed Pods Frameworks */ = { + 30E45BF305478F1328C051C7 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT-frameworks-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 6D09D5FEA3B67DB8D9E0E7C1 /* [CP] Embed Pods Frameworks */ = { + 3117D17D9A1478B4AE2528E8 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 758E7F937D7D86039142BC6E /* [CP] Check Pods Manifest.lock */ = { + 340C31F6E0879580848AD4FD /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 8E5D6E69E37F54FBA2AC1BA6 /* [CP] Copy Pods Resources */ = { + 4016D2D783B1DF1F3935F9AC /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests-resources-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests-resources-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 9931236417BD74EBF1F80A7E /* [CP] Copy Pods Resources */ = { + 641CC5173D31397321B72BAD /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-MindloggerMobileCommonPods-MindloggerMobileQA-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - A998AFB114BBC41D9AF74243 /* [CP] Check Pods Manifest.lock */ = { + 8903D64D96E736DB5C62445C /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileDev/Pods-MindloggerMobileCommonPods-MindloggerMobileDev-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - B1764749CF490739F243776F /* [CP] Check Pods Manifest.lock */ = { + 95FF1E810CAA885FEF9DA0BC /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1030,48 +1039,65 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-MindloggerMobileCommonPods-MindloggerMobile-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - B1A67E96E209D40DD2DDDE28 /* [CP] Copy Pods Resources */ = { + B1745D681A70CE3A3DFB7B7E /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-resources-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT-resources-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-resources-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging/Pods-MindloggerMobileCommonPods-MindloggerMobileStaging-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT-resources.sh\"\n"; showEnvVarsInLog = 0; }; - B61B4CFBC10992315EF20418 /* [CP] Copy Pods Resources */ = { + C1F500F4FDFC934FF69908D2 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT-resources-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests-resources-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT-resources-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT/Pods-MindloggerMobileCommonPods-MindloggerMobileUAT-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + CB635A6F2B8BBC25EFE1976C /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileTests/Pods-MindloggerMobileCommonPods-MindloggerMobileTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - BBE1BF1C30F6144E15F75158 /* [CP] Check Pods Manifest.lock */ = { + D277D8A13A3117EEC4782172 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1093,7 +1119,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - D23245C67BA87DE57DD3E684 /* [CP] Embed Pods Frameworks */ = { + D536E8BB456351DDD1F2B84F /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1110,24 +1136,29 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileQA/Pods-MindloggerMobileCommonPods-MindloggerMobileQA-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - D543F9A53AA6D396D4122658 /* [CP] Copy Pods Resources */ = { + D6D108229BC111CE13F70B8B /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileQA/Pods-MindloggerMobileCommonPods-MindloggerMobileQA-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileQA/Pods-MindloggerMobileCommonPods-MindloggerMobileQA-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-MindloggerMobileCommonPods-MindloggerMobile-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobileQA/Pods-MindloggerMobileCommonPods-MindloggerMobileQA-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - DD82C6F7404BB45B51E9BEE6 /* [CP] Check Pods Manifest.lock */ = { + EADE3754B24A6D81AE6B3FB4 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1149,23 +1180,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - EE8BBE79948379E952B7CB72 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MindloggerMobileCommonPods-MindloggerMobile/Pods-MindloggerMobileCommonPods-MindloggerMobile-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; F87E174D29771F200021550E /* Start Packager */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1491,7 +1505,7 @@ /* Begin XCBuildConfiguration section */ 00E356F61AD99517003FC87E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 460AE10D47ECAF083434EC9D /* Pods-MindloggerMobileCommonPods-MindloggerMobileTests.debug.xcconfig */; + baseConfigurationReference = E96FDE007DC0D231C188B37F /* Pods-MindloggerMobileCommonPods-MindloggerMobileTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -1519,7 +1533,7 @@ }; 00E356F71AD99517003FC87E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 40932F5617DFCA1C42388086 /* Pods-MindloggerMobileCommonPods-MindloggerMobileTests.release.xcconfig */; + baseConfigurationReference = A4E94DF58943206645E6FF59 /* Pods-MindloggerMobileCommonPods-MindloggerMobileTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -1544,16 +1558,15 @@ }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3C835A8674B8C88D9343D4FD /* Pods-MindloggerMobileCommonPods-MindloggerMobile.debug.xcconfig */; + baseConfigurationReference = 6A71814A4710A865DB74A973 /* Pods-MindloggerMobileCommonPods-MindloggerMobile.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = MindloggerMobile/MindloggerMobileDebug.entitlements; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; - "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 8RHKE85KB6; ENABLE_BITCODE = NO; INFOPLIST_FILE = MindloggerMobile/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = Mindlogger; @@ -1569,7 +1582,6 @@ PRODUCT_BUNDLE_IDENTIFIER = lab.childmindinstitute.data; PRODUCT_NAME = MindloggerMobile; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "MindLogger Prod [Development"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; @@ -1583,7 +1595,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 52877052C3C270B145BE04AD /* Pods-MindloggerMobileCommonPods-MindloggerMobile.release.xcconfig */; + baseConfigurationReference = 435663194FC93B8F7117F8A8 /* Pods-MindloggerMobileCommonPods-MindloggerMobile.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -1757,7 +1769,7 @@ }; F87E175E29771F200021550E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F67CE9B394623080D8A8AB85 /* Pods-MindloggerMobileCommonPods-MindloggerMobileDev.debug.xcconfig */; + baseConfigurationReference = 9D4C10D9D4BD02AE2AC47896 /* Pods-MindloggerMobileCommonPods-MindloggerMobileDev.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -1796,7 +1808,7 @@ }; F87E175F29771F200021550E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1DE66C0B2574000B083AFA0C /* Pods-MindloggerMobileCommonPods-MindloggerMobileDev.release.xcconfig */; + baseConfigurationReference = 1B302C57B5709916905120B4 /* Pods-MindloggerMobileCommonPods-MindloggerMobileDev.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -1832,7 +1844,7 @@ }; F87E177529771F290021550E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 27215BA6DB8A2E33E2B15C68 /* Pods-MindloggerMobileCommonPods-MindloggerMobileQA.debug.xcconfig */; + baseConfigurationReference = 570C7E62F62FFC9725AA3216 /* Pods-MindloggerMobileCommonPods-MindloggerMobileQA.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -1871,7 +1883,7 @@ }; F87E177629771F290021550E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1D071C9586DC1FFE40CF6B24 /* Pods-MindloggerMobileCommonPods-MindloggerMobileQA.release.xcconfig */; + baseConfigurationReference = 8D0AD470DE42308E4C5D14AE /* Pods-MindloggerMobileCommonPods-MindloggerMobileQA.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -1908,7 +1920,7 @@ }; F87E178C29771F310021550E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DA5F8C3C5092CE0F46685106 /* Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.debug.xcconfig */; + baseConfigurationReference = 2FC116A11BAA579E894C82DC /* Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -1945,7 +1957,7 @@ }; F87E178D29771F310021550E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C0291341DEA47DB3CB5E55A6 /* Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.release.xcconfig */; + baseConfigurationReference = CF9A042A5946611800387C00 /* Pods-MindloggerMobileCommonPods-MindloggerMobileStaging.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -1981,7 +1993,7 @@ }; F8EF45702A975A9200EEC085 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 968510687704A704C1C4781E /* Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.debug.xcconfig */; + baseConfigurationReference = 95F918090183DE9C6759EE78 /* Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -2020,7 +2032,7 @@ }; F8EF45712A975A9200EEC085 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9888E589D4B5061BEDF44FAE /* Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.release.xcconfig */; + baseConfigurationReference = 5251135591DA1D2419B12728 /* Pods-MindloggerMobileCommonPods-MindloggerMobileUAT.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; diff --git a/ios/MindloggerMobile/Info.plist b/ios/MindloggerMobile/Info.plist index 74f8fbc2f..25a387fa3 100644 --- a/ios/MindloggerMobile/Info.plist +++ b/ios/MindloggerMobile/Info.plist @@ -67,6 +67,7 @@ Foundation.ttf Entypo.ttf MaterialIcons.ttf + Feather.ttf UIBackgroundModes diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 5a2cdf652..f165443f5 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -951,4 +951,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 3fd9f605d2ca061c942789de32928fa0ba430aa8 -COCOAPODS: 1.11.3 +COCOAPODS: 1.15.0 diff --git a/src/features/sign-up/ui/SignUpForm.test.tsx b/src/features/sign-up/ui/SignUpForm.test.tsx new file mode 100644 index 000000000..c8f1ad194 --- /dev/null +++ b/src/features/sign-up/ui/SignUpForm.test.tsx @@ -0,0 +1,69 @@ +import { Provider } from 'react-redux'; +import renderer, { act } from 'react-test-renderer'; + +import ReactQueryProvider from '@app/app/ui/AppProvider/ReactQueryProvider'; +import { reduxStore } from '@app/app/ui/AppProvider/ReduxProvider'; +import TamaguiProvider from '@app/app/ui/AppProvider/TamaguiProvider'; +import { PasswordRequirement } from '@app/shared/ui/form/PasswordRequirements'; + +import { SignUpForm } from './SignUpForm'; + +jest.mock('@app/shared/lib/constants', () => ({ + ...jest.requireActual('@app/shared/lib/constants'), + STORE_ENCRYPTION_KEY: '12345', +})); + +jest.mock('@shared/lib', () => ({ + ...jest.requireActual('@shared/lib'), + useSystemBootUp: jest.fn(() => ({ + onModuleInitialized: jest.fn(), + })), +})); + +jest.mock('@react-native-community/netinfo', () => ({ + addEventListener: jest.fn(), + fetch: jest.fn(async () => ({ + isConnected: true, + })), +})); + +jest.mock('@app/shared/ui/icons', () => ({ + ...jest.requireActual('@app/shared/ui/icons'), + FeatherCrossIcon: () => 'x', + FeatherCheckIcon: () => 'ok', +})); + +/* Test helper functions */ + +const FormTestWrapper = ({ children }: { children: React.ReactNode }) => { + return ( + + + {children} + + + ); +}; + +const createTest = () => { + const tree = renderer.create( + + {}} /> + , + ); + const getRequirements = () => tree.root.findAllByType(PasswordRequirement); + return { tree, instance: tree.root, getRequirements }; +}; + +describe('SignUp Form', () => { + it('should render properly', () => { + const { tree, instance } = createTest(); + act(() => { + /* display password requirements */ + instance.findByProps({ name: 'password' }).props.onFocus(); + }); + expect(tree.toJSON()).toMatchSnapshot(); + }); + + it.todo('should validate password requirements'); +}); diff --git a/src/features/sign-up/ui/SignUpForm.tsx b/src/features/sign-up/ui/SignUpForm.tsx index fd148c410..7245ee87a 100644 --- a/src/features/sign-up/ui/SignUpForm.tsx +++ b/src/features/sign-up/ui/SignUpForm.tsx @@ -1,13 +1,24 @@ /* eslint-disable react-native/no-inline-styles */ -import { FC } from 'react'; +import { FC, useMemo, useState } from 'react'; +import { TouchableWithoutFeedback } from 'react-native'; import { FormProvider } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { isTablet } from 'react-native-device-info'; -import { executeIfOnline, useAppForm, useFormChanges } from '@app/shared/lib'; +import { + executeIfOnline, + useAppForm, + useFormChanges, + colors, +} from '@app/shared/lib'; import { Box, BoxProps, YStack, SubmitButton } from '@shared/ui'; -import { InputField, ErrorMessage } from '@shared/ui/form'; +import { + InputField, + PasswordRequirements, + ErrorMessage, +} from '@shared/ui/form'; +import { EyeIcon, EyeSlashIcon } from '@shared/ui/icons'; import { SignUpModel } from '../'; import { SignUpFormSchema } from '../validation'; @@ -18,11 +29,13 @@ type Props = BoxProps & { const SignUpForm: FC = props => { const { t } = useTranslation(); + const [isPasswordHidden, setPasswordHidden] = useState(true); + const [displayPasswordRequirements, setDisplayPasswordRequirements] = + useState(false); const { isLoading, error, - reset, mutate: signUp, } = SignUpModel.useRegistrationMutation(props.onLoginSuccess); @@ -34,14 +47,35 @@ const SignUpForm: FC = props => { onSubmitSuccess: data => { executeIfOnline(() => signUp(data)); }, + criteriaMode: 'all', + shouldUseNativeValidation: false, }); useFormChanges({ form, watchInputs: ['password'], - onInputChange: () => reset(), + onInputChange: function () { + form.trigger('password'); + }, }); + const passwordHasLength = !!form.getValues().password.length; + const passwordRequirements = useMemo(() => { + const errors = Object.values( + form.formState.errors?.password?.types || {}, + ).flat(); + + return [ + 'password_requirements:at_least_characters', + 'password_requirements:no_blank_spaces', + ].map(key => ({ + label: key, + isValid: passwordHasLength && !errors.includes(key), + })); + }, [passwordHasLength, form.formState.errors?.password?.types]); + + const ShowPasswordIcon = isPasswordHidden ? EyeSlashIcon : EyeIcon; + return ( @@ -65,10 +99,20 @@ const SignUpForm: FC = props => { /> setPasswordHidden(!isPasswordHidden)} + > + + + } + hideError={displayPasswordRequirements || passwordHasLength} + onFocus={() => setDisplayPasswordRequirements(true)} + onBlur={() => setDisplayPasswordRequirements(false)} /> {error && ( @@ -79,27 +123,31 @@ const SignUpForm: FC = props => { error={{ message: error?.evaluatedMessage! }} /> )} - - - {t('sign_up_form:sign_up')} - + {(displayPasswordRequirements || passwordHasLength) && ( + + )} + + + {t('sign_up_form:sign_up')} + + ); diff --git a/src/features/sign-up/ui/__snapshots__/SignUpForm.test.tsx.snap b/src/features/sign-up/ui/__snapshots__/SignUpForm.test.tsx.snap new file mode 100644 index 000000000..30ec782a4 --- /dev/null +++ b/src/features/sign-up/ui/__snapshots__/SignUpForm.test.tsx.snap @@ -0,0 +1,205 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`SignUp Form should render properly 1`] = ` +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+ +  + +
+
+
+ + password_requirements:must_include + + + + + x + + + password_requirements:at_least_characters + + + + + x + + + password_requirements:no_blank_spaces + + + + +
+ + sign_up_form:sign_up + +
+
+
+`; diff --git a/src/features/sign-up/validation/SignUpFormSchema.ts b/src/features/sign-up/validation/SignUpFormSchema.ts index a525fb059..e74dacfd2 100644 --- a/src/features/sign-up/validation/SignUpFormSchema.ts +++ b/src/features/sign-up/validation/SignUpFormSchema.ts @@ -9,8 +9,11 @@ const schema = z.object({ password: z .string() .min(1, 'form_item:required') - .min(6, 'sign_up_form:password_at_least_characters') - .refine(value => !value.includes(' '), 'sign_up_form:password_no_spaces'), + .min(6, 'password_requirements:at_least_characters') + .refine( + value => !value.includes(' '), + 'password_requirements:no_blank_spaces', + ), firstName: z.string().trim().min(1, 'form_item:required'), lastName: z.string().trim().min(1, 'form_item:required'), }); diff --git a/src/screens/ui/SignUpScreen.tsx b/src/screens/ui/SignUpScreen.tsx index 872398d71..94b80d22a 100644 --- a/src/screens/ui/SignUpScreen.tsx +++ b/src/screens/ui/SignUpScreen.tsx @@ -6,7 +6,13 @@ import { useTranslation } from 'react-i18next'; import { isTablet } from 'react-native-device-info'; import { SignUpForm } from '@features/sign-up'; -import { StatusBar, Box, Text, KeyboardAvoidingView } from '@shared/ui'; +import { + StatusBar, + Box, + Text, + KeyboardAvoidingView, + ScrollView, +} from '@shared/ui'; const SignUpScreen: FC = () => { const { navigate } = useNavigation(); @@ -27,19 +33,27 @@ const SignUpScreen: FC = () => { - - - - {t('login:account_create')} - - + + + + + + {t('login:account_create')} + + - - navigate('Applets')} /> - + + navigate('Applets')} /> + + + - - + + ; mode?: 'dark' | 'light'; } & TextProps; @@ -16,10 +16,9 @@ const ErrorMessage: FC> = ({ ...props }) => { const { t } = useTranslation(); - return ( <> - {error?.message && ( + {!!error?.message && ( = ({ +const InputField: FC = ({ name, defaultValue = '', placeholder, mode = 'light', backgroundColor, + leftIcon, + rightIcon, + hideError, ...props }) => { const { control } = useFormContext(); @@ -39,23 +45,43 @@ const InputField: FC = ({ ( - + <> + + {leftIcon && ( + + {leftIcon} + + )} + { + onBlur(); + props.onBlur && props.onBlur(e); + }} + onChangeText={onFormChange} + value={value} + placeholder={placeholder} + autoCapitalize="none" + mode={mode} + backgroundColor={backgroundColor} + {...props} + isInvalid={!!error} + pl={leftIcon ? 40 : 0} + pr={rightIcon ? 40 : 0} + /> + {rightIcon && ( + + {rightIcon} + + )} + + )} name={name} /> - + {!hideError && } ); }; diff --git a/src/shared/ui/form/PasswordRequirements.tsx b/src/shared/ui/form/PasswordRequirements.tsx new file mode 100644 index 000000000..9819ace23 --- /dev/null +++ b/src/shared/ui/form/PasswordRequirements.tsx @@ -0,0 +1,103 @@ +import { View } from 'react-native'; + +import { styled, Text } from '@tamagui/core'; +import { useTranslation } from 'react-i18next'; + +import { colors } from '@shared/lib/constants/colors'; + +import { FeatherCrossIcon, FeatherCheckIcon } from '../icons'; + +const themeColors = { + valid: { + iconColor: colors.white, + textColor: colors.white, + }, + invalid: { + iconColor: colors.whiteTsp2, + textColor: colors.whiteTsp2, + }, +}; + +export const StyledPasswordRequirementContainer = styled(View, { + marginTop: 12, + display: 'flex', + flexDirection: 'row', + flexWrap: 'wrap', + justifyContent: 'center', +}); + +export const StyledPasswordRequirementLabel = styled(Text, { + marginTop: 10, +}); + +const StyledView = styled(View, { + marginBottom: 4, + display: 'flex', + flexDirection: 'row', + alignItems: 'center', + width: '50%', +}); + +const StyledIconView = styled(View, { + width: 18, +}); + +const getColor = (isValid: boolean) => { + return themeColors[isValid ? 'valid' : 'invalid']; +}; + +export type Requirement = { + label: string; + isValid?: boolean; +}; + +export type PasswordRequirementProps = Requirement & { + mode?: 'dark' | 'light'; +}; + +export const PasswordRequirement = ({ + label, + isValid, +}: PasswordRequirementProps) => { + const Icon = isValid ? FeatherCheckIcon : FeatherCrossIcon; + const { iconColor, textColor } = getColor(!!isValid); + return ( + + + + + + + {label} + + + ); +}; + +export type PasswordRequirementsProps = { + requirements: Requirement[]; +}; + +export const PasswordRequirements = ({ + requirements, +}: PasswordRequirementsProps) => { + const { t } = useTranslation(); + const { textColor } = themeColors.valid; + return ( + <> + {t('password_requirements:must_include')} + + + {requirements.map(requirement => ( + + ))} + + + ); +}; + +export default PasswordRequirements; diff --git a/src/shared/ui/form/index.ts b/src/shared/ui/form/index.ts index ffd7c0c23..f53c95478 100644 --- a/src/shared/ui/form/index.ts +++ b/src/shared/ui/form/index.ts @@ -2,4 +2,5 @@ import CheckBoxField from './CheckBoxField'; import ErrorMessage from './ErrorMessage'; import InputField from './InputField'; +export { default as PasswordRequirements } from './PasswordRequirements'; export { InputField, CheckBoxField, ErrorMessage }; diff --git a/src/shared/ui/icons/index.tsx b/src/shared/ui/icons/index.tsx index 0bc3ec910..765c84cea 100644 --- a/src/shared/ui/icons/index.tsx +++ b/src/shared/ui/icons/index.tsx @@ -3,6 +3,7 @@ import { AccessibilityProps } from 'react-native'; import AntDesign from 'react-native-vector-icons/AntDesign'; import Entypo from 'react-native-vector-icons/Entypo'; +import Feather from 'react-native-vector-icons/Feather'; import FontAwesome from 'react-native-vector-icons/FontAwesome'; import Foundation from 'react-native-vector-icons/Foundation'; @@ -119,3 +120,19 @@ export const ChevronDownIcon: FC = props => ( export const EditIcon: FC = props => ( ); + +export const EyeIcon: FC = props => ( + +); + +export const EyeSlashIcon: FC = props => ( + +); + +export const FeatherCrossIcon: FC = props => ( + +); + +export const FeatherCheckIcon: FC = props => ( + +);