diff --git a/android/.settings/org.eclipse.buildship.core.prefs b/android/.settings/org.eclipse.buildship.core.prefs
index e8895216fd..e479558406 100644
--- a/android/.settings/org.eclipse.buildship.core.prefs
+++ b/android/.settings/org.eclipse.buildship.core.prefs
@@ -1,2 +1,13 @@
+arguments=
+auto.sync=false
+build.scans.enabled=false
+connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
connection.project.dir=
eclipse.preferences.version=1
+gradle.user.home=
+java.home=
+jvm.arguments=
+offline.mode=false
+override.workspace.settings=false
+show.console.view=false
+show.executions.view=false
diff --git a/android/app/.project b/android/app/.project
index ac485d7c3e..d3316caded 100644
--- a/android/app/.project
+++ b/android/app/.project
@@ -20,4 +20,15 @@
org.eclipse.jdt.core.javanature
org.eclipse.buildship.core.gradleprojectnature
+
+
+ 1679415300110
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
diff --git a/flows/f&f.yaml b/flows/f&f.yaml
new file mode 100644
index 0000000000..cb6d68f324
--- /dev/null
+++ b/flows/f&f.yaml
@@ -0,0 +1,60 @@
+# f&f.yaml
+
+# Add friends and Family to your list to be able to send SATS easily
+
+appId: io.hexawallet.hexa.development
+---
+- runFlow: "login.yaml"
+- tapOn: Freiend, tab, 2 of 4
+
+#------------------------------------------------------------
+# Create Invitation Link
+#------------------------------------------------------------
+
+- tapOn:
+ id: "+AddNewContact"
+- tapOn: Anna Haro
+- tapOn:
+ id: "confirmAndProceedButton"
+- tapOn:
+ point: "45%,72%"
+
+- tapOn:
+ id: "secureWithContactsPhoneNumber"
+- tapOn:
+ point: "50%,27%"
+- tapOn:
+ point: "50%,47%"
+- tapOn:
+ point: "50%,67%"
+- tapOn:
+ point: "10%,90%"
+
+- tapOn:
+
+#------------------------------------------------------------
+#Create Invitation Link with gift
+#------------------------------------------------------------
+
+- tapOn:
+ id: "+AddNewContact"
+- tapOn: David Taylor
+- tapOn:
+ id: "confirmAndProceedButton"
+
+- tapOn:
+ point: "45%,85%"
+
+- tapOn: Enter amount in sats
+- tapOn: 1
+- tapOn: 0
+- tapOn: 0
+- tapOn: 0
+- tapOn:
+ text: 0
+ index: 0
+- tapOn:
+ id: "UseSatcardToGiftSats"
+- tapOn: Create Gifts
+- tapOn:
+- tapOn:
diff --git a/flows/giftSats.yaml b/flows/giftSats.yaml
new file mode 100644
index 0000000000..f38affc559
--- /dev/null
+++ b/flows/giftSats.yaml
@@ -0,0 +1,67 @@
+# giftSats.yaml
+
+appId: io.hexawallet.hexa.development
+---
+- runFlow: "login.yaml"
+- tapOn: Securiy, tab, 3 of 4
+
+#------------------------------------------------------------
+# Create New Gift
+#------------------------------------------------------------
+
+- tapOn:
+ id: "createNewGiftButton"
+- tapOn:
+ point: "45%,85%"
+
+- tapOn: Enter amount in sats
+- tapOn: 1
+- tapOn: 0
+- tapOn: 0
+- tapOn: 0
+- tapOn:
+ text: 0
+ index: 0
+- tapOn:
+ id: "UseSatcardToGiftSats"
+- tapOn: Create Gift
+- tapOn:
+
+#------------------------------------------------------------
+# Available Gifts
+#------------------------------------------------------------
+
+- tapOn:
+ id: "availableGiftsButton"
+- tapOn: Sent
+- tapOn: Expired
+- tapOn: Available
+- tapOn:
+ id: "createNewButtonButton2"
+- tapOn:
+ point: "45%,85%"
+
+- tapOn: Enter amount in sats
+- tapOn: 1
+- tapOn: 0
+- tapOn: 0
+- tapOn: 0
+- tapOn:
+ text: 0
+ index: 0
+- tapOn:
+ id: "UseSatcardToGiftSats"
+- tapOn: Create Gift
+- tapOn:
+- tapOn:
+
+#------------------------------------------------------------
+# Claim SATSCARD
+#------------------------------------------------------------
+
+- tapOn:
+ id: "claimSatscardButton"
+- tapOn:
+ point: "67%,86%"
+- tapOn:
+ point: "22%,88%"
\ No newline at end of file
diff --git a/flows/home.yaml b/flows/home.yaml
new file mode 100644
index 0000000000..0e8025e5a1
--- /dev/null
+++ b/flows/home.yaml
@@ -0,0 +1,100 @@
+# home.yaml
+
+# Home Screen
+
+appId: io.hexawallet.hexa.development
+---
+- runFlow: "login.yaml"
+
+# Test Account
+
+- tapOn:
+ id: "HomeAccountCard"
+ index: 0
+
+# Add Lightning Wallet
+
+- tapOn:
+ id: "AddLightningWalletButton"
+- tapOn:
+ id: "EnterManuallyButton"
+- tapOn:
+ id: "HostInput"
+- inputText: "Sample Host"
+- tapOn:
+ id: "PortInput"
+- inputText: "Sample Port"
+- tapOn:
+ id: "MacaroonHexInput"
+- inputText: "Sample Macaroon Hex"
+- tapOn:
+ id: "NodeConnectButton"
+- tapOn:
+- tapOn:
+
+# Buy BTC
+
+- tapOn:
+ id: "BuyBTCButton"
+- tapOn:
+ id: "BuyBitcoinButton"
+- tapOn: "Close"
+- tapOn: "Close"
+
+- tapOn:
+ id: notificationButton
+- tapOn:
+ point: "91%,34%"
+
+- tapOn:
+ id: navigateToQRScreen
+- tapOn:
+ id: RNE__Input__text-input
+- inputText: "1hsmMidMUjZt29p1eZik9Z83kMPos315Y"
+- tapOn: Send Max
+- inputText: "1"
+- tapOn: Confirm & Proceed
+- tapOn: Confirm & Send
+- tapOn:
+ point: "63%,89%"
+- tapOn:
+
+- tapOn:
+ id: navigateToQRScreen
+- tapOn:
+ id: receiveBitcoinButton
+- tapOn:
+ id: enterAmountToReceive
+- tapOn:
+ point: "26%,77%"
+- inputText: 10
+- tapOn:
+ id: notificationButton
+- tapOn:
+ point: "91%,34%"
+
+- tapOn:
+ id: navigateToQRScreen
+- tapOn:
+ id: RNE__Input__text-input
+- inputText: "1hsmMidMUjZt29p1eZik9Z83kMPos315Y"
+- tapOn: Send Max
+- inputText: "1"
+- tapOn: Confirm & Proceed
+- tapOn: Confirm & Send
+- tapOn:
+ point: "63%,89%"
+- tapOn:
+
+- tapOn:
+ id: navigateToQRScreen
+- tapOn:
+ id: receiveBitcoinButton
+# - tapOn:
+# id: enterAmountToReceive
+# - tapOn:
+# point: "26%,77%"
+# - inputText: 10
+# - tapOn:
+# point: "26%,59%"
+
diff --git a/flows/login.yaml b/flows/login.yaml
new file mode 100644
index 0000000000..e1476d61d8
--- /dev/null
+++ b/flows/login.yaml
@@ -0,0 +1,13 @@
+#login.yaml
+
+#Login Screen Flow
+
+appId: io.hexawallet.hexa.development
+---
+- launchApp
+- tapOn: "1"
+- tapOn: "2"
+- tapOn: "3"
+- tapOn: "4"
+- tapOn:
+ id: "ProceedButton"
\ No newline at end of file
diff --git a/flows/recovery.yaml b/flows/recovery.yaml
new file mode 100644
index 0000000000..9d45ded62f
--- /dev/null
+++ b/flows/recovery.yaml
@@ -0,0 +1,94 @@
+# signup.yaml
+
+# First time login
+
+appId: io.hexawallet.hexa.development
+---
+- launchApp
+- tapOn: "1"
+- tapOn: "2"
+- tapOn: "3"
+- tapOn: "4"
+
+- tapOn: "1"
+- tapOn: "2"
+- tapOn: "3"
+- tapOn: "4"
+
+- tapOn: Proceed
+
+
+# --------- Recovery Using BackUp Phrase -----------
+
+- tapOn:
+ id: UsingBackupPhraseButton
+
+- tapOn: "01 Enter 1st word"
+- inputText: "muffin"
+- pressKey: Enter
+
+- tapOn: 02 Enter 2nd word
+- inputText: "jeans"
+- pressKey: Enter
+
+- tapOn: 03 Enter 3rd word
+- inputText: "other"
+- pressKey: Enter
+
+- tapOn: 04 Enter 4th word
+- inputText: "year"
+- pressKey: Enter
+
+- tapOn: 05 Enter 5th word
+- inputText: "rare"
+- pressKey: Enter
+
+- tapOn: 06 Enter 6th word
+- inputText: "prevent"
+- pressKey: Enter
+
+- tapOn: Next
+
+- tapOn: "07 Enter 7th word"
+- inputText: "message"
+- pressKey: Enter
+
+- tapOn: 08 Enter 8th word
+- inputText: "symbol"
+- pressKey: Enter
+
+- tapOn: 09 Enter 9th word
+- inputText: "pulse"
+- pressKey: Enter
+
+- tapOn: 10 Enter 10th word
+- inputText: "fine"
+- pressKey: Enter
+
+- tapOn: 11 Enter 11th word
+- inputText: "midnight"
+- pressKey: Enter
+
+- tapOn: 12 Enter 12th word
+- inputText: "solar"
+- pressKey: Enter
+
+- tapOn: Proceed
+
+# --------- Recovery Using Recovery Keys -----------
+
+- tapOn:
+ id: UsingRecoveryKeysButton
+- tapOn:
+ point: "50%,85%"
+
+# --------- Start witha new Tribe Wallet -----------
+
+- tapOn:
+ id: StartWithANewTribeWalletButton
+
+- tapOn:
+ point: 50%,28%
+- inputText: "Test"
+- pressKey: Enter
+- tapOn: Proceed
\ No newline at end of file
diff --git a/flows/settings.yaml b/flows/settings.yaml
new file mode 100644
index 0000000000..6134a41423
--- /dev/null
+++ b/flows/settings.yaml
@@ -0,0 +1,100 @@
+# settings.yaml
+
+appId: io.hexawallet.hexa.development
+---
+- runFlow: "login.yaml"
+- tapOn: Setting, tab, 4 of 4
+
+# ------------ Wallet Backup --------------
+
+- tapOn:
+ id: SettingsButton
+ index: 0
+- tapOn:
+ point: "24%,87%"
+- tapOn: 01 ********
+- tapOn: 02 ********
+- tapOn: 03 ********
+- tapOn: 04 ********
+- tapOn: Back
+- tapOn:
+ point: 7%,11%
+
+# ------------ Account Management --------------
+
+- tapOn:
+ id: SettingsButton
+ index: 1
+- tapOn:
+ point: "7%,11%"
+
+# ------------ Node Settings --------------
+
+- tapOn:
+ id: SettingsButton
+ index: 2
+- tapOn:
+ id: SetupPersonalNodeAddButton
+- tapOn:
+ id: RNE__Input__text-input
+ index: 0
+- inputText: "Sample Node Address"
+- tapOn:
+ id: RNE__Input__text-input
+ index: 1
+- inputText: "Sample Port Number"
+- tapOn:
+ id: UseSSLNodeSwitch
+- tapOn:
+ id: CloseSetupPersonalNodeButton
+- extendedWaitUntil:
+ visible:
+ id: SetupPersonalNodeAddButton # or any other selector
+ timeout: 400000 # Timeout in milliseconds
+- tapOn:
+
+# ------------ Wallet Settings --------------
+
+- tapOn:
+ id: SettingsButton
+ index: 3
+- tapOn:
+ id: WalletSettingsOptions
+ index: 1
+- tapOn: $ USD
+- tapOn: ₹ INR
+- tapOn:
+- tapOn:
+ id: WalletSettingsOptions
+ index: 0
+- tapOn: "1"
+- tapOn: "2"
+- tapOn: "3"
+- tapOn: "4"
+- tapOn: Proceed
+- tapOn: "1"
+- tapOn: "2"
+- tapOn: "3"
+- tapOn: "4"
+- tapOn: "1"
+- tapOn: "2"
+- tapOn: "3"
+- tapOn: "4"
+- tapOn: Proceed
+- tapOn: View Settings
+
+# ------------ App Info --------------
+
+- tapOn:
+ id: SettingsButton
+ index: 4
+- tapOn:
+
+# # ------------ FAQ --------------
+# - tapOn:
+# id: faqButton
+
+# # ------------ TG Group --------------
+
+# - tapOn:
+# id: btTelegram
diff --git a/ios/HEXA.xcodeproj/project.pbxproj b/ios/HEXA.xcodeproj/project.pbxproj
index a4b52b79b7..ce209a5d21 100644
--- a/ios/HEXA.xcodeproj/project.pbxproj
+++ b/ios/HEXA.xcodeproj/project.pbxproj
@@ -11,7 +11,7 @@
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
1FD7ACE44B524CC0B1241553 /* Montserrat-SemiBold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 95620CD1F8B44203A87BE6F7 /* Montserrat-SemiBold.ttf */; };
- 237CDD8180521336E8E128D3 /* libPods-HEXA Stage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 949B4AD1F401C3AF3EF614E5 /* libPods-HEXA Stage.a */; };
+ 2D7A8800828E7A2257DFB8CA /* libPods-HEXA.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A2FD6EE79EEF5A240F4311AA /* libPods-HEXA.a */; };
33C70E76106F4F649FE7BB6A /* Montserrat-Light.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C4CEFC8792754D17B591C320 /* Montserrat-Light.ttf */; };
4929D5DDD981494BB7FF83DD /* Montserrat-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 63D24441726E4404BC7B7B2E /* Montserrat-Regular.ttf */; };
4D38330326009EDE00F82BDB /* iCloud.m in Sources */ = {isa = PBXBuildFile; fileRef = CCF1689125FB8FCF0038E126 /* iCloud.m */; };
@@ -22,7 +22,6 @@
4D3833092600BD1400F82BDB /* HexaWalletBackup.json in Resources */ = {isa = PBXBuildFile; fileRef = CCF1689425FB8FE60038E126 /* HexaWalletBackup.json */; };
4DA9C91C25CBC3DA00454AF7 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 619CF234250654F600A8E6DF /* GoogleService-Info.plist */; };
4DA9C91D25CBC3E100454AF7 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 619CF22F250654D100A8E6DF /* GoogleService-Info.plist */; };
- 5F6B7C2ABEB9E6279BD99C49 /* libPods-HEXA.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E3B610F237A6F08F5F181419 /* libPods-HEXA.a */; };
6111482F2506463F00ED433D /* CloudKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6111482E2506463F00ED433D /* CloudKit.framework */; };
611148352506478E00ED433D /* PdfGenerate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 611148312506478E00ED433D /* PdfGenerate.swift */; };
6111483A250647BD00ED433D /* PdfPassword.m in Sources */ = {isa = PBXBuildFile; fileRef = 61114839250647BD00ED433D /* PdfPassword.m */; };
@@ -41,9 +40,10 @@
6182F7AA250B2742005B6ECE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
6182F7AB250B2742005B6ECE /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
61B5223F25076DF5002F73B2 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 619CF232250654E300A8E6DF /* GoogleService-Info.plist */; };
+ 6CEEE0DCFE6B6C5F413FFFA5 /* libPods-HEXA Dev.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D1A0E64E80E8839E371695F2 /* libPods-HEXA Dev.a */; };
6D02694291194CBD9EB24B7D /* Montserrat-MediumItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7EBDAB1C01FE4D629B1A7C39 /* Montserrat-MediumItalic.ttf */; };
- 7848CC2319C5FD7B5C873A0C /* libPods-HEXA Dev.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F3C5E168310E57C2D9A6EDE /* libPods-HEXA Dev.a */; };
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
+ 9C83F78ACC5FDE7874BEF7D8 /* libPods-HEXA Stage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 566DF0413F43AC2DB600500F /* libPods-HEXA Stage.a */; };
9DFB7500BB9F4E4AAAACF109 /* Montserrat-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 5676B1BA3B1B4E3F9D29308A /* Montserrat-Medium.ttf */; };
AA11C3A22548270900B032D1 /* HEXA.Dev-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = AA11C3A12548270900B032D1 /* HEXA.Dev-Info.plist */; };
AA11C3A42548271A00B032D1 /* HEXA.Stage-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = AA11C3A32548271A00B032D1 /* HEXA.Stage-Info.plist */; };
@@ -77,6 +77,8 @@
/* Begin PBXFileReference section */
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
00E356F21AD99517003FC87E /* HEXATests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HEXATests.m; sourceTree = ""; };
+ 06E293FEDFD63B39F02E5A48 /* Pods-HEXA.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HEXA.release.xcconfig"; path = "Target Support Files/Pods-HEXA/Pods-HEXA.release.xcconfig"; sourceTree = ""; };
+ 1114B6120E24AD6E4391F0E3 /* Pods-HEXA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HEXA.debug.xcconfig"; path = "Target Support Files/Pods-HEXA/Pods-HEXA.debug.xcconfig"; sourceTree = ""; };
13B07F961A680F5B00A75B9A /* Bitcoin Tribe.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Bitcoin Tribe.app"; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = HEXA/AppDelegate.h; sourceTree = ""; };
13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = HEXA/AppDelegate.m; sourceTree = ""; };
@@ -86,20 +88,17 @@
158EFB7281D64BD3B2F784B3 /* FiraSans-MediumItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "FiraSans-MediumItalic.ttf"; path = "../src/assets/fonts/FiraSans-MediumItalic.ttf"; sourceTree = ""; };
196ECDEACD8644898512DACB /* Montserrat-Bold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Montserrat-Bold.ttf"; path = "../src/assets/fonts/Montserrat-Bold.ttf"; sourceTree = ""; };
1BDE786A62844DE89D7EE379 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; };
- 1E6DE7812A8C95DFAF99325A /* Pods-HEXA Stage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HEXA Stage.release.xcconfig"; path = "Target Support Files/Pods-HEXA Stage/Pods-HEXA Stage.release.xcconfig"; sourceTree = ""; };
227A2A160AEE42F4999170A1 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = ""; };
262894C9A21E4EE48406A1D0 /* FiraSans-Bold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "FiraSans-Bold.ttf"; path = "../src/assets/fonts/FiraSans-Bold.ttf"; sourceTree = ""; };
2952F3993041452D93FA88B9 /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; };
- 32FDB81AE47B6EEC0BD81FF5 /* Pods-HEXA Dev.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HEXA Dev.release.xcconfig"; path = "Target Support Files/Pods-HEXA Dev/Pods-HEXA Dev.release.xcconfig"; sourceTree = ""; };
39CE481CEF614843B40E1EC5 /* OpenSans-ExtraBold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-ExtraBold.ttf"; path = "../src/assets/fonts/OpenSans-ExtraBold.ttf"; sourceTree = ""; };
466F94D18D9449A8957F3610 /* OpenSans-Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-Regular.ttf"; path = "../src/assets/fonts/OpenSans-Regular.ttf"; sourceTree = ""; };
4D3784CB53EE4E7D914C42B4 /* FiraSans-SemiBold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "FiraSans-SemiBold.ttf"; path = "../src/assets/fonts/FiraSans-SemiBold.ttf"; sourceTree = ""; };
- 4F3C5E168310E57C2D9A6EDE /* libPods-HEXA Dev.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HEXA Dev.a"; sourceTree = BUILT_PRODUCTS_DIR; };
5395FCDF04064C3DBEEE4A64 /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Regular.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"; sourceTree = ""; };
559C9AB9CDAC4F3FA05EC3FE /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; };
+ 566DF0413F43AC2DB600500F /* libPods-HEXA Stage.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HEXA Stage.a"; sourceTree = BUILT_PRODUCTS_DIR; };
5676B1BA3B1B4E3F9D29308A /* Montserrat-Medium.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Montserrat-Medium.ttf"; path = "../src/assets/fonts/Montserrat-Medium.ttf"; sourceTree = ""; };
57F664D38343416FB1C55280 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; };
- 588886991029783B9689381D /* Pods-HEXA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HEXA.debug.xcconfig"; path = "Target Support Files/Pods-HEXA/Pods-HEXA.debug.xcconfig"; sourceTree = ""; };
599B38ECC3EC4E4CB38D4C8A /* OpenSans-Bold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-Bold.ttf"; path = "../src/assets/fonts/OpenSans-Bold.ttf"; sourceTree = ""; };
6111482E2506463F00ED433D /* CloudKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CloudKit.framework; path = System/Library/Frameworks/CloudKit.framework; sourceTree = SDKROOT; };
611148312506478E00ED433D /* PdfGenerate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PdfGenerate.swift; sourceTree = ""; };
@@ -120,20 +119,20 @@
7EBDAB1C01FE4D629B1A7C39 /* Montserrat-MediumItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Montserrat-MediumItalic.ttf"; path = "../src/assets/fonts/Montserrat-MediumItalic.ttf"; sourceTree = ""; };
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = HEXA/LaunchScreen.storyboard; sourceTree = ""; };
8A1B98A7327A4AD8A5860B74 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; };
- 8FA226D11F1F9EAEFC4C4205 /* Pods-HEXA Dev.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HEXA Dev.debug.xcconfig"; path = "Target Support Files/Pods-HEXA Dev/Pods-HEXA Dev.debug.xcconfig"; sourceTree = ""; };
917A2A003A01429481FD026C /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; };
- 949B4AD1F401C3AF3EF614E5 /* libPods-HEXA Stage.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HEXA Stage.a"; sourceTree = BUILT_PRODUCTS_DIR; };
95620CD1F8B44203A87BE6F7 /* Montserrat-SemiBold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Montserrat-SemiBold.ttf"; path = "../src/assets/fonts/Montserrat-SemiBold.ttf"; sourceTree = ""; };
96E40822F039459A97686C32 /* OpenSans-Italic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-Italic.ttf"; path = "../src/assets/fonts/OpenSans-Italic.ttf"; sourceTree = ""; };
9963B02F45124E09B5D31DE8 /* FiraSans-Light.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "FiraSans-Light.ttf"; path = "../src/assets/fonts/FiraSans-Light.ttf"; sourceTree = ""; };
9A4E6F5E9B5642DD8E860F82 /* FiraSans-Medium.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "FiraSans-Medium.ttf"; path = "../src/assets/fonts/FiraSans-Medium.ttf"; sourceTree = ""; };
9E29DABD5A154C1997E9AD44 /* OpenSans-BoldItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-BoldItalic.ttf"; path = "../src/assets/fonts/OpenSans-BoldItalic.ttf"; sourceTree = ""; };
+ A2FD6EE79EEF5A240F4311AA /* libPods-HEXA.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HEXA.a"; sourceTree = BUILT_PRODUCTS_DIR; };
A35E966FF3B347CFA2E0CBE5 /* FiraSans-BookItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "FiraSans-BookItalic.ttf"; path = "../src/assets/fonts/FiraSans-BookItalic.ttf"; sourceTree = ""; };
- A57D19373905C1C27FEF25F3 /* Pods-HEXA.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HEXA.release.xcconfig"; path = "Target Support Files/Pods-HEXA/Pods-HEXA.release.xcconfig"; sourceTree = ""; };
AA11C3A12548270900B032D1 /* HEXA.Dev-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "HEXA.Dev-Info.plist"; path = "HEXA/HEXA.Dev-Info.plist"; sourceTree = ""; };
AA11C3A32548271A00B032D1 /* HEXA.Stage-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "HEXA.Stage-Info.plist"; path = "HEXA/HEXA.Stage-Info.plist"; sourceTree = ""; };
+ AA19F01C683EF9AF27AAAB54 /* Pods-HEXA Dev.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HEXA Dev.release.xcconfig"; path = "Target Support Files/Pods-HEXA Dev/Pods-HEXA Dev.release.xcconfig"; sourceTree = ""; };
AD12BB582E724B3887BFFE64 /* OpenSans-Light.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-Light.ttf"; path = "../src/assets/fonts/OpenSans-Light.ttf"; sourceTree = ""; };
C1B0A87F089E485685570E93 /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = SimpleLineIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = ""; };
+ C25F53C05A518DAF33415390 /* Pods-HEXA Dev.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HEXA Dev.debug.xcconfig"; path = "Target Support Files/Pods-HEXA Dev/Pods-HEXA Dev.debug.xcconfig"; sourceTree = ""; };
C4CEFC8792754D17B591C320 /* Montserrat-Light.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Montserrat-Light.ttf"; path = "../src/assets/fonts/Montserrat-Light.ttf"; sourceTree = ""; };
C88B0D378D49456C80224451 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; };
C8BC543B70204B8FB3B09520 /* Fontisto.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Fontisto.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf"; sourceTree = ""; };
@@ -141,19 +140,20 @@
CCF1689125FB8FCF0038E126 /* iCloud.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iCloud.m; path = iCloud/iCloud.m; sourceTree = ""; };
CCF1689325FB8FD90038E126 /* iCloud.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iCloud.h; path = iCloud/iCloud.h; sourceTree = ""; };
CCF1689425FB8FE60038E126 /* HexaWalletBackup.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = HexaWalletBackup.json; path = iCloud/HexaWalletBackup.json; sourceTree = ""; };
+ D1A0E64E80E8839E371695F2 /* libPods-HEXA Dev.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HEXA Dev.a"; sourceTree = BUILT_PRODUCTS_DIR; };
D242AB8F3F014E068BE8C13D /* FontAwesome5_Brands.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Brands.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf"; sourceTree = ""; };
DAD1674B7394413A82B21AF7 /* OpenSans-SemiboldItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-SemiboldItalic.ttf"; path = "../src/assets/fonts/OpenSans-SemiboldItalic.ttf"; sourceTree = ""; };
+ DC3D4F111CB31B026196EC33 /* Pods-HEXA Stage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HEXA Stage.release.xcconfig"; path = "Target Support Files/Pods-HEXA Stage/Pods-HEXA Stage.release.xcconfig"; sourceTree = ""; };
DF7107F6EA2D4846A469A116 /* OpenSans-Semibold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-Semibold.ttf"; path = "../src/assets/fonts/OpenSans-Semibold.ttf"; sourceTree = ""; };
E2EDF28037624796A9996D82 /* FiraSans-Italic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "FiraSans-Italic.ttf"; path = "../src/assets/fonts/FiraSans-Italic.ttf"; sourceTree = ""; };
- E3B610F237A6F08F5F181419 /* libPods-HEXA.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HEXA.a"; sourceTree = BUILT_PRODUCTS_DIR; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
EE6F36351DD345FAB2CDA5DE /* AntDesign.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = AntDesign.ttf; path = "../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf"; sourceTree = ""; };
F49AA80A26A0284D0097D815 /* BackgroundViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BackgroundViewController.h; sourceTree = ""; };
F49AA80B26A0284D0097D815 /* BackgroundViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BackgroundViewController.m; sourceTree = ""; };
F49AA80C26A0284D0097D815 /* BackgroundViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BackgroundViewController.xib; sourceTree = ""; };
- F4CF9D631DFE58D6AF3E43FA /* Pods-HEXA Stage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HEXA Stage.debug.xcconfig"; path = "Target Support Files/Pods-HEXA Stage/Pods-HEXA Stage.debug.xcconfig"; sourceTree = ""; };
F727B7636E8440F1BC2C78B2 /* OpenSans-LightItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-LightItalic.ttf"; path = "../src/assets/fonts/OpenSans-LightItalic.ttf"; sourceTree = ""; };
+ FC78098D43A277CC5A91A0C4 /* Pods-HEXA Stage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HEXA Stage.debug.xcconfig"; path = "Target Support Files/Pods-HEXA Stage/Pods-HEXA Stage.debug.xcconfig"; sourceTree = ""; };
FD2C9FFB56CD431FBFFABD4B /* Montserrat-Italic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Montserrat-Italic.ttf"; path = "../src/assets/fonts/Montserrat-Italic.ttf"; sourceTree = ""; };
/* End PBXFileReference section */
@@ -163,7 +163,7 @@
buildActionMask = 2147483647;
files = (
6111482F2506463F00ED433D /* CloudKit.framework in Frameworks */,
- 5F6B7C2ABEB9E6279BD99C49 /* libPods-HEXA.a in Frameworks */,
+ 2D7A8800828E7A2257DFB8CA /* libPods-HEXA.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -172,7 +172,7 @@
buildActionMask = 2147483647;
files = (
6182F77B250B23D7005B6ECE /* CloudKit.framework in Frameworks */,
- 7848CC2319C5FD7B5C873A0C /* libPods-HEXA Dev.a in Frameworks */,
+ 6CEEE0DCFE6B6C5F413FFFA5 /* libPods-HEXA Dev.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -181,7 +181,7 @@
buildActionMask = 2147483647;
files = (
6182F7A7250B2742005B6ECE /* CloudKit.framework in Frameworks */,
- 237CDD8180521336E8E128D3 /* libPods-HEXA Stage.a in Frameworks */,
+ 9C83F78ACC5FDE7874BEF7D8 /* libPods-HEXA Stage.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -234,9 +234,9 @@
6111482E2506463F00ED433D /* CloudKit.framework */,
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
ED2971642150620600B7C4FE /* JavaScriptCore.framework */,
- E3B610F237A6F08F5F181419 /* libPods-HEXA.a */,
- 4F3C5E168310E57C2D9A6EDE /* libPods-HEXA Dev.a */,
- 949B4AD1F401C3AF3EF614E5 /* libPods-HEXA Stage.a */,
+ A2FD6EE79EEF5A240F4311AA /* libPods-HEXA.a */,
+ D1A0E64E80E8839E371695F2 /* libPods-HEXA Dev.a */,
+ 566DF0413F43AC2DB600500F /* libPods-HEXA Stage.a */,
);
name = Frameworks;
sourceTree = "";
@@ -281,12 +281,12 @@
9FD0418BDBDF3D36477ED773 /* Pods */ = {
isa = PBXGroup;
children = (
- 588886991029783B9689381D /* Pods-HEXA.debug.xcconfig */,
- A57D19373905C1C27FEF25F3 /* Pods-HEXA.release.xcconfig */,
- 8FA226D11F1F9EAEFC4C4205 /* Pods-HEXA Dev.debug.xcconfig */,
- 32FDB81AE47B6EEC0BD81FF5 /* Pods-HEXA Dev.release.xcconfig */,
- F4CF9D631DFE58D6AF3E43FA /* Pods-HEXA Stage.debug.xcconfig */,
- 1E6DE7812A8C95DFAF99325A /* Pods-HEXA Stage.release.xcconfig */,
+ 1114B6120E24AD6E4391F0E3 /* Pods-HEXA.debug.xcconfig */,
+ 06E293FEDFD63B39F02E5A48 /* Pods-HEXA.release.xcconfig */,
+ C25F53C05A518DAF33415390 /* Pods-HEXA Dev.debug.xcconfig */,
+ AA19F01C683EF9AF27AAAB54 /* Pods-HEXA Dev.release.xcconfig */,
+ FC78098D43A277CC5A91A0C4 /* Pods-HEXA Stage.debug.xcconfig */,
+ DC3D4F111CB31B026196EC33 /* Pods-HEXA Stage.release.xcconfig */,
);
path = Pods;
sourceTree = "";
@@ -356,15 +356,15 @@
isa = PBXNativeTarget;
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "HEXA" */;
buildPhases = (
- CCFCBF23F94C3E9AF1A229DE /* [CP] Check Pods Manifest.lock */,
+ E7D5BFD78E459CC449A51145 /* [CP] Check Pods Manifest.lock */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
13B07F8E1A680F5B00A75B9A /* Resources */,
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
- 410D4EA1BBB8949E8948E773 /* [CP] Embed Pods Frameworks */,
- D534EDB760F2BA44647C0BED /* [CP] Copy Pods Resources */,
- CC8DDC5C4C1D657D88D4DD98 /* [CP-User] [RNFB] Core Configuration */,
- 0242AF6CAF61C219F097E08D /* [CP-User] [RNFB] Crashlytics Configuration */,
+ 2B3CC679D26027119267F479 /* [CP] Embed Pods Frameworks */,
+ 0954CF239197B8CCF9C0D9CA /* [CP] Copy Pods Resources */,
+ 281E3690B0051D593124C662 /* [CP-User] [RNFB] Core Configuration */,
+ E8CFD9B7547FD813748A4AF6 /* [CP-User] [RNFB] Crashlytics Configuration */,
);
buildRules = (
);
@@ -379,16 +379,16 @@
isa = PBXNativeTarget;
buildConfigurationList = 6182F793250B23D7005B6ECE /* Build configuration list for PBXNativeTarget "HEXA Dev" */;
buildPhases = (
- B9C661EAA39E7F0FE1C61D02 /* [CP] Check Pods Manifest.lock */,
+ 8B73147CC30BE2D32F6CCB15 /* [CP] Check Pods Manifest.lock */,
4D3833062600A16700F82BDB /* Start Packager */,
6182F775250B23D7005B6ECE /* Sources */,
6182F77A250B23D7005B6ECE /* Frameworks */,
6182F77D250B23D7005B6ECE /* Resources */,
4D38330B2600BEC000F82BDB /* Bundle React Native code and images */,
- 85921108C3CF0640ECF0EEE2 /* [CP] Embed Pods Frameworks */,
- 5727C5DD53954966B4192485 /* [CP] Copy Pods Resources */,
- 78080E0C85395FA1FBAB96D2 /* [CP-User] [RNFB] Core Configuration */,
- EC86BA14AEBC52ADF59714A4 /* [CP-User] [RNFB] Crashlytics Configuration */,
+ 45D169498A3E7FFC38B05F31 /* [CP] Embed Pods Frameworks */,
+ B420B5E1F4A6AD78386AFB56 /* [CP] Copy Pods Resources */,
+ 7F0C21A9F7B1EF8531A53C6D /* [CP-User] [RNFB] Core Configuration */,
+ DCE51AF00F0E1D9BCC36A947 /* [CP-User] [RNFB] Crashlytics Configuration */,
);
buildRules = (
);
@@ -403,17 +403,17 @@
isa = PBXNativeTarget;
buildConfigurationList = 6182F7BF250B2742005B6ECE /* Build configuration list for PBXNativeTarget "HEXA Stage" */;
buildPhases = (
- 2FB1D07517B1B6FD1C6FAF8C /* [CP] Check Pods Manifest.lock */,
+ AF54C44FBFD24A456C171A7E /* [CP] Check Pods Manifest.lock */,
4D260BB12613190A001DA4F9 /* Start Packager */,
6182F7A1250B2742005B6ECE /* Sources */,
6182F7A6250B2742005B6ECE /* Frameworks */,
6182F7A9250B2742005B6ECE /* Resources */,
4D38330D2600BF0500F82BDB /* Bundle React Native code and images */,
E5A02DBA22BA388F5357F55F /* ShellScript */,
- 2ABAA5C6C634778EC5F6FD01 /* [CP] Embed Pods Frameworks */,
- 0F417F540ADC9AAA01A13F44 /* [CP] Copy Pods Resources */,
- EBA5E7997536D468EC71D3FB /* [CP-User] [RNFB] Core Configuration */,
- 321C0B1326D8F0E162604A4B /* [CP-User] [RNFB] Crashlytics Configuration */,
+ BEB283A0DEB9A0DC5154E7B7 /* [CP] Embed Pods Frameworks */,
+ C2E8CB8F583F9370A14B5DDA /* [CP] Copy Pods Resources */,
+ C5E0944F028426EA9297B9F4 /* [CP-User] [RNFB] Core Configuration */,
+ A64BF3E39993E5761794B0FC /* [CP-User] [RNFB] Crashlytics Configuration */,
);
buildRules = (
);
@@ -544,27 +544,13 @@
shellPath = /bin/sh;
shellScript = "cd $PROJECT_DIR/..\nexport NODE_BINARY=node\n./node_modules/react-native/scripts/react-native-xcode.sh\n";
};
- 0242AF6CAF61C219F097E08D /* [CP-User] [RNFB] Crashlytics Configuration */ = {
+ 0954CF239197B8CCF9C0D9CA /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
- "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}",
- "$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
- );
- name = "[CP-User] [RNFB] Crashlytics Configuration";
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\nif [[ ${PODS_ROOT} ]]; then\n echo \"info: Exec FirebaseCrashlytics Run from Pods\"\n \"${PODS_ROOT}/FirebaseCrashlytics/run\"\nelse\n echo \"info: Exec FirebaseCrashlytics Run from framework\"\n \"${PROJECT_DIR}/FirebaseCrashlytics.framework/run\"\nfi\n";
- };
- 0F417F540ADC9AAA01A13F44 /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-HEXA Stage/Pods-HEXA Stage-resources.sh",
+ "${PODS_ROOT}/Target Support Files/Pods-HEXA/Pods-HEXA-resources.sh",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
@@ -605,70 +591,47 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HEXA Stage/Pods-HEXA Stage-resources.sh\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HEXA/Pods-HEXA-resources.sh\"\n";
showEnvVarsInLog = 0;
};
- 2ABAA5C6C634778EC5F6FD01 /* [CP] Embed Pods Frameworks */ = {
+ 281E3690B0051D593124C662 /* [CP-User] [RNFB] Core Configuration */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-HEXA Stage/Pods-HEXA Stage-frameworks.sh",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
- );
- name = "[CP] Embed Pods Frameworks";
- outputPaths = (
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
+ "$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
);
+ name = "[CP-User] [RNFB] Core Configuration";
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HEXA Stage/Pods-HEXA Stage-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
+ shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"python3 not found, firebase.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.google_analytics_automatic_screen_reporting_enabled\n _ANALYTICS_AUTO_SCREEN_REPORTING=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_automatic_screen_reporting_enabled\")\n if [[ $_ANALYTICS_AUTO_SCREEN_REPORTING ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAutomaticScreenReportingEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_SCREEN_REPORTING\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\n";
};
- 2FB1D07517B1B6FD1C6FAF8C /* [CP] Check Pods Manifest.lock */ = {
+ 2B3CC679D26027119267F479 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
- inputFileListPaths = (
- );
inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-HEXA/Pods-HEXA-frameworks.sh",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
);
+ name = "[CP] Embed Pods Frameworks";
outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-HEXA Stage-checkManifestLockResult.txt",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
);
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-HEXA/Pods-HEXA-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
- 321C0B1326D8F0E162604A4B /* [CP-User] [RNFB] Crashlytics Configuration */ = {
+ 45D169498A3E7FFC38B05F31 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
- "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}",
- "$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
- );
- name = "[CP-User] [RNFB] Crashlytics Configuration";
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\nif [[ ${PODS_ROOT} ]]; then\n echo \"info: Exec FirebaseCrashlytics Run from Pods\"\n \"${PODS_ROOT}/FirebaseCrashlytics/run\"\nelse\n echo \"info: Exec FirebaseCrashlytics Run from framework\"\n \"${PROJECT_DIR}/FirebaseCrashlytics.framework/run\"\nfi\n";
- };
- 410D4EA1BBB8949E8948E773 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-HEXA/Pods-HEXA-frameworks.sh",
+ "${PODS_ROOT}/Target Support Files/Pods-HEXA Dev/Pods-HEXA Dev-frameworks.sh",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
);
name = "[CP] Embed Pods Frameworks";
@@ -677,7 +640,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HEXA/Pods-HEXA-frameworks.sh\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HEXA Dev/Pods-HEXA Dev-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
4D260BB12613190A001DA4F9 /* Start Packager */ = {
@@ -752,88 +715,56 @@
shellPath = /bin/sh;
shellScript = "# Type a script or drag a script file from your workspace to insert its path.\ncd $PROJECT_DIR/..\nexport NODE_BINARY=node\n./node_modules/react-native/scripts/react-native-xcode.sh\n";
};
- 5727C5DD53954966B4192485 /* [CP] Copy Pods Resources */ = {
+ 7F0C21A9F7B1EF8531A53C6D /* [CP-User] [RNFB] Core Configuration */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-HEXA Dev/Pods-HEXA Dev-resources.sh",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
- "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
- );
- name = "[CP] Copy Pods Resources";
- outputPaths = (
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
+ "$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
);
+ name = "[CP-User] [RNFB] Core Configuration";
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HEXA Dev/Pods-HEXA Dev-resources.sh\"\n";
- showEnvVarsInLog = 0;
+ shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"python3 not found, firebase.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.google_analytics_automatic_screen_reporting_enabled\n _ANALYTICS_AUTO_SCREEN_REPORTING=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_automatic_screen_reporting_enabled\")\n if [[ $_ANALYTICS_AUTO_SCREEN_REPORTING ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAutomaticScreenReportingEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_SCREEN_REPORTING\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\n";
};
- 78080E0C85395FA1FBAB96D2 /* [CP-User] [RNFB] Core Configuration */ = {
+ 8B73147CC30BE2D32F6CCB15 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
+ inputFileListPaths = (
+ );
inputPaths = (
- "$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-HEXA Dev-checkManifestLockResult.txt",
);
- name = "[CP-User] [RNFB] Core Configuration";
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"python3 not found, firebase.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.google_analytics_automatic_screen_reporting_enabled\n _ANALYTICS_AUTO_SCREEN_REPORTING=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_automatic_screen_reporting_enabled\")\n if [[ $_ANALYTICS_AUTO_SCREEN_REPORTING ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAutomaticScreenReportingEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_SCREEN_REPORTING\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\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;
};
- 85921108C3CF0640ECF0EEE2 /* [CP] Embed Pods Frameworks */ = {
+ A64BF3E39993E5761794B0FC /* [CP-User] [RNFB] Crashlytics Configuration */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-HEXA Dev/Pods-HEXA Dev-frameworks.sh",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
- );
- name = "[CP] Embed Pods Frameworks";
- outputPaths = (
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
+ "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}",
+ "$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
);
+ name = "[CP-User] [RNFB] Crashlytics Configuration";
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HEXA Dev/Pods-HEXA Dev-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
+ shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\nif [[ ${PODS_ROOT} ]]; then\n echo \"info: Exec FirebaseCrashlytics Run from Pods\"\n \"${PODS_ROOT}/FirebaseCrashlytics/run\"\nelse\n echo \"info: Exec FirebaseCrashlytics Run from framework\"\n \"${PROJECT_DIR}/FirebaseCrashlytics.framework/run\"\nfi\n";
};
- B9C661EAA39E7F0FE1C61D02 /* [CP] Check Pods Manifest.lock */ = {
+ AF54C44FBFD24A456C171A7E /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -848,55 +779,88 @@
outputFileListPaths = (
);
outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-HEXA Dev-checkManifestLockResult.txt",
+ "$(DERIVED_FILE_DIR)/Pods-HEXA Stage-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;
};
- CC8DDC5C4C1D657D88D4DD98 /* [CP-User] [RNFB] Core Configuration */ = {
+ B420B5E1F4A6AD78386AFB56 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
- "$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
+ "${PODS_ROOT}/Target Support Files/Pods-HEXA Dev/Pods-HEXA Dev-resources.sh",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
);
- name = "[CP-User] [RNFB] Core Configuration";
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"python3 not found, firebase.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.google_analytics_automatic_screen_reporting_enabled\n _ANALYTICS_AUTO_SCREEN_REPORTING=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_automatic_screen_reporting_enabled\")\n if [[ $_ANALYTICS_AUTO_SCREEN_REPORTING ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAutomaticScreenReportingEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_SCREEN_REPORTING\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HEXA Dev/Pods-HEXA Dev-resources.sh\"\n";
+ showEnvVarsInLog = 0;
};
- CCFCBF23F94C3E9AF1A229DE /* [CP] Check Pods Manifest.lock */ = {
+ BEB283A0DEB9A0DC5154E7B7 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
- inputFileListPaths = (
- );
inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-HEXA Stage/Pods-HEXA Stage-frameworks.sh",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
);
+ name = "[CP] Embed Pods Frameworks";
outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-HEXA-checkManifestLockResult.txt",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
);
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-HEXA Stage/Pods-HEXA Stage-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
- D534EDB760F2BA44647C0BED /* [CP] Copy Pods Resources */ = {
+ C2E8CB8F583F9370A14B5DDA /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-HEXA/Pods-HEXA-resources.sh",
+ "${PODS_ROOT}/Target Support Files/Pods-HEXA Stage/Pods-HEXA Stage-resources.sh",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
@@ -937,9 +901,36 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HEXA/Pods-HEXA-resources.sh\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HEXA Stage/Pods-HEXA Stage-resources.sh\"\n";
showEnvVarsInLog = 0;
};
+ C5E0944F028426EA9297B9F4 /* [CP-User] [RNFB] Core Configuration */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
+ );
+ name = "[CP-User] [RNFB] Core Configuration";
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"python3 not found, firebase.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.google_analytics_automatic_screen_reporting_enabled\n _ANALYTICS_AUTO_SCREEN_REPORTING=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_automatic_screen_reporting_enabled\")\n if [[ $_ANALYTICS_AUTO_SCREEN_REPORTING ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAutomaticScreenReportingEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_SCREEN_REPORTING\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\n";
+ };
+ DCE51AF00F0E1D9BCC36A947 /* [CP-User] [RNFB] Crashlytics Configuration */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}",
+ "$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
+ );
+ name = "[CP-User] [RNFB] Crashlytics Configuration";
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\nif [[ ${PODS_ROOT} ]]; then\n echo \"info: Exec FirebaseCrashlytics Run from Pods\"\n \"${PODS_ROOT}/FirebaseCrashlytics/run\"\nelse\n echo \"info: Exec FirebaseCrashlytics Run from framework\"\n \"${PROJECT_DIR}/FirebaseCrashlytics.framework/run\"\nfi\n";
+ };
E5A02DBA22BA388F5357F55F /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -975,20 +966,29 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HEXA/Pods-HEXA-resources.sh\"\n";
showEnvVarsInLog = 0;
};
- EBA5E7997536D468EC71D3FB /* [CP-User] [RNFB] Core Configuration */ = {
+ E7D5BFD78E459CC449A51145 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
+ inputFileListPaths = (
+ );
inputPaths = (
- "$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)",
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-HEXA-checkManifestLockResult.txt",
);
- name = "[CP-User] [RNFB] Core Configuration";
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"python3 not found, firebase.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.google_analytics_automatic_screen_reporting_enabled\n _ANALYTICS_AUTO_SCREEN_REPORTING=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_automatic_screen_reporting_enabled\")\n if [[ $_ANALYTICS_AUTO_SCREEN_REPORTING ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAutomaticScreenReportingEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_SCREEN_REPORTING\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\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;
};
- EC86BA14AEBC52ADF59714A4 /* [CP-User] [RNFB] Crashlytics Configuration */ = {
+ E8CFD9B7547FD813748A4AF6 /* [CP-User] [RNFB] Crashlytics Configuration */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -1052,7 +1052,7 @@
/* Begin XCBuildConfiguration section */
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 588886991029783B9689381D /* Pods-HEXA.debug.xcconfig */;
+ baseConfigurationReference = 1114B6120E24AD6E4391F0E3 /* Pods-HEXA.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
@@ -1091,7 +1091,7 @@
};
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = A57D19373905C1C27FEF25F3 /* Pods-HEXA.release.xcconfig */;
+ baseConfigurationReference = 06E293FEDFD63B39F02E5A48 /* Pods-HEXA.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
@@ -1130,7 +1130,7 @@
};
6182F794250B23D7005B6ECE /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 8FA226D11F1F9EAEFC4C4205 /* Pods-HEXA Dev.debug.xcconfig */;
+ baseConfigurationReference = C25F53C05A518DAF33415390 /* Pods-HEXA Dev.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-Development";
CLANG_ENABLE_MODULES = YES;
@@ -1173,7 +1173,7 @@
};
6182F795250B23D7005B6ECE /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 32FDB81AE47B6EEC0BD81FF5 /* Pods-HEXA Dev.release.xcconfig */;
+ baseConfigurationReference = AA19F01C683EF9AF27AAAB54 /* Pods-HEXA Dev.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-Development";
CLANG_ENABLE_MODULES = YES;
@@ -1209,7 +1209,7 @@
};
6182F7C0250B2742005B6ECE /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = F4CF9D631DFE58D6AF3E43FA /* Pods-HEXA Stage.debug.xcconfig */;
+ baseConfigurationReference = FC78098D43A277CC5A91A0C4 /* Pods-HEXA Stage.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-Staging";
CLANG_ENABLE_MODULES = YES;
@@ -1248,7 +1248,7 @@
};
6182F7C1250B2742005B6ECE /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 1E6DE7812A8C95DFAF99325A /* Pods-HEXA Stage.release.xcconfig */;
+ baseConfigurationReference = DC3D4F111CB31B026196EC33 /* Pods-HEXA Stage.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-Staging";
CLANG_ENABLE_MODULES = YES;
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index b7986c6031..f6f33f71ef 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -21,7 +21,7 @@ PODS:
- EXPermissions (9.0.1):
- UMCore
- UMPermissionsInterface
- - EXSecureStore (9.3.0):
+ - EXSecureStore (9.2.0):
- UMCore
- FBLazyVector (0.63.3)
- FBReactNativeSpec (0.63.3):
@@ -200,24 +200,24 @@ PODS:
- GoogleUtilities/Environment (~> 7.7)
- nanopb (< 2.30910.0, >= 2.30908.0)
- PromisesObjC (< 3.0, >= 1.2)
- - GoogleUtilities/AppDelegateSwizzler (7.8.0):
+ - GoogleUtilities/AppDelegateSwizzler (7.7.0):
- GoogleUtilities/Environment
- GoogleUtilities/Logger
- GoogleUtilities/Network
- - GoogleUtilities/Environment (7.8.0):
+ - GoogleUtilities/Environment (7.7.0):
- PromisesObjC (< 3.0, >= 1.2)
- - GoogleUtilities/Logger (7.8.0):
+ - GoogleUtilities/Logger (7.7.0):
- GoogleUtilities/Environment
- - GoogleUtilities/MethodSwizzler (7.8.0):
+ - GoogleUtilities/MethodSwizzler (7.7.0):
- GoogleUtilities/Logger
- - GoogleUtilities/Network (7.8.0):
+ - GoogleUtilities/Network (7.7.0):
- GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib"
- GoogleUtilities/Reachability
- - "GoogleUtilities/NSData+zlib (7.8.0)"
- - GoogleUtilities/Reachability (7.8.0):
+ - "GoogleUtilities/NSData+zlib (7.7.0)"
+ - GoogleUtilities/Reachability (7.7.0):
- GoogleUtilities/Logger
- - GoogleUtilities/UserDefaults (7.8.0):
+ - GoogleUtilities/UserDefaults (7.7.0):
- GoogleUtilities/Logger
- GTMSessionFetcher/Core (1.7.2)
- jail-monkey (2.6.0):
@@ -432,7 +432,7 @@ PODS:
- React-Core
- react-native-nfc-manager (3.14.0):
- React-Core
- - react-native-pager-view (6.0.0-rc.2):
+ - react-native-pager-view (6.0.0-rc.1):
- React-Core
- react-native-print (0.6.0):
- React
@@ -442,6 +442,9 @@ PODS:
- React-Core
- react-native-screen-corner-radius (0.1.1):
- React
+ - react-native-tcp-socket (5.6.2):
+ - CocoaAsyncSocket
+ - React-Core
- react-native-udp (4.1.5):
- CocoaAsyncSocket
- React-Core
@@ -512,7 +515,7 @@ PODS:
- React-Core (= 0.63.3)
- React-cxxreact (= 0.63.3)
- React-jsi (= 0.63.3)
- - RealmJS (10.16.0):
+ - RealmJS (10.5.0):
- GCDWebServer
- React
- rn-fetch-blob (0.12.0):
@@ -567,16 +570,13 @@ PODS:
- React
- RNSecureStorage (1.0.82):
- React
- - RNShare (3.8.5):
+ - RNShare (8.2.1):
- React-Core
- RNSVG (12.3.0):
- React-Core
- RNVectorIcons (7.1.0):
- React
- SocketRocket (0.6.0)
- - TcpSockets (4.0.0):
- - CocoaAsyncSocket
- - React
- UMAppLoader (1.2.0)
- UMBarCodeScannerInterface (5.2.1)
- UMCameraInterface (5.2.1)
@@ -665,6 +665,7 @@ DEPENDENCIES:
- react-native-randombytes (from `../node_modules/react-native-randombytes`)
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
- react-native-screen-corner-radius (from `../node_modules/react-native-screen-corner-radius`)
+ - react-native-tcp-socket (from `../node_modules/react-native-tcp-socket`)
- react-native-udp (from `../node_modules/react-native-udp`)
- react-native-video (from `../node_modules/react-native-video`)
- react-native-view-shot (from `../node_modules/react-native-view-shot`)
@@ -702,7 +703,6 @@ DEPENDENCIES:
- RNShare (from `../node_modules/react-native-share`)
- RNSVG (from `../node_modules/react-native-svg`)
- RNVectorIcons (from `../node_modules/react-native-vector-icons`)
- - TcpSockets (from `../node_modules/react-native-tcp`)
- UMAppLoader (from `../node_modules/unimodules-app-loader/ios`)
- UMBarCodeScannerInterface (from `../node_modules/unimodules-barcode-scanner-interface/ios`)
- UMCameraInterface (from `../node_modules/unimodules-camera-interface/ios`)
@@ -837,6 +837,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-safe-area-context"
react-native-screen-corner-radius:
:path: "../node_modules/react-native-screen-corner-radius"
+ react-native-tcp-socket:
+ :path: "../node_modules/react-native-tcp-socket"
react-native-udp:
:path: "../node_modules/react-native-udp"
react-native-video:
@@ -911,8 +913,6 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-svg"
RNVectorIcons:
:path: "../node_modules/react-native-vector-icons"
- TcpSockets:
- :path: "../node_modules/react-native-tcp"
UMAppLoader:
:path: "../node_modules/unimodules-app-loader/ios"
UMBarCodeScannerInterface:
@@ -952,7 +952,7 @@ SPEC CHECKSUMS:
EXFileSystem: 76875135b61708b9afa7e6a89b72a60ba0fdfa20
EXImageLoader: 02ca02c9cd5cc8a97b423207a73a791e0a86bea5
EXPermissions: 80ac3acbdb145930079810fe5b08c022b3428aa8
- EXSecureStore: 1b571851e6068b30b8ec097be848a04603c03bae
+ EXSecureStore: 579cbccd9cd093e6f4336aba073b059008bd78e0
FBLazyVector: 878b59e31113e289e275165efbe4b54fa614d43d
FBReactNativeSpec: 7da9338acfb98d4ef9e5536805a0704572d33c2f
Firebase: 5f8193dff4b5b7c5d5ef72ae54bb76c08e2b841d
@@ -978,7 +978,7 @@ SPEC CHECKSUMS:
glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3
GoogleAppMeasurement: 4c19f031220c72464d460c9daa1fb5d1acce958e
GoogleDataTransport: 1c8145da7117bd68bbbed00cf304edb6a24de00f
- GoogleUtilities: 1d20a6ad97ef46f67bbdec158ce00563a671ebb7
+ GoogleUtilities: e0913149f6b0625b553d70dae12b49fc62914fd1
GTMSessionFetcher: 5595ec75acf5be50814f81e9189490412bad82ba
jail-monkey: 07b83767601a373db876e939b8dbf3f5eb15f073
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
@@ -1010,11 +1010,12 @@ SPEC CHECKSUMS:
react-native-mail: 8fdcd3aef007c33a6877a18eb4cf7447a1d4ce4a
react-native-netinfo: 30fb89fa913c342be82a887b56e96be6d71201dd
react-native-nfc-manager: 449c2c400a4f0ab3b8c084a713f41762a26b3307
- react-native-pager-view: c9171e3b9f212fe6a4a529818745d8cd21fe82a0
+ react-native-pager-view: 06738ffe86f82c53d59a2387f889679fe210acf1
react-native-print: d2d083f2305faacfba12d3896ec6ca72303da2b2
react-native-randombytes: 421f1c7d48c0af8dbcd471b0324393ebf8fe7846
react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9
react-native-screen-corner-radius: 57b6dea3c024035bff8377618df6e5056e6c6f27
+ react-native-tcp-socket: c1b7297619616b4c9caae6889bcb0aba78086989
react-native-udp: 8864b1211857e9d8224ae5cbaf8580970fb99de1
react-native-video: eee541262ada11bc7ffe8ec5508e6a877937c462
react-native-view-shot: 4475fde003fe8a210053d1f98fb9e06c1d834e1c
@@ -1028,7 +1029,7 @@ SPEC CHECKSUMS:
React-RCTText: 65a6de06a7389098ce24340d1d3556015c38f746
React-RCTVibration: 8e9fb25724a0805107fc1acc9075e26f814df454
ReactCommon: 4167844018c9ed375cc01a843e9ee564399e53c3
- RealmJS: 8a3478957315c29cdc0b3f958f2e370d22330b2d
+ RealmJS: 3442dc29909254448c28f500b8b49f976a3b22a8
rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba
RNCAsyncStorage: 005c0e2f09575360f142d0d1f1f15e4ec575b1af
RNCClipboard: cc054ad1e8a33d2a74cd13e565588b4ca928d8fd
@@ -1049,11 +1050,10 @@ SPEC CHECKSUMS:
RNScreens: f7ad633b2e0190b77b6a7aab7f914fad6f198d8d
RNScreenshotPrevent: ec7d8304fd054b8cc17206ec8c7925400ed676b5
RNSecureStorage: 8b2b07278d80c48b3a881c56e604ab147372f243
- RNShare: 7e22ba3bf66294ff7c122a1f2da8a8ec642091a0
+ RNShare: eaee3dd5a06dad397c7d3b14762007035c5de405
RNSVG: 302bfc9905bd8122f08966dc2ce2d07b7b52b9f8
RNVectorIcons: bc69e6a278b14842063605de32bec61f0b251a59
SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608
- TcpSockets: a8eb6b5867fe643e6cfed5db2e4de62f4d1e8fd0
UMAppLoader: 61049c8d55590b74e9ae1d5429bf68d96b4a2528
UMBarCodeScannerInterface: e5e4c87797d3d01214e25cd1618866caf5d4f17f
UMCameraInterface: 415ac060034edecacdbbaa739c223e3f276e0056
diff --git a/src/components/AppBottomSheetTouchableWrapper.tsx b/src/components/AppBottomSheetTouchableWrapper.tsx
index 1d72f3d8ae..55914ab996 100644
--- a/src/components/AppBottomSheetTouchableWrapper.tsx
+++ b/src/components/AppBottomSheetTouchableWrapper.tsx
@@ -11,7 +11,7 @@ import React, { ReactNode } from 'react'
* `@gorhom/bottom-sheet` across the app.
*/
export const AppBottomSheetTouchableWrapper = (
- props: { children: ReactNode } & Pick,
+ props: { children: ReactNode } & Pick,
) =>
Platform.select( {
android: ,
diff --git a/src/components/CardWithRadioBtn.tsx b/src/components/CardWithRadioBtn.tsx
index f0e50aaf79..22e49b9b76 100644
--- a/src/components/CardWithRadioBtn.tsx
+++ b/src/components/CardWithRadioBtn.tsx
@@ -97,7 +97,7 @@ export default function CardWithRadioBtn( {
alignItems: 'center',
}}
>
-
+
{tag !== '' && (
{
Create an F{"&"}F invite
- props.sendRequestToContact()}
>
-
+
-
+
Create Invitation link
@@ -77,13 +77,14 @@ const CreateFNFInvite = (props: Props) => {
props.createGifts()}
>
-
+
-
+
Create Invitation link with gift
@@ -110,11 +111,11 @@ const styles = StyleSheet.create({
paragraphTitleText: {
fontSize: 12,
color: Colors.gray3,
- textAlign: 'left',
- flexWrap: 'wrap'
+ textAlign: "left",
+ flexWrap: "wrap",
},
cardBackView: {
- alignItems: 'center',
+ alignItems: "center",
flexDirection: "row",
width: "100%",
backgroundColor: Colors.numberBg,
diff --git a/src/components/home/AccountCardColumn.tsx b/src/components/home/AccountCardColumn.tsx
index 26cdad62e6..42b52265e7 100644
--- a/src/components/home/AccountCardColumn.tsx
+++ b/src/components/home/AccountCardColumn.tsx
@@ -45,7 +45,7 @@ const AccountCardColumn: React.FC = ( {
)
:
(
- void;
- onPress: () => void
-}
+ onMenuItemSelected: (menuItem: BuyBitcoinBottomSheetMenuItem) => void;
+ onPress: () => void;
+};
export enum BuyMenuItemKind {
- FAST_BITCOINS = 'FAST_BITCOINS',
- SWAN = 'SWAN',
- WYRE = 'WYRE',
- RAMP = 'RAMP'
+ FAST_BITCOINS = "FAST_BITCOINS",
+ SWAN = "SWAN",
+ WYRE = "WYRE",
+ RAMP = "RAMP",
}
export type BuyBitcoinBottomSheetMenuItem = {
title: string;
subtitle: string;
- kind: BuyMenuItemKind | '';
+ kind: BuyMenuItemKind | "";
// imageSource: ImageSourcePropType;
disabled: boolean;
hasButton: boolean;
link: string;
- getImage: any
-}
+ getImage: any;
+};
+const listItemKeyExtractor = (item: BuyBitcoinBottomSheetMenuItem) =>
+ item.title;
-const listItemKeyExtractor = ( item: BuyBitcoinBottomSheetMenuItem ) => item.title
-
-const BuyBitcoinHomeBottomSheet: React.FC = ( { onMenuItemSelected, onPress }: Props ) => {
- const { translations } = useContext( LocalizationContext )
- const strings = translations[ 'home' ]
+const BuyBitcoinHomeBottomSheet: React.FC = ({
+ onMenuItemSelected,
+ onPress,
+}: Props) => {
+ const { translations } = useContext(LocalizationContext);
+ const strings = translations["home"];
const menuItems: BuyBitcoinBottomSheetMenuItem[] = [
{
- title: Platform.OS == 'ios' ? strings.ramp : strings.ramp,
+ title: Platform.OS == "ios" ? strings.ramp : strings.ramp,
subtitle: strings.rampSub,
kind: BuyMenuItemKind.RAMP,
getImage: () => ,
disabled: false,
hasButton: true,
- link: 'https://support.ramp.network/en/',
+ link: "https://support.ramp.network/en/",
},
// {
// title: strings.wyre,
@@ -105,69 +118,88 @@ const BuyBitcoinHomeBottomSheet: React.FC = ( { onMenuItemSelected, onPre
// imageSource: require( '../../assets/images/icons/icon_fastbitcoins_light_blue.png' ),
// disabled: false
// }
- ]
+ ];
- const renderItem = ( { item: menuItem }: { item: BuyBitcoinBottomSheetMenuItem } ) => {
+ const renderItem = ({
+ item: menuItem,
+ }: {
+ item: BuyBitcoinBottomSheetMenuItem;
+ }) => {
return (
-
+
{menuItem.getImage()}
- {menuItem.title}
- {menuItem.subtitle}
+
+ {menuItem.title}
+
+
+ {menuItem.subtitle}
+
-
{ onMenuItemSelected( menuItem ) }}
- disabled={menuItem.disabled}>
- {
+ onMenuItemSelected(menuItem);
+ }}
+ disabled={menuItem.disabled}
+ >
+
-
- {strings.buyBitCoin}
-
+ {strings.buyBitCoin}
- {
- onPress()
- Linking.openURL( menuItem.link )
- }
- }
+ onPress();
+ Linking.openURL(menuItem.link);
+ }}
>
-
+
{strings.fees}
-
- {` ${strings.learnMore} `}
-
+ {` ${strings.learnMore} `}
- )
- }
+ );
+ };
return (
-
+
= ( { onMenuItemSelected, onPre
renderItem={renderItem}
scrollEnabled={false}
/>
- {RNLocalize.getCountry() == 'US' &&
-
- }
+ {RNLocalize.getCountry() == "US" && (
+
+ )}
-
+ );
+};
- )
-}
-
-const styles = StyleSheet.create( {
+const styles = StyleSheet.create({
CardText: {
- fontSize: RFValue( 12 ),
+ fontSize: RFValue(12),
},
- linkText:{
- paddingBottom: wp( 1 ),
- color: Colors.textColorGrey
+ linkText: {
+ paddingBottom: wp(1),
+ color: Colors.textColorGrey,
},
imageStyle: {
- width: wp( 4 ), height: wp( 4 ),
- tintColor: Colors.theam_icon_color
+ width: wp(4),
+ height: wp(4),
+ tintColor: Colors.theam_icon_color,
},
learnMore: {
fontFamily: Fonts.MediumItalic,
- color: Colors.blue
+ color: Colors.blue,
},
linkContainer: {
- flexDirection: 'row',
- alignItems: 'center',
- paddingTop: hp( 1 ),
- paddingBottom: hp( 2 ),
- paddingHorizontal: wp( 6 )
+ flexDirection: "row",
+ alignItems: "center",
+ paddingTop: hp(1),
+ paddingBottom: hp(2),
+ paddingHorizontal: wp(6),
},
buyButton: {
- margin: hp( 0.5 ), color: Colors.white, fontSize: RFValue( 12 ), fontFamily: Fonts.Regular
+ margin: hp(0.5),
+ color: Colors.white,
+ fontSize: RFValue(12),
+ fontFamily: Fonts.Regular,
},
buyContainer: {
backgroundColor: Colors.blue,
- borderRadius: wp( '2%' ),
- paddingHorizontal: wp( 2 ),
- paddingVertical: hp( 0.5 )
+ borderRadius: wp("2%"),
+ paddingHorizontal: wp(2),
+ paddingVertical: hp(0.5),
},
mainCardContainer: {
- marginTop: hp( 1.5 ),
+ marginTop: hp(1.5),
paddingHorizontal: 0,
},
rootContainer: {
backgroundColor: Colors.white,
- marginBottom: hp( 1.5 ),
- width: wp( 90 ),
- borderRadius: wp( 2 ),
- alignSelf: 'center',
+ marginBottom: hp(1.5),
+ width: wp(90),
+ borderRadius: wp(2),
+ alignSelf: "center",
shadowColor: Colors.shadowColor,
shadowOpacity: 1,
shadowOffset: {
- width: 10, height: 10
+ width: 10,
+ height: 10,
},
- elevation: 6
+ elevation: 6,
},
modelHeight: {
- height: 'auto',
- marginBottom: hp( 3 )
+ height: "auto",
+ marginBottom: hp(3),
},
cardMiddle: {
// paddingLeft: 0,
- marginRight: wp( -2 ),
- marginLeft: wp( -1 ),
- }
-} )
+ marginRight: wp(-2),
+ marginLeft: wp(-1),
+ },
+});
-export default BuyBitcoinHomeBottomSheet
+export default BuyBitcoinHomeBottomSheet;
diff --git a/src/components/home/HomeAccountCardsGrid.tsx b/src/components/home/HomeAccountCardsGrid.tsx
index b70fa8423a..b666edbb9c 100644
--- a/src/components/home/HomeAccountCardsGrid.tsx
+++ b/src/components/home/HomeAccountCardsGrid.tsx
@@ -212,7 +212,7 @@ const HomeAccountCardsGrid: React.FC = ( {
data={columnData}
keyExtractor={keyExtractor}
renderItem={( { item, index }: RenderItemProps ) => {
- return
-
- ;
+ testID: string;
title: string;
subtitle: string;
imageSource: ImageSourcePropType;
@@ -36,132 +40,144 @@ export type Props = {
isTestAccount: boolean;
};
-const FooterButton: React.FC = ( {
- style = {
- },
+const FooterButton: React.FC = ({
+ style = {},
+ testID,
title,
subtitle,
imageSource,
onPress,
-} ) => {
+}) => {
return (
-
-
+
+
{title}
- {subtitle ? {subtitle} : null}
+ {subtitle ? (
+ {subtitle}
+ ) : null}
- )
-}
+ );
+};
-const SendAndReceiveButtonsFooter: React.FC = ( {
+const SendAndReceiveButtonsFooter: React.FC = ({
onSendPressed,
onReceivePressed,
averageTxFees,
network,
- isTestAccount
-} ) => {
- const exchangeRates = useSelector(
- ( state ) => state.accounts.exchangeRates
- )
-
- const currencyKind = useCurrencyKind()
- const currencyCode = useCurrencyCode()
- const common = translations[ 'common' ]
- const transactionFeeUnitPrefix = useMemo( () => {
- if ( currencyKind == CurrencyKind.FIAT ) {
- return currencyCode.toLowerCase()
+ isTestAccount,
+}) => {
+ const exchangeRates = useSelector((state) => state.accounts.exchangeRates);
+
+ const currencyKind = useCurrencyKind();
+ const currencyCode = useCurrencyCode();
+ const common = translations["common"];
+ const transactionFeeUnitPrefix = useMemo(() => {
+ if (currencyKind == CurrencyKind.FIAT) {
+ return currencyCode.toLowerCase();
} else {
- return network == NetworkKind.MAINNET ? 'sat' : 't-sat'
+ return network == NetworkKind.MAINNET ? "sat" : "t-sat";
}
- }, [ network, currencyKind ] )
+ }, [network, currencyKind]);
- const prefersBitcoin = useMemo( () => {
- return currencyKind === CurrencyKind.BITCOIN
- }, [ currencyKind ] )
+ const prefersBitcoin = useMemo(() => {
+ return currencyKind === CurrencyKind.BITCOIN;
+ }, [currencyKind]);
- const transactionFeeUnitText = useMemo( () => {
- if ( currencyKind == CurrencyKind.FIAT ) {
- return transactionFeeUnitPrefix
+ const transactionFeeUnitText = useMemo(() => {
+ if (currencyKind == CurrencyKind.FIAT) {
+ return transactionFeeUnitPrefix;
}
- const suffix = averageTxFees && averageTxFees[ network ].low.averageTxFee == 1 ? '' : 's'
+ const suffix =
+ averageTxFees && averageTxFees[network].low.averageTxFee == 1 ? "" : "s";
- return `${transactionFeeUnitPrefix}${suffix}`
- }, [ transactionFeeUnitPrefix, averageTxFees ] )
+ return `${transactionFeeUnitPrefix}${suffix}`;
+ }, [transactionFeeUnitPrefix, averageTxFees]);
return (
-
+
- )
-}
+ );
+};
-const styles = StyleSheet.create( {
+const styles = StyleSheet.create({
rootContainer: {
- flexDirection: 'row',
- justifyContent: 'space-around',
+ flexDirection: "row",
+ justifyContent: "space-around",
},
buttonContainer: {
minWidth: 150,
- width: widthPercentageToDP( 42 ),
+ width: widthPercentageToDP(42),
maxWidth: 400,
- flexDirection: 'row',
- justifyContent: 'center',
- alignItems: 'center',
+ flexDirection: "row",
+ justifyContent: "center",
+ alignItems: "center",
paddingVertical: 10,
paddingHorizontal: 20,
borderRadius: 10,
- borderColor: '#E3E3E3',
+ borderColor: "#E3E3E3",
borderWidth: 1,
backgroundColor: Colors.white,
},
@@ -175,20 +191,19 @@ const styles = StyleSheet.create( {
marginRight: 10,
},
- buttonTextContainer: {
- },
+ buttonTextContainer: {},
buttonTitleText: {
color: Colors.black,
fontFamily: Fonts.Medium,
- fontSize: RFValue( 15 ),
+ fontSize: RFValue(15),
},
buttonSubtitleText: {
color: Colors.textColorGrey,
fontFamily: Fonts.Regular,
- fontSize: RFValue( 9 ),
+ fontSize: RFValue(9),
},
-} )
+});
-export default SendAndReceiveButtonsFooter
+export default SendAndReceiveButtonsFooter;
diff --git a/src/pages/Contacts/AddContactAddressBook.tsx b/src/pages/Contacts/AddContactAddressBook.tsx
index d3ea278794..47bf28f323 100644
--- a/src/pages/Contacts/AddContactAddressBook.tsx
+++ b/src/pages/Contacts/AddContactAddressBook.tsx
@@ -1,4 +1,4 @@
-import React, { useEffect, useState, useContext } from 'react'
+import React, { useEffect, useState, useContext } from "react";
import {
View,
Text,
@@ -9,64 +9,68 @@ import {
Linking,
SafeAreaView,
TouchableOpacity,
- StatusBar
-} from 'react-native'
-import AsyncStorage from '@react-native-async-storage/async-storage'
-import { useSelector, useDispatch } from 'react-redux'
+ StatusBar,
+} from "react-native";
+import AsyncStorage from "@react-native-async-storage/async-storage";
+import { useSelector, useDispatch } from "react-redux";
import {
widthPercentageToDP as wp,
heightPercentageToDP as hp,
-} from 'react-native-responsive-screen'
-import Colors from '../../common/Colors'
-import Fonts from '../../common/Fonts'
-import { RFValue } from 'react-native-responsive-fontsize'
-import { AppBottomSheetTouchableWrapper } from '../../components/AppBottomSheetTouchableWrapper'
-import { FlatList } from 'react-native-gesture-handler'
-import FontAwesome from 'react-native-vector-icons/FontAwesome'
-import CommonStyles from '../../common/Styles/Styles'
-import RadioButton from '../../components/RadioButton'
-import * as ExpoContacts from 'expo-contacts'
-import Icon from 'react-native-vector-icons/MaterialIcons'
-import ErrorModalContents from '../../components/ErrorModalContents'
-import AntDesign from 'react-native-vector-icons/AntDesign'
-import * as Permissions from 'expo-permissions'
-import { setIsPermissionGiven, setContactPermissionAsked } from '../../store/actions/preferences'
-import ModalContainer from '../../components/home/ModalContainer'
-import { Trusted_Contacts } from '../../bitcoin/utilities/Interface'
-import { v4 as uuid } from 'uuid'
-import { SKIPPED_CONTACT_NAME } from '../../store/reducers/trustedContacts'
-import { editTrustedContact } from '../../store/actions/trustedContacts'
-import HeaderTitle1 from '../../components/HeaderTitle1'
-import { LocalizationContext } from '../../common/content/LocContext'
-import PaginationIcon from '../../assets/images/svgs/pagination_1.svg'
-import CreateFNFInvite from '../../components/friends-and-family/CreateFNFInvite'
-import LinearGradient from 'react-native-linear-gradient'
-
-export default function AddContactAddressBook( props ) {
- let [ selectedContacts, setSelectedContacts ] = useState( [] )
- const [ editedContacts, setEditedContacts ] = useState( [ props.navigation.state.params?.contactToEdit ] )
- const [ searchName, setSearchName ] = useState( '' )
- const [ errorMessage, setErrorMessage ] = useState( '' )
- const [ filterContactData, setFilterContactData ] = useState( [] )
- const [ radioOnOff, setRadioOnOff ] = useState( false )
- const [ contactPermissionAndroid, setContactPermissionAndroid ] = useState(
- false,
- )
- const isPermissionSet = useSelector( state => state.preferences.contactPermissionAsked )
- const { translations } = useContext( LocalizationContext )
- const strings = translations[ 'f&f' ]
- const common = translations[ 'common' ]
- const [ permissionModal, setModal ] = useState( false )
- const [ permissionErrModal, setErrModal ] = useState( false )
- const [ createFNFInvite, setCreateFNFInvite ] = useState( false )
- const [
- contactPermissionBottomSheet,
- setContactPermissionBottomSheet,
- ] = useState( React.createRef() )
- const [ contactPermissionIOS, setContactPermissionIOS ] = useState( false )
- const dispatch = useDispatch()
-
- const [ contactData, setContactData ] = useState( [] )
+} from "react-native-responsive-screen";
+import Colors from "../../common/Colors";
+import Fonts from "../../common/Fonts";
+import { RFValue } from "react-native-responsive-fontsize";
+import { AppBottomSheetTouchableWrapper } from "../../components/AppBottomSheetTouchableWrapper";
+import { FlatList } from "react-native-gesture-handler";
+import FontAwesome from "react-native-vector-icons/FontAwesome";
+import CommonStyles from "../../common/Styles/Styles";
+import RadioButton from "../../components/RadioButton";
+import * as ExpoContacts from "expo-contacts";
+import Icon from "react-native-vector-icons/MaterialIcons";
+import ErrorModalContents from "../../components/ErrorModalContents";
+import AntDesign from "react-native-vector-icons/AntDesign";
+import * as Permissions from "expo-permissions";
+import {
+ setIsPermissionGiven,
+ setContactPermissionAsked,
+} from "../../store/actions/preferences";
+import ModalContainer from "../../components/home/ModalContainer";
+import { Trusted_Contacts } from "../../bitcoin/utilities/Interface";
+import { v4 as uuid } from "uuid";
+import { SKIPPED_CONTACT_NAME } from "../../store/reducers/trustedContacts";
+import { editTrustedContact } from "../../store/actions/trustedContacts";
+import HeaderTitle1 from "../../components/HeaderTitle1";
+import { LocalizationContext } from "../../common/content/LocContext";
+import PaginationIcon from "../../assets/images/svgs/pagination_1.svg";
+import CreateFNFInvite from "../../components/friends-and-family/CreateFNFInvite";
+import LinearGradient from "react-native-linear-gradient";
+
+export default function AddContactAddressBook(props) {
+ let [selectedContacts, setSelectedContacts] = useState([]);
+ const [editedContacts, setEditedContacts] = useState([
+ props.navigation.state.params?.contactToEdit,
+ ]);
+ const [searchName, setSearchName] = useState("");
+ const [errorMessage, setErrorMessage] = useState("");
+ const [filterContactData, setFilterContactData] = useState([]);
+ const [radioOnOff, setRadioOnOff] = useState(false);
+ const [contactPermissionAndroid, setContactPermissionAndroid] =
+ useState(false);
+ const isPermissionSet = useSelector(
+ (state) => state.preferences.contactPermissionAsked
+ );
+ const { translations } = useContext(LocalizationContext);
+ const strings = translations["f&f"];
+ const common = translations["common"];
+ const [permissionModal, setModal] = useState(false);
+ const [permissionErrModal, setErrModal] = useState(false);
+ const [createFNFInvite, setCreateFNFInvite] = useState(false);
+ const [contactPermissionBottomSheet, setContactPermissionBottomSheet] =
+ useState(React.createRef());
+ const [contactPermissionIOS, setContactPermissionIOS] = useState(false);
+ const dispatch = useDispatch();
+
+ const [contactData, setContactData] = useState([]);
// const [ selectedContact, setContact ] = useState( [] )
const requestContactsPermission = async () => {
@@ -74,167 +78,171 @@ export default function AddContactAddressBook( props ) {
const result = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.READ_CONTACTS,
{
- 'title': strings.hexaWould,
- 'message': strings.Addressbookdetails,
+ title: strings.hexaWould,
+ message: strings.Addressbookdetails,
buttonPositive: common.allow,
buttonNegative: common.deny,
}
- )
- return result
- } catch ( err ) {
- console.warn( err )
+ );
+ return result;
+ } catch (err) {
+ console.warn(err);
}
- }
+ };
- useEffect( () => {
+ useEffect(() => {
// if( props.isLoadContacts ){
- getContactsAsync()
+ getContactsAsync();
// }
- }, [] )
-
+ }, []);
const getContact = () => {
// if ( props.isLoadContacts ) {
- ExpoContacts.getContactsAsync().then( async ( { data } ) => {
- if ( !data.length ) {
- setErrorMessage(
- strings.Nocontacts,
- )
- setErrModal( true )
+ ExpoContacts.getContactsAsync().then(async ({ data }) => {
+ if (!data.length) {
+ setErrorMessage(strings.Nocontacts);
+ setErrModal(true);
}
- setContactData( data )
- await AsyncStorage.setItem( 'ContactData', JSON.stringify( data ) )
- const contactList = data.sort( function ( a, b ) {
- if ( a.name && b.name ) {
- if ( a.name.toLowerCase() < b.name.toLowerCase() ) return -1
- if ( a.name.toLowerCase() > b.name.toLowerCase() ) return 1
+ setContactData(data);
+ await AsyncStorage.setItem("ContactData", JSON.stringify(data));
+ const contactList = data.sort(function (a, b) {
+ if (a.name && b.name) {
+ if (a.name.toLowerCase() < b.name.toLowerCase()) return -1;
+ if (a.name.toLowerCase() > b.name.toLowerCase()) return 1;
}
- return 0
- } )
- setFilterContactData( contactList )
- } )
+ return 0;
+ });
+ setFilterContactData(contactList);
+ });
// }
- }
+ };
const getContactPermission = async () => {
- dispatch( setIsPermissionGiven( true ) )
- dispatch( setContactPermissionAsked( true ) )
+ dispatch(setIsPermissionGiven(true));
+ dispatch(setContactPermissionAsked(true));
- if ( Platform.OS === 'android' ) {
- const granted = await requestContactsPermission()
+ if (Platform.OS === "android") {
+ const granted = await requestContactsPermission();
//console.log('GRANTED', granted);
- if ( granted !== PermissionsAndroid.RESULTS.GRANTED ) {
- setErrorMessage( strings.cannotSelect )
- setErrModal( true )
- setContactPermissionAndroid( false )
- return
+ if (granted !== PermissionsAndroid.RESULTS.GRANTED) {
+ setErrorMessage(strings.cannotSelect);
+ setErrModal(true);
+ setContactPermissionAndroid(false);
+ return;
} else {
-
-
// TODO: Migrate it using react-native-contact
- getContact()
+ getContact();
}
- } else if ( Platform.OS === 'ios' ) {
+ } else if (Platform.OS === "ios") {
const { status, expires, permissions } = await Permissions.askAsync(
- Permissions.CONTACTS,
- )
- if ( status === 'denied' ) {
- setContactPermissionIOS( false )
- setErrorMessage( strings.cannotSelect )
- setErrModal( true )
- return
+ Permissions.CONTACTS
+ );
+ if (status === "denied") {
+ setContactPermissionIOS(false);
+ setErrorMessage(strings.cannotSelect);
+ setErrModal(true);
+ return;
} else {
- getContact()
+ getContact();
}
}
- }
+ };
const getContactsAsync = async () => {
- if ( Platform.OS === 'android' ) {
- const chckContactPermission = await PermissionsAndroid.check( PermissionsAndroid.PERMISSIONS.READ_CONTACTS )
- if ( !chckContactPermission ) {
- if ( !isPermissionSet ) {
- setModal( true )
+ if (Platform.OS === "android") {
+ const chckContactPermission = await PermissionsAndroid.check(
+ PermissionsAndroid.PERMISSIONS.READ_CONTACTS
+ );
+ if (!chckContactPermission) {
+ if (!isPermissionSet) {
+ setModal(true);
}
} else {
- getContactPermission()
- }
- } else if ( Platform.OS === 'ios' ) {
- if ( ( await Permissions.getAsync( Permissions.CONTACTS ) ).status === 'undetermined' ) {
- setModal( true )
+ getContactPermission();
}
- else {
- getContactPermission()
+ } else if (Platform.OS === "ios") {
+ if (
+ (await Permissions.getAsync(Permissions.CONTACTS)).status ===
+ "undetermined"
+ ) {
+ setModal(true);
+ } else {
+ getContactPermission();
}
}
- }
+ };
- useEffect( () => {
- ( async () => {
- await AsyncStorage.getItem( 'ContactData', ( err, value ) => {
- if ( err ) console.log( 'ERROR in ContactData', err )
+ useEffect(() => {
+ (async () => {
+ await AsyncStorage.getItem("ContactData", (err, value) => {
+ if (err) console.log("ERROR in ContactData", err);
else {
- const data = JSON.parse( value )
- if ( data && data.length ) {
- setContactData( data )
- const contactList = data.sort( function ( a, b ) {
- if ( a.name && b.name ) {
- if ( a.name.toLowerCase() < b.name.toLowerCase() ) return -1
- if ( a.name.toLowerCase() > b.name.toLowerCase() ) return 1
+ const data = JSON.parse(value);
+ if (data && data.length) {
+ setContactData(data);
+ const contactList = data.sort(function (a, b) {
+ if (a.name && b.name) {
+ if (a.name.toLowerCase() < b.name.toLowerCase()) return -1;
+ if (a.name.toLowerCase() > b.name.toLowerCase()) return 1;
}
- return 0
- } )
- setFilterContactData( contactList )
+ return 0;
+ });
+ setFilterContactData(contactList);
}
}
- } )
- } )()
- }, [] )
-
- const filterContacts = ( keyword ) => {
- if ( contactData.length > 0 ) {
- if ( !keyword.length ) {
- setFilterContactData( contactData )
- return
+ });
+ })();
+ }, []);
+
+ const filterContacts = (keyword) => {
+ if (contactData.length > 0) {
+ if (!keyword.length) {
+ setFilterContactData(contactData);
+ return;
}
- const isFilter = true
- const filterContactsForDisplay = []
- for ( let i = 0; i < contactData.length; i++ ) {
- if ( contactData[ i ].name != undefined && contactData[ i ].name != null && contactData[ i ].name != '' ) {
- const contactWords = contactData[ i ].name.split( ' ' ).length
- const middleName = contactData[ i ].name.split( ' ' ).slice( 1, contactWords - 1 ).join( ' ' )
+ const isFilter = true;
+ const filterContactsForDisplay = [];
+ for (let i = 0; i < contactData.length; i++) {
+ if (
+ contactData[i].name != undefined &&
+ contactData[i].name != null &&
+ contactData[i].name != ""
+ ) {
+ const contactWords = contactData[i].name.split(" ").length;
+ const middleName = contactData[i].name
+ .split(" ")
+ .slice(1, contactWords - 1)
+ .join(" ");
if (
- ( contactData[ i ].firstName &&
- contactData[ i ].firstName
+ (contactData[i].firstName &&
+ contactData[i].firstName
.toLowerCase()
- .startsWith( keyword.toLowerCase() ) ) ||
- ( contactData[ i ].lastName &&
- contactData[ i ].lastName
+ .startsWith(keyword.toLowerCase())) ||
+ (contactData[i].lastName &&
+ contactData[i].lastName
.toLowerCase()
- .startsWith( keyword.toLowerCase() ) ) ||
- ( contactData[ i ].name &&
- contactData[ i ].name
+ .startsWith(keyword.toLowerCase())) ||
+ (contactData[i].name &&
+ contactData[i].name
.toLowerCase()
- .startsWith( keyword.toLowerCase() ) ) ||
- ( middleName &&
- middleName
- .toLowerCase()
- .startsWith( keyword.toLowerCase() ) )
+ .startsWith(keyword.toLowerCase())) ||
+ (middleName &&
+ middleName.toLowerCase().startsWith(keyword.toLowerCase()))
) {
- filterContactsForDisplay.push( contactData[ i ] )
+ filterContactsForDisplay.push(contactData[i]);
}
}
}
- setFilterContactData( filterContactsForDisplay )
+ setFilterContactData(filterContactsForDisplay);
} else {
- return
+ return;
}
- }
+ };
const trustedContacts: Trusted_Contacts = useSelector(
- ( state ) => state.trustedContacts.contacts,
- )
- const [ isTC, setIsTC ] = useState( false )
+ (state) => state.trustedContacts.contacts
+ );
+ const [isTC, setIsTC] = useState(false);
// const isTrustedContact = useCallback(
// ( selectedContact ) => {
@@ -253,26 +261,26 @@ export default function AddContactAddressBook( props ) {
// [ trustedContacts ],
// )
- async function onContactSelect( index ) {
- const contacts = filterContactData
- if ( contacts[ index ].checked ) {
- selectedContacts = []
+ async function onContactSelect(index) {
+ const contacts = filterContactData;
+ if (contacts[index].checked) {
+ selectedContacts = [];
} else {
- selectedContacts[ 0 ] = contacts[ index ]
+ selectedContacts[0] = contacts[index];
}
- setSelectedContacts( selectedContacts )
+ setSelectedContacts(selectedContacts);
// onSelectContact( selectedContacts )
- for ( let i = 0; i < contacts.length; i++ ) {
+ for (let i = 0; i < contacts.length; i++) {
if (
- selectedContacts.findIndex( ( value ) => value.id == contacts[ i ].id ) > -1
+ selectedContacts.findIndex((value) => value.id == contacts[i].id) > -1
) {
- contacts[ i ].checked = true
+ contacts[i].checked = true;
} else {
- contacts[ i ].checked = false
+ contacts[i].checked = false;
}
}
- setRadioOnOff( !radioOnOff )
- setFilterContactData( contacts )
+ setRadioOnOff(!radioOnOff);
+ setFilterContactData(contacts);
// const isTrustedC = await isTrustedContact( selectedContacts[ 0 ] )
// setIsTC( isTrustedC )
// if ( isTrustedC ) {
@@ -280,51 +288,54 @@ export default function AddContactAddressBook( props ) {
// }
}
- async function onCancel( value ) {
-
- if ( filterContactData.findIndex( ( tmp ) => tmp.id == value.id ) > -1 ) {
+ async function onCancel(value) {
+ if (filterContactData.findIndex((tmp) => tmp.id == value.id) > -1) {
filterContactData[
- filterContactData.findIndex( ( tmp ) => tmp.id == value.id )
- ].checked = false
+ filterContactData.findIndex((tmp) => tmp.id == value.id)
+ ].checked = false;
}
selectedContacts.splice(
- selectedContacts.findIndex( ( temp ) => temp.id == value.id ),
- 1,
- )
- setSelectedContacts( selectedContacts )
- setRadioOnOff( !radioOnOff )
+ selectedContacts.findIndex((temp) => temp.id == value.id),
+ 1
+ );
+ setSelectedContacts(selectedContacts);
+ setRadioOnOff(!radioOnOff);
// props.onSelectContact( selectedContacts )
}
-
const onPressContinue = () => {
- if ( selectedContacts && selectedContacts.length ) {
-
- if ( props.navigation.state.params?.fromScreen === 'Edit' ) {
- selectedContacts[ 0 ].id = props.navigation.state.params?.contactToEdit.id
- selectedContacts[ 0 ].channelKey = props.navigation.state.params?.contactToEdit.channelKey
- selectedContacts[ 0 ].displayedName = selectedContacts[ 0 ].name
- selectedContacts[ 0 ].avatarImageSource = selectedContacts[ 0 ].image ? selectedContacts[ 0 ].image : props.navigation.state.params?.contactToEdit.avatarImageSource
- dispatch( editTrustedContact( {
- channelKey: props.navigation.state.params?.contactToEdit.channelKey,
- contactName: selectedContacts[ 0 ].name,
- image: selectedContacts[ 0 ].image
- } ) )
- props.navigation.navigate( 'ContactDetails', {
- contact: selectedContacts[ 0 ],
- } )
- } else if ( props.navigation.state.params?.fromScreen === 'Gift' ) {
- props.navigation.replace( 'EnterGiftDetails', {
- fromScreen: 'Gift',
+ if (selectedContacts && selectedContacts.length) {
+ if (props.navigation.state.params?.fromScreen === "Edit") {
+ selectedContacts[0].id =
+ props.navigation.state.params?.contactToEdit.id;
+ selectedContacts[0].channelKey =
+ props.navigation.state.params?.contactToEdit.channelKey;
+ selectedContacts[0].displayedName = selectedContacts[0].name;
+ selectedContacts[0].avatarImageSource = selectedContacts[0].image
+ ? selectedContacts[0].image
+ : props.navigation.state.params?.contactToEdit.avatarImageSource;
+ dispatch(
+ editTrustedContact({
+ channelKey: props.navigation.state.params?.contactToEdit.channelKey,
+ contactName: selectedContacts[0].name,
+ image: selectedContacts[0].image,
+ })
+ );
+ props.navigation.navigate("ContactDetails", {
+ contact: selectedContacts[0],
+ });
+ } else if (props.navigation.state.params?.fromScreen === "Gift") {
+ props.navigation.replace("EnterGiftDetails", {
+ fromScreen: "Gift",
giftId: props.navigation.state.params?.giftId,
contact: selectedContacts,
- setActiveTab: props.navigation.state.params.setActiveTab
- } )
+ setActiveTab: props.navigation.state.params.setActiveTab,
+ });
} else {
- if( props.navigation.state.params?.fromScreen === 'Invitation' ){
- setCreateFNFInvite( true )
- }else{
- props.navigation.navigate( 'AddContactSendRequest', {
+ if (props.navigation.state.params?.fromScreen === "Invitation") {
+ setCreateFNFInvite(true);
+ } else {
+ props.navigation.navigate("AddContactSendRequest", {
SelectedContact: selectedContacts,
giftId: props.navigation.state.params?.giftId,
headerText: strings.addContact,
@@ -332,18 +343,15 @@ export default function AddContactAddressBook( props ) {
contactText: strings.adding,
senderName: props?.navigation?.state?.params?.senderName,
showDone: true,
- note: props?.navigation?.state?.params?.note
- } )
-
+ note: props?.navigation?.state?.params?.note,
+ });
}
-
}
-
}
- }
+ };
const sendRequestToContact = () => {
- setCreateFNFInvite( false )
- props.navigation.navigate( 'AddContactSendRequest', {
+ setCreateFNFInvite(false);
+ props.navigation.navigate("AddContactSendRequest", {
SelectedContact: selectedContacts,
giftId: props.navigation.state.params?.giftId,
headerText: strings.addContact,
@@ -351,27 +359,27 @@ export default function AddContactAddressBook( props ) {
contactText: strings.adding,
senderName: props?.navigation?.state?.params?.senderName,
showDone: true,
- note: props?.navigation?.state?.params?.note
- } )
- }
+ note: props?.navigation?.state?.params?.note,
+ });
+ };
const goCreateGifts = () => {
- setCreateFNFInvite( false )
- props.navigation.navigate( 'CreateGift', {
+ setCreateFNFInvite(false);
+ props.navigation.navigate("CreateGift", {
selectedContact: selectedContacts,
- statusFlag: 'Invitation',
+ statusFlag: "Invitation",
giftId: props.navigation.state.params?.giftId,
- } )
- }
+ });
+ };
const onPressBack = () => {
- props.navigation.goBack()
- }
+ props.navigation.goBack();
+ };
const onSkipContinue = () => {
const skippedContact = {
id: uuid(),
- }
- props.navigation.navigate( 'AddContactSendRequest', {
- SelectedContact: [ skippedContact ],
+ };
+ props.navigation.navigate("AddContactSendRequest", {
+ SelectedContact: [skippedContact],
giftId: props.navigation.state.params?.giftId,
headerText: strings.addContact,
subHeaderText: strings.send,
@@ -379,22 +387,29 @@ export default function AddContactAddressBook( props ) {
showDone: true,
skipClicked: true,
senderName: props?.navigation?.state?.params?.senderName,
- note: props?.navigation?.state?.params?.note
- } )
- }
+ note: props?.navigation?.state?.params?.note,
+ });
+ };
return (
{/* */}
-
+
{
- props.navigation.pop( props.navigation.state.params?.fromScreen === 'Gift' ? 2 : 1 )
+ props.navigation.pop(
+ props.navigation.state.params?.fromScreen === "Gift" ? 2 : 1
+ );
}}
>
@@ -409,26 +424,37 @@ export default function AddContactAddressBook( props ) {
{/* from your address book */}
- {selectedContacts.length !== 0 &&
+ {selectedContacts.length !== 0 && (
- {selectedContacts[ 0 ].firstName} {selectedContacts[ 0 ].lastName}
- {
- setSelectedContacts( [] )
- onContactSelect( filterContactData.findIndex( ( tmp ) => tmp.id == selectedContacts[ 0 ].id ) )
- }}>
-
+
+
+ {selectedContacts[0].firstName}
+ {" "}
+ {selectedContacts[0].lastName}
+
+ {
+ setSelectedContacts([]);
+ onContactSelect(
+ filterContactData.findIndex(
+ (tmp) => tmp.id == selectedContacts[0].id
+ )
+ );
+ }}
+ >
+
- }
+ )}
{/*
@@ -479,9 +505,11 @@ export default function AddContactAddressBook( props ) {
{/* */}
-
+
{/*
*/}
-
+
{/*
{selectedContacts.length > 0
? selectedContacts.map( ( value, index ) => {
@@ -523,58 +554,63 @@ export default function AddContactAddressBook( props ) {
} )
: null}
*/}
-
+
-
-
+
{
- nameKeyword = nameKeyword.replace( /[^A-Za-z0-9 ]/g, '' )
- setSearchName( nameKeyword )
- filterContacts( nameKeyword )
- }
- }
+ onChangeText={(nameKeyword) => {
+ nameKeyword = nameKeyword.replace(/[^A-Za-z0-9 ]/g, "");
+ setSearchName(nameKeyword);
+ filterContacts(nameKeyword);
+ }}
value={searchName}
/>
-
+
{filterContactData ? (
item.id}
+ keyExtractor={(item, index) => item.id}
data={filterContactData}
extraData={radioOnOff}
showsVerticalScrollIndicator={false}
contentInset={{
- right: 0, top: 0, left: 0, bottom: hp( 24 )
+ right: 0,
+ top: 0,
+ left: 0,
+ bottom: hp(24),
}}
- ListEmptyComponent={() =>
-
+ ListEmptyComponent={() => (
+
{strings.cannotSelect}
+ >
+ {strings.cannotSelect}
+
{/* getContactPermission()}
style={{
@@ -592,22 +628,24 @@ export default function AddContactAddressBook( props ) {
*/}
- }
- renderItem={( { item, index } ) => {
- let selected = false
+ )}
+ renderItem={({ item, index }) => {
+ let selected = false;
if (
- selectedContacts.findIndex( ( temp ) => temp.id == item.id ) >
+ selectedContacts.findIndex((temp) => temp.id == item.id) >
-1
) {
- selected = true
+ selected = true;
}
// if (item.phoneNumbers || item.emails) {
return (
onContactSelect( index )}
+ onPress={() => onContactSelect(index)}
style={{
...styles.contactView,
- backgroundColor: selected ? 'rgba(105, 162, 176, 0.4)' : null,
+ backgroundColor: selected
+ ? "rgba(105, 162, 176, 0.4)"
+ : null,
}}
key={index}
activeOpacity={0.1}
@@ -617,7 +655,7 @@ export default function AddContactAddressBook( props ) {
color={Colors.lightBlue}
borderColor={Colors.white}
isChecked={item.checked}
- onpress={() => onContactSelect( index )}
+ onpress={() => onContactSelect(index)}
/>
{/* {item.name && item.name.split( ' ' )[ 0 ]
@@ -631,25 +669,32 @@ export default function AddContactAddressBook( props ) {
: ''}
*/}
- {item.name && item.name.split( ' ' ).map( ( x, index ) => {
- const i = item.name.split( ' ' ).length
- return (
-
- {index !== i - 1 ? `${x} ` :
-
- {x}
-
- }
-
- )
- } )}
+ {item.name &&
+ item.name.split(" ").map((x, index) => {
+ const i = item.name.split(" ").length;
+ return (
+
+ {index !== i - 1 ? (
+ `${x} `
+ ) : (
+
+ {x}
+
+ )}
+
+ );
+ })}
- )
+ );
// } else {
// return null;
// }
@@ -671,31 +716,39 @@ export default function AddContactAddressBook( props ) {
backgroundColor: Colors.backgroundColor
}}
>
- {
- filterContactData.length > 0 && (
- onPressContinue()}
-
+ {filterContactData.length > 0 && (
+ onPressContinue()}
+ >
+
-
- {common.confirmProceed}
-
-
- )
- }
- {props.navigation.state.params?.fromScreen === 'Edit' ?
- null :
+ {common.confirmProceed}
+
+
+ )}
+ {props.navigation.state.params?.fromScreen === "Edit" ? null : (
onSkipContinue()}
style={{
@@ -713,9 +766,8 @@ export default function AddContactAddressBook( props ) {
>
{filterContactData.length > 0 ? common.skip : common.continue}
-
- }
+ )}
{/* {
@@ -726,7 +778,6 @@ export default function AddContactAddressBook( props ) {
} */}
-
{/* )} */}
{/* setErrModal( false )} visible={permissionErrModal} closeBottomSheet={() => { setErrModal( false ) }}>
@@ -747,7 +798,11 @@ export default function AddContactAddressBook( props ) {
bottomImage={require( '../../assets/images/icons/errorImage.png' )}
/>
*/}
- setModal( false )} visible={permissionModal} closeBottomSheet={() => { }}>
+ setModal(false)}
+ visible={permissionModal}
+ closeBottomSheet={() => {}}
+ >
{
- getContactPermission()
+ getContactPermission();
// ( contactPermissionBottomSheet as any ).current.snapTo( 0 )
- setModal( false )
+ setModal(false);
}}
onPressIgnore={() => {
// ( contactPermissionBottomSheet as any ).current.snapTo( 0 )
- setModal( false )
+ setModal(false);
}}
isBottomImage={true}
- bottomImage={require( '../../assets/images/icons/contactPermission.png' )}
+ bottomImage={require("../../assets/images/icons/contactPermission.png")}
/>
{/* create FNF Invite */}
- setCreateFNFInvite( false )} visible={createFNFInvite} closeBottomSheet={() => { }}>
+ setCreateFNFInvite(false)}
+ visible={createFNFInvite}
+ closeBottomSheet={() => {}}
+ >
setCreateFNFInvite( false )}
- sendRequestToContact={()=> sendRequestToContact()}
- createGifts={()=> goCreateGifts()}
+ closeModal={() => setCreateFNFInvite(false)}
+ sendRequestToContact={() => sendRequestToContact()}
+ createGifts={() => goCreateGifts()}
/>
- )
+ );
}
-const styles = StyleSheet.create( {
+const styles = StyleSheet.create({
statusIndicatorView: {
- flexDirection: 'row',
- marginLeft: 'auto',
- marginHorizontal: wp( '6%' ),
- marginBottom: hp( 2 )
+ flexDirection: "row",
+ marginLeft: "auto",
+ marginHorizontal: wp("6%"),
+ marginBottom: hp(2),
},
statusIndicatorActiveView: {
height: 5,
@@ -805,138 +864,138 @@ const styles = StyleSheet.create( {
},
proceedButtonText: {
color: Colors.blue,
- fontSize: RFValue( 13 ),
- fontFamily: Fonts.Medium
+ fontSize: RFValue(13),
+ fontFamily: Fonts.Medium,
},
modalContentContainer: {
- height: '100%',
+ height: "100%",
backgroundColor: Colors.backgroundColor,
},
modalHeaderTitleView: {
borderBottomWidth: 1,
borderColor: Colors.borderColor,
- alignItems: 'center',
- flexDirection: 'row',
- paddingBottom: hp( '2%' ),
- marginBottom: wp( '5%' ),
- marginLeft: wp( '4%' ),
- marginRight: wp( '4%' ),
+ alignItems: "center",
+ flexDirection: "row",
+ paddingBottom: hp("2%"),
+ marginBottom: wp("5%"),
+ marginLeft: wp("4%"),
+ marginRight: wp("4%"),
},
modalHeaderTitleText: {
color: Colors.blue,
- fontSize: RFValue( 18 ),
+ fontSize: RFValue(18),
fontFamily: Fonts.Regular,
},
modalHeaderInfoText: {
color: Colors.textColorGrey,
- fontSize: RFValue( 12 ),
+ fontSize: RFValue(12),
fontFamily: Fonts.Regular,
},
TitleText: {
color: Colors.blue,
- fontSize: RFValue( 13 ),
+ fontSize: RFValue(13),
fontFamily: Fonts.Regular,
},
buttonText: {
color: Colors.white,
fontFamily: Fonts.Medium,
- fontSize: RFValue( 13 ),
+ fontSize: RFValue(13),
},
bottomButtonView: {
- height: hp( '6%' ),
- width: wp( '40%' ),
+ height: hp("6%"),
+ width: wp("40%"),
backgroundColor: Colors.blue,
borderRadius: 10,
justifyContent: 'center',
alignItems: 'center',
// elevation: 10,
marginBottom: 20,
- marginLeft: wp( 9 ),
+ marginLeft: wp(9),
},
selectedContactView: {
- width: wp( '42%' ),
- height: wp( '12%' ),
+ width: wp("42%"),
+ height: wp("12%"),
backgroundColor: Colors.lightBlue,
borderRadius: 10,
padding: 10,
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'center'
+ flexDirection: "row",
+ justifyContent: "space-between",
+ alignItems: "center",
},
selectedContactNameText: {
color: Colors.white,
- fontSize: RFValue( 13 ),
- fontFamily: Fonts.Regular
+ fontSize: RFValue(13),
+ fontFamily: Fonts.Regular,
},
selectedContactContainer: {
- height: wp( '20%' ),
- alignItems: 'center',
- justifyContent: 'space-between',
- flexDirection: 'row',
+ height: wp("20%"),
+ alignItems: "center",
+ justifyContent: "space-between",
+ flexDirection: "row",
marginLeft: 20,
marginRight: 20,
},
contactView: {
- height: hp( 6 ),
- alignItems: 'center',
- flexDirection: 'row',
- paddingLeft: wp( 5 ),
- marginVertical: hp( 0.7 ),
- width: wp( '90%' ),
+ height: hp(6),
+ alignItems: "center",
+ flexDirection: "row",
+ paddingLeft: wp(5),
+ marginVertical: hp(0.7),
+ width: wp("90%"),
borderTopRightRadius: 10,
borderBottomRightRadius: 10,
},
contactText: {
marginLeft: 10,
- fontSize: RFValue( 13 ),
+ fontSize: RFValue(13),
fontFamily: Fonts.Regular,
},
searchBoxContainer: {
- flexDirection: 'row',
+ flexDirection: "row",
backgroundColor: Colors.white,
- height: hp( '5.5%' ),
- width: wp( '85%' ),
- alignItems: 'center',
- marginVertical: hp( 2 ),
+ height: hp("5.5%"),
+ width: wp("85%"),
+ alignItems: "center",
+ marginVertical: hp(2),
borderRadius: 10,
- marginHorizontal: wp( 5 )
+ marginHorizontal: wp(5),
},
searchBoxInput: {
- fontSize: RFValue( 12 ),
+ fontSize: RFValue(12),
color: Colors.black,
fontFamily: Fonts.Italic,
- paddingLeft: wp( 1.5 )
+ paddingLeft: wp(1.5),
},
searchBoxIcon: {
- paddingLeft: wp( 2 )
+ paddingLeft: wp(2),
},
addressBook: {
- fontSize: RFValue( 12 ),
- marginTop: hp( -1.5 ),
- marginLeft: wp( 5 ),
+ fontSize: RFValue(12),
+ marginTop: hp(-1.5),
+ marginLeft: wp(5),
color: Colors.textColorGrey,
},
selectedContactContent: {
- flexDirection: 'row',
- justifyContent: 'flex-start',
+ flexDirection: "row",
+ justifyContent: "flex-start",
},
selectedContact: {
padding: 12,
backgroundColor: Colors.testAccCard,
borderRadius: 10,
- flexDirection: 'row',
- alignItems: 'center',
- marginHorizontal: wp( 5 ),
- marginTop: hp( 1.7 ),
+ flexDirection: "row",
+ alignItems: "center",
+ marginHorizontal: wp(5),
+ marginTop: hp(1.7),
},
selectedContactText: {
- fontSize: RFValue( 12 ),
+ fontSize: RFValue(12),
color: Colors.backgroundColor1,
fontFamily: Fonts.FiraSans,
- paddingRight: wp( 3 ),
- fontWeight: '500'
+ paddingRight: wp(3),
+ fontWeight: "500",
},
firstName: {
- fontWeight: '400'
- }
-} )
+ fontWeight: "400",
+ },
+});
diff --git a/src/pages/Contacts/AddContactSendRequest.tsx b/src/pages/Contacts/AddContactSendRequest.tsx
index e6feddaa70..3c9077dcfa 100644
--- a/src/pages/Contacts/AddContactSendRequest.tsx
+++ b/src/pages/Contacts/AddContactSendRequest.tsx
@@ -510,7 +510,7 @@ export default function AddContactSendRequest( props ) {
}}
/>
{!giftId &&
- setSecure2FAModal( true )}
style={{
flex: 1
diff --git a/src/pages/FriendsAndFamily/CreateGift.tsx b/src/pages/FriendsAndFamily/CreateGift.tsx
index 1820cbecc0..82ef67b590 100644
--- a/src/pages/FriendsAndFamily/CreateGift.tsx
+++ b/src/pages/FriendsAndFamily/CreateGift.tsx
@@ -6,7 +6,7 @@ import {
GiftThemeId,
TxPriority,
Wallet,
-} from '../../bitcoin/utilities/Interface'
+} from "../../bitcoin/utilities/Interface";
import {
Dimensions,
Image,
@@ -19,201 +19,203 @@ import {
Text,
TouchableOpacity,
View,
-} from 'react-native'
+} from "react-native";
import MaterialCurrencyCodeIcon, {
materialIconCurrencyCodes,
-} from '../../components/MaterialCurrencyCodeIcon'
-import React, { useEffect, useMemo, useState } from 'react'
-import { calculateSendMaxFee, sourceAccountSelectedForSending } from '../../store/actions/sending'
+} from "../../components/MaterialCurrencyCodeIcon";
+import React, { useEffect, useMemo, useState } from "react";
+import {
+ calculateSendMaxFee,
+ sourceAccountSelectedForSending,
+} from "../../store/actions/sending";
import {
generateGifts,
giftCreationSuccess,
-} from '../../store/actions/accounts'
+} from "../../store/actions/accounts";
import {
getCurrencyImageByRegion,
processRequestQR,
-} from '../../common/CommonFunctions/index'
+} from "../../common/CommonFunctions/index";
import {
heightPercentageToDP as hp,
widthPercentageToDP as wp,
-} from 'react-native-responsive-screen'
-import { useDispatch, useSelector } from 'react-redux'
+} from "react-native-responsive-screen";
+import { useDispatch, useSelector } from "react-redux";
-import AccountShell from '../../common/data/models/AccountShell'
-import { AccountsState } from '../../store/reducers/accounts'
-import AntDesign from 'react-native-vector-icons/AntDesign'
-import { AppBottomSheetTouchableWrapper } from '../../components/AppBottomSheetTouchableWrapper'
-import BitcoinUnit from '../../common/data/enums/BitcoinUnit'
-import BottomInfoBox from '../../components/BottomInfoBox'
-import CheckMark from '../../assets/images/svgs/checkmark.svg'
-import CheckingAccount from '../../assets/images/accIcons/icon_checking.svg'
-import Colors from '../../common/Colors'
-import CommonStyles from '../../common/Styles/Styles'
-import CurrencyKind from '../../common/data/enums/CurrencyKind'
-import DashedContainer from './DashedContainer'
-import Dollar from '../../assets/images/svgs/icon_dollar.svg'
-import ErrorLoader from '../../components/ErrorLoader'
-import FontAwesome from 'react-native-vector-icons/FontAwesome'
-import Fonts from '../../common/Fonts'
-import FormStyles from '../../common/Styles/FormStyles'
-import GiftCard from '../../assets/images/svgs/gift_icon_new.svg'
-import HeaderTitle from '../../components/HeaderTitle'
-import Illustration from '../../assets/images/svgs/illustration.svg'
-import Ionicons from 'react-native-vector-icons/Ionicons'
-import Loader from '../../components/loader'
-import LoaderModal from '../../components/LoaderModal'
-import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'
-import ModalContainer from '../../components/home/ModalContainer'
-import { RFValue } from 'react-native-responsive-fontsize'
-import { SATOSHIS_IN_BTC } from '../../common/constants/Bitcoin'
-import { Shadow } from 'react-native-shadow-2'
-import Toast from '../../components/Toast'
-import ToggleContainer from './CurrencyToggle'
-import { UsNumberFormat } from '../../common/utilities'
-import VerifySatModalContents from '../Gift/VerifySatModalContents'
-import getAvatarForSubAccount from '../../utils/accounts/GetAvatarForSubAccountKind'
-import idx from 'idx'
-import { platform } from 'process'
-import { translations } from '../../common/content/LocContext'
-import { updateUserName } from '../../store/actions/storage'
-import useActiveAccountShells from '../../utils/hooks/state-selectors/accounts/UseActiveAccountShells'
-import useCurrencyCode from '../../utils/hooks/state-selectors/UseCurrencyCode'
-import useCurrencyKind from '../../utils/hooks/state-selectors/UseCurrencyKind'
-import useFormattedUnitText from '../../utils/hooks/formatting/UseFormattedUnitText'
-import usePrimarySubAccountForShell from '../../utils/hooks/account-utils/UsePrimarySubAccountForShell'
-import useSpendableBalanceForAccountShell from '../../utils/hooks/account-utils/UseSpendableBalanceForAccountShell'
-import LinearGradient from 'react-native-linear-gradient'
+import AccountShell from "../../common/data/models/AccountShell";
+import { AccountsState } from "../../store/reducers/accounts";
+import AntDesign from "react-native-vector-icons/AntDesign";
+import { AppBottomSheetTouchableWrapper } from "../../components/AppBottomSheetTouchableWrapper";
+import BitcoinUnit from "../../common/data/enums/BitcoinUnit";
+import BottomInfoBox from "../../components/BottomInfoBox";
+import CheckMark from "../../assets/images/svgs/checkmark.svg";
+import CheckingAccount from "../../assets/images/accIcons/icon_checking.svg";
+import Colors from "../../common/Colors";
+import CommonStyles from "../../common/Styles/Styles";
+import CurrencyKind from "../../common/data/enums/CurrencyKind";
+import DashedContainer from "./DashedContainer";
+import Dollar from "../../assets/images/svgs/icon_dollar.svg";
+import ErrorLoader from "../../components/ErrorLoader";
+import FontAwesome from "react-native-vector-icons/FontAwesome";
+import Fonts from "../../common/Fonts";
+import FormStyles from "../../common/Styles/FormStyles";
+import GiftCard from "../../assets/images/svgs/gift_icon_new.svg";
+import HeaderTitle from "../../components/HeaderTitle";
+import Illustration from "../../assets/images/svgs/illustration.svg";
+import Ionicons from "react-native-vector-icons/Ionicons";
+import Loader from "../../components/loader";
+import LoaderModal from "../../components/LoaderModal";
+import MaterialCommunityIcons from "react-native-vector-icons/MaterialCommunityIcons";
+import ModalContainer from "../../components/home/ModalContainer";
+import { RFValue } from "react-native-responsive-fontsize";
+import { SATOSHIS_IN_BTC } from "../../common/constants/Bitcoin";
+import { Shadow } from "react-native-shadow-2";
+import Toast from "../../components/Toast";
+import ToggleContainer from "./CurrencyToggle";
+import { UsNumberFormat } from "../../common/utilities";
+import VerifySatModalContents from "../Gift/VerifySatModalContents";
+import getAvatarForSubAccount from "../../utils/accounts/GetAvatarForSubAccountKind";
+import idx from "idx";
+import { platform } from "process";
+import { translations } from "../../common/content/LocContext";
+import { updateUserName } from "../../store/actions/storage";
+import useActiveAccountShells from "../../utils/hooks/state-selectors/accounts/UseActiveAccountShells";
+import useCurrencyCode from "../../utils/hooks/state-selectors/UseCurrencyCode";
+import useCurrencyKind from "../../utils/hooks/state-selectors/UseCurrencyKind";
+import useFormattedUnitText from "../../utils/hooks/formatting/UseFormattedUnitText";
+import usePrimarySubAccountForShell from "../../utils/hooks/account-utils/UsePrimarySubAccountForShell";
+import useSpendableBalanceForAccountShell from "../../utils/hooks/account-utils/UseSpendableBalanceForAccountShell";
+import LinearGradient from "react-native-linear-gradient";
-const { height } = Dimensions.get( 'window' )
+const { height } = Dimensions.get("window");
export type Props = {
navigation: any;
};
-const CreateGift = ( { navigation }: Props ) => {
- const { selectedContact, statusFlag } = navigation?.state?.params
- const dispatch = useDispatch()
+const CreateGift = ({ navigation }: Props) => {
+ const { selectedContact, statusFlag } = navigation?.state?.params;
+ const dispatch = useDispatch();
const activeAccounts = useActiveAccountShells().filter(
- ( shell ) => shell?.primarySubAccount.type !== AccountType.LIGHTNING_ACCOUNT
- )
+ (shell) => shell?.primarySubAccount.type !== AccountType.LIGHTNING_ACCOUNT
+ );
const currencyKind: CurrencyKind = useSelector(
- ( state ) => state.preferences.giftCurrencyKind || CurrencyKind.BITCOIN
- )
- const strings = translations[ 'accounts' ]
- const prefersBitcoin = useMemo( () => {
- return currencyKind === CurrencyKind.BITCOIN
- }, [ currencyKind ] )
- const fiatCurrencyCode = useCurrencyCode()
- const accountsState: AccountsState = useSelector( ( state ) => state.accounts )
- const currencyCode = useSelector( ( state ) => state.preferences.currencyCode )
- const exchangeRates = useSelector( ( state ) => state.accounts.exchangeRates )
- const [ amount, setAmount ] = useState( '' )
- const [ showKeyboard, setKeyboard ] = useState( false )
- const [ numbersOfGift, setNumbersOfGift ] = useState( 1 )
- const [ initGiftCreation, setInitGiftCreation ] = useState( false )
- const [ includeFees, setFees ] = useState( false )
- const [ addfNf, setAddfNf ] = useState( false )
- const [ giftModal, setGiftModal ] = useState( false )
- const [ createdGift, setCreatedGift ] = useState( null )
- const accountState: AccountsState = useSelector( ( state ) =>
- idx( state, ( _ ) => _.accounts )
- )
+ (state) => state.preferences.giftCurrencyKind || CurrencyKind.BITCOIN
+ );
+ const strings = translations["accounts"];
+ const prefersBitcoin = useMemo(() => {
+ return currencyKind === CurrencyKind.BITCOIN;
+ }, [currencyKind]);
+ const fiatCurrencyCode = useCurrencyCode();
+ const accountsState: AccountsState = useSelector((state) => state.accounts);
+ const currencyCode = useSelector((state) => state.preferences.currencyCode);
+ const exchangeRates = useSelector((state) => state.accounts.exchangeRates);
+ const [amount, setAmount] = useState("");
+ const [showKeyboard, setKeyboard] = useState(false);
+ const [numbersOfGift, setNumbersOfGift] = useState(1);
+ const [initGiftCreation, setInitGiftCreation] = useState(false);
+ const [includeFees, setFees] = useState(false);
+ const [addfNf, setAddfNf] = useState(false);
+ const [giftModal, setGiftModal] = useState(false);
+ const [createdGift, setCreatedGift] = useState(null);
+ const accountState: AccountsState = useSelector((state) =>
+ idx(state, (_) => _.accounts)
+ );
const giftCreationStatus = useSelector(
- ( state ) => state.accounts.giftCreationStatus
- )
- const sendMaxFee = useSelector( ( state ) =>
- idx( state, ( _ ) => _.sending.sendMaxFee )
- )
- const [ isSendMax, setIsSendMax ] = useState( false )
- const accountShells: AccountShell[] = accountState.accountShells
- const [ showLoader, setShowLoader ] = useState( false )
- const [ accountListModal, setAccountListModal ] = useState( false )
- const [ advanceModal, setAdvanceModal ] = useState( false )
+ (state) => state.accounts.giftCreationStatus
+ );
+ const sendMaxFee = useSelector((state) =>
+ idx(state, (_) => _.sending.sendMaxFee)
+ );
+ const [isSendMax, setIsSendMax] = useState(false);
+ const accountShells: AccountShell[] = accountState.accountShells;
+ const [showLoader, setShowLoader] = useState(false);
+ const [accountListModal, setAccountListModal] = useState(false);
+ const [advanceModal, setAdvanceModal] = useState(false);
const defaultGiftAccount = accountShells.find(
- ( shell ) =>
+ (shell) =>
shell.primarySubAccount.type == AccountType.CHECKING_ACCOUNT &&
shell.primarySubAccount.instanceNumber === 0
- )
- const [ selectedAccount, setSelectedAccount ]: [AccountShell, any] =
- useState( defaultGiftAccount )
- const spendableBalance = useSpendableBalanceForAccountShell( selectedAccount )
+ );
+ const [selectedAccount, setSelectedAccount]: [AccountShell, any] =
+ useState(defaultGiftAccount);
+ const spendableBalance = useSpendableBalanceForAccountShell(selectedAccount);
const account: Account =
- accountState.accounts[ selectedAccount.primarySubAccount.id ]
- const [ averageLowTxFee, setAverageLowTxFee ] = useState( 0 )
- const [ isExclusive, setIsExclusive ] = useState( true )
- const [ minimumGiftValue, setMinimumGiftValue ] = useState( 1000 )
- const [ showErrorLoader, setShowErrorLoader ] = useState( false )
- const [ satCard, setSatCard ] = useState( false )
- const [ showVerification, setShowVerification ] = useState( false )
+ accountState.accounts[selectedAccount.primarySubAccount.id];
+ const [averageLowTxFee, setAverageLowTxFee] = useState(0);
+ const [isExclusive, setIsExclusive] = useState(true);
+ const [minimumGiftValue, setMinimumGiftValue] = useState(1000);
+ const [showErrorLoader, setShowErrorLoader] = useState(false);
+ const [satCard, setSatCard] = useState(false);
+ const [showVerification, setShowVerification] = useState(false);
- const [ name, setName ] = useState( '' )
- const wallet: Wallet = useSelector( ( state ) => state.storage.wallet )
+ const [name, setName] = useState("");
+ const wallet: Wallet = useSelector((state) => state.storage.wallet);
- const currentSatsAmountFormValue = useMemo( () => {
- return Number( amount )
- }, [ amount ] )
+ const currentSatsAmountFormValue = useMemo(() => {
+ return Number(amount);
+ }, [amount]);
- const [ dropdownBoxValue, setDropdownBoxValue ] = useState( {
+ const [dropdownBoxValue, setDropdownBoxValue] = useState({
id: GiftThemeId.ONE,
- title: 'Gift Sats',
- subText: 'Something that appreciates with time',
+ title: "Gift Sats",
+ subText: "Something that appreciates with time",
avatar: ,
color: Colors.darkBlue,
- } )
-
+ });
- useEffect( () => {
- dispatch( sourceAccountSelectedForSending( defaultGiftAccount ) )
- }, [ defaultGiftAccount ] )
+ useEffect(() => {
+ dispatch(sourceAccountSelectedForSending(defaultGiftAccount));
+ }, [defaultGiftAccount]);
- useEffect( () => {
- let minimumGiftVal = 1000
- if ( includeFees ) minimumGiftVal += averageLowTxFee
- setMinimumGiftValue( minimumGiftVal )
- }, [ includeFees ] )
+ useEffect(() => {
+ let minimumGiftVal = 1000;
+ if (includeFees) minimumGiftVal += averageLowTxFee;
+ setMinimumGiftValue(minimumGiftVal);
+ }, [includeFees]);
- useEffect( () => {
- if ( numbersOfGift ) setFees( false )
- }, [ numbersOfGift ] )
+ useEffect(() => {
+ if (numbersOfGift) setFees(false);
+ }, [numbersOfGift]);
- useEffect( () => {
- setName( wallet.userName ? wallet.userName : wallet.walletName )
- }, [ wallet.walletName, wallet.userName ] )
+ useEffect(() => {
+ setName(wallet.userName ? wallet.userName : wallet.walletName);
+ }, [wallet.walletName, wallet.userName]);
- function convertFiatToSats( fiatAmount: number ) {
+ function convertFiatToSats(fiatAmount: number) {
return accountsState.exchangeRates &&
- accountsState.exchangeRates[ currencyCode ]
+ accountsState.exchangeRates[currencyCode]
? Math.trunc(
- ( fiatAmount / accountsState.exchangeRates[ currencyCode ].last ) *
+ (fiatAmount / accountsState.exchangeRates[currencyCode].last) *
SATOSHIS_IN_BTC
- )
- : 0
+ )
+ : 0;
}
- function convertSatsToFiat( sats ) {
+ function convertSatsToFiat(sats) {
return accountsState.exchangeRates &&
- accountsState.exchangeRates[ currencyCode ]
+ accountsState.exchangeRates[currencyCode]
? (
- ( sats / SATOSHIS_IN_BTC ) *
- accountsState.exchangeRates[ currencyCode ].last
- ).toFixed( 2 )
- : '0'
+ (sats / SATOSHIS_IN_BTC) *
+ accountsState.exchangeRates[currencyCode].last
+ ).toFixed(2)
+ : "0";
}
- const isAmountInvalid = useMemo( () => {
- let giftAmount = currentSatsAmountFormValue
- console.log( giftAmount )
+ const isAmountInvalid = useMemo(() => {
+ let giftAmount = currentSatsAmountFormValue;
+ console.log(giftAmount);
- const numberOfGifts = numbersOfGift ? Number( numbersOfGift ) : 1
- if ( prefersBitcoin ) {
- if ( !includeFees && averageLowTxFee ) giftAmount += averageLowTxFee
- return giftAmount * numberOfGifts > spendableBalance
+ const numberOfGifts = numbersOfGift ? Number(numbersOfGift) : 1;
+ if (prefersBitcoin) {
+ if (!includeFees && averageLowTxFee) giftAmount += averageLowTxFee;
+ return giftAmount * numberOfGifts > spendableBalance;
} else {
- const giftAmountInFiat = giftAmount ? giftAmount : 1
+ const giftAmountInFiat = giftAmount ? giftAmount : 1;
const spendableBalanceInFiat = parseFloat(
- convertSatsToFiat( spendableBalance )
- )
- return giftAmountInFiat * numberOfGifts > spendableBalanceInFiat
+ convertSatsToFiat(spendableBalance)
+ );
+ return giftAmountInFiat * numberOfGifts > spendableBalanceInFiat;
}
}, [
currentSatsAmountFormValue,
@@ -223,130 +225,130 @@ const CreateGift = ( { navigation }: Props ) => {
prefersBitcoin,
numbersOfGift,
currencyKind,
- ] )
+ ]);
- useEffect( () => {
+ useEffect(() => {
if (
accountsState.selectedGiftId &&
initGiftCreation &&
giftCreationStatus
) {
const createdGift = accountsState.gifts
- ? accountsState.gifts[ accountsState.selectedGiftId ]
- : null
- if ( createdGift ) {
- setCreatedGift( createdGift )
- setGiftModal( true )
- setInitGiftCreation( false )
- setShowLoader( false )
- setShowErrorLoader( false )
- dispatch( giftCreationSuccess( null ) )
+ ? accountsState.gifts[accountsState.selectedGiftId]
+ : null;
+ if (createdGift) {
+ setCreatedGift(createdGift);
+ setGiftModal(true);
+ setInitGiftCreation(false);
+ setShowLoader(false);
+ setShowErrorLoader(false);
+ dispatch(giftCreationSuccess(null));
}
}
- }, [ accountsState.selectedGiftId, initGiftCreation, giftCreationStatus ] )
+ }, [accountsState.selectedGiftId, initGiftCreation, giftCreationStatus]);
- useEffect( () => {
- if ( statusFlag == 'Invitation' ) {
+ useEffect(() => {
+ if (statusFlag == "Invitation") {
if (
accountsState.selectedGiftId &&
initGiftCreation &&
giftCreationStatus
) {
const createdGift = accountsState.gifts
- ? accountsState.gifts[ accountsState.selectedGiftId ]
- : null
- if ( createdGift ) {
- setCreatedGift( createdGift )
- setShowLoader( false )
- navigation.replace( 'SendGift', {
- fromScreen: 'Gift',
+ ? accountsState.gifts[accountsState.selectedGiftId]
+ : null;
+ if (createdGift) {
+ setCreatedGift(createdGift);
+ setShowLoader(false);
+ navigation.replace("SendGift", {
+ fromScreen: "Gift",
selectedContact: selectedContact,
- giftId: ( createdGift as Gift ).id,
+ giftId: (createdGift as Gift).id,
encryptionType: DeepLinkEncryptionType.OTP,
- note: 'Bitcoin is a new type of money that is not controlled by any government or company',
+ note: "Bitcoin is a new type of money that is not controlled by any government or company",
contact: selectedContact,
senderName: name,
themeId: dropdownBoxValue?.id ?? GiftThemeId.ONE,
setActiveTab: navigation.state.params.setActiveTab,
- } )
+ });
}
}
}
- }, [ accountsState.selectedGiftId, giftCreationStatus, initGiftCreation ] )
+ }, [accountsState.selectedGiftId, giftCreationStatus, initGiftCreation]);
- useEffect( () => {
- setInitGiftCreation( false )
- setShowLoader( false )
- if ( giftCreationStatus ) {
- dispatch( giftCreationSuccess( null ) )
- } else if ( giftCreationStatus === false ) {
+ useEffect(() => {
+ setInitGiftCreation(false);
+ setShowLoader(false);
+ if (giftCreationStatus) {
+ dispatch(giftCreationSuccess(null));
+ } else if (giftCreationStatus === false) {
// failed to create gift
- setShowLoader( false )
- setShowErrorLoader( true )
- dispatch( giftCreationSuccess( null ) )
+ setShowLoader(false);
+ setShowErrorLoader(true);
+ dispatch(giftCreationSuccess(null));
}
- }, [ giftCreationStatus ] )
+ }, [giftCreationStatus]);
- useEffect( () => {
- if ( isSendMax && sendMaxFee ) setAverageLowTxFee( sendMaxFee )
- else if ( account && accountState.averageTxFees )
+ useEffect(() => {
+ if (isSendMax && sendMaxFee) setAverageLowTxFee(sendMaxFee);
+ else if (account && accountState.averageTxFees)
setAverageLowTxFee(
- accountState.averageTxFees[ account.networkType ][ TxPriority.LOW ]
+ accountState.averageTxFees[account.networkType][TxPriority.LOW]
.averageTxFee
- )
- }, [ account, accountState.averageTxFees, isSendMax, sendMaxFee ] )
+ );
+ }, [account, accountState.averageTxFees, isSendMax, sendMaxFee]);
- useEffect( () => {
- if ( isSendMax && sendMaxFee ) setAverageLowTxFee( sendMaxFee )
- else if ( account && accountState.averageTxFees )
+ useEffect(() => {
+ if (isSendMax && sendMaxFee) setAverageLowTxFee(sendMaxFee);
+ else if (account && accountState.averageTxFees)
setAverageLowTxFee(
- accountState.averageTxFees[ account.networkType ][ TxPriority.LOW ]
+ accountState.averageTxFees[account.networkType][TxPriority.LOW]
.averageTxFee
- )
- }, [ account, accountState.averageTxFees, isSendMax, sendMaxFee ] )
+ );
+ }, [account, accountState.averageTxFees, isSendMax, sendMaxFee]);
- const numberWithCommas = ( x ) => {
- return x ? x.toString().replace( /\B(?=(\d{3})+(?!\d))/g, ',' ) : ''
- }
+ const numberWithCommas = (x) => {
+ return x ? x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") : "";
+ };
- useEffect( () => {
- if ( isSendMax ) setAmount( `${spendableBalance - sendMaxFee}` )
- }, [ sendMaxFee, isSendMax ] )
+ useEffect(() => {
+ if (isSendMax) setAmount(`${spendableBalance - sendMaxFee}`);
+ }, [sendMaxFee, isSendMax]);
- useEffect( () => {
- if ( currencyKind == CurrencyKind.BITCOIN ) {
- const newAmount = convertFiatToSats( parseFloat( amount ) ).toString()
- setAmount( newAmount == 'NaN' ? '' : newAmount )
- } else if ( currencyKind == CurrencyKind.FIAT ) {
- const newAmount = convertSatsToFiat( parseFloat( amount ) ).toString()
- setAmount( newAmount == 'NaN' ? '' : newAmount )
+ useEffect(() => {
+ if (currencyKind == CurrencyKind.BITCOIN) {
+ const newAmount = convertFiatToSats(parseFloat(amount)).toString();
+ setAmount(newAmount == "NaN" ? "" : newAmount);
+ } else if (currencyKind == CurrencyKind.FIAT) {
+ const newAmount = convertSatsToFiat(parseFloat(amount)).toString();
+ setAmount(newAmount == "NaN" ? "" : newAmount);
}
- }, [ currencyKind ] )
+ }, [currencyKind]);
function handleSendMaxPress() {
dispatch(
- calculateSendMaxFee( {
- numberOfRecipients: Number( numbersOfGift ),
+ calculateSendMaxFee({
+ numberOfRecipients: Number(numbersOfGift),
accountShell: selectedAccount,
- } )
- )
- setIsSendMax( true )
+ })
+ );
+ setIsSendMax(true);
}
- const renderButton = ( text, condn ) => {
+ const renderButton = (text, condn) => {
const availableToSpend =
selectedAccount && selectedAccount.primarySubAccount?.balances?.confirmed
? selectedAccount.primarySubAccount?.balances?.confirmed
- : 0
+ : 0;
- let isDisabled = isAmountInvalid
- if ( !isDisabled ) {
- if ( prefersBitcoin ) {
- isDisabled = currentSatsAmountFormValue < minimumGiftValue
+ let isDisabled = isAmountInvalid;
+ if (!isDisabled) {
+ if (prefersBitcoin) {
+ isDisabled = currentSatsAmountFormValue < minimumGiftValue;
} else {
isDisabled =
currentSatsAmountFormValue <
- parseFloat( convertSatsToFiat( minimumGiftValue ) )
+ parseFloat(convertSatsToFiat(minimumGiftValue));
}
}
@@ -354,127 +356,130 @@ const CreateGift = ( { navigation }: Props ) => {
{
- if ( satCard ) {
- setShowVerification( true )
+ if (satCard) {
+ setShowVerification(true);
} else {
- console.log( 'condn', condn )
- const giftInstances = Number( numbersOfGift )
+ console.log("condn", condn);
+ const giftInstances = Number(numbersOfGift);
const giftAmountInSats = prefersBitcoin
- ? Number( amount )
- : convertFiatToSats( parseFloat( amount ) )
- const giftAmountsInSats = []
- for ( let int = 0; int < giftInstances; int++ ) {
- giftAmountsInSats.push( giftAmountInSats )
+ ? Number(amount)
+ : convertFiatToSats(parseFloat(amount));
+ const giftAmountsInSats = [];
+ for (let int = 0; int < giftInstances; int++) {
+ giftAmountsInSats.push(giftAmountInSats);
}
- switch ( condn ) {
- case 'Invitation':
- if ( giftAmountsInSats.length ) {
- setInitGiftCreation( true )
- setShowLoader( true )
- dispatch(
- generateGifts( {
- amounts: giftAmountsInSats,
- accountId:
- selectedAccount &&
- selectedAccount.primarySubAccount &&
- selectedAccount.primarySubAccount.id
- ? selectedAccount.primarySubAccount.id
- : '',
- includeFee: includeFees,
- exclusiveGifts:
- giftAmountsInSats.length === 1 ? false : isExclusive,
- } )
- )
- }
- break
- case 'Create Gift':
- // creating multiple gift instances(based on giftInstances) of the same amount
- if ( giftAmountsInSats.length ) {
- setInitGiftCreation( true )
- setShowLoader( true )
- dispatch(
- generateGifts( {
- amounts: giftAmountsInSats,
- accountId:
- selectedAccount &&
- selectedAccount.primarySubAccount &&
- selectedAccount.primarySubAccount.id
- ? selectedAccount.primarySubAccount.id
- : '',
- includeFee: includeFees,
- exclusiveGifts:
- giftAmountsInSats.length === 1 ? false : isExclusive,
- } )
- )
- }
- break
+ switch (condn) {
+ case "Invitation":
+ if (giftAmountsInSats.length) {
+ setInitGiftCreation(true);
+ setShowLoader(true);
+ dispatch(
+ generateGifts({
+ amounts: giftAmountsInSats,
+ accountId:
+ selectedAccount &&
+ selectedAccount.primarySubAccount &&
+ selectedAccount.primarySubAccount.id
+ ? selectedAccount.primarySubAccount.id
+ : "",
+ includeFee: includeFees,
+ exclusiveGifts:
+ giftAmountsInSats.length === 1 ? false : isExclusive,
+ })
+ );
+ }
+ break;
+ case "Create Gift":
+ // creating multiple gift instances(based on giftInstances) of the same amount
+ if (giftAmountsInSats.length) {
+ setInitGiftCreation(true);
+ setShowLoader(true);
+ dispatch(
+ generateGifts({
+ amounts: giftAmountsInSats,
+ accountId:
+ selectedAccount &&
+ selectedAccount.primarySubAccount &&
+ selectedAccount.primarySubAccount.id
+ ? selectedAccount.primarySubAccount.id
+ : "",
+ includeFee: includeFees,
+ exclusiveGifts:
+ giftAmountsInSats.length === 1 ? false : isExclusive,
+ })
+ );
+ }
+ break;
- case 'Add F&F and Send':
- setGiftModal( false )
- navigation.navigate( 'AddContact', {
- fromScreen: 'Gift',
- giftId: ( createdGift as Gift ).id,
- setActiveTab: navigation.state.params.setActiveTab,
- } )
- break
+ case "Add F&F and Send":
+ setGiftModal(false);
+ navigation.navigate("AddContact", {
+ fromScreen: "Gift",
+ giftId: (createdGift as Gift).id,
+ setActiveTab: navigation.state.params.setActiveTab,
+ });
+ break;
- case 'Send Gift':
- setGiftModal( false )
- navigation.navigate( 'EnterGiftDetails', {
- giftId: ( createdGift as Gift ).id,
- setActiveTab: navigation.state.params.setActiveTab,
- } )
- break
+ case "Send Gift":
+ setGiftModal(false);
+ navigation.navigate("EnterGiftDetails", {
+ giftId: (createdGift as Gift).id,
+ setActiveTab: navigation.state.params.setActiveTab,
+ });
+ break;
}
}
}}
-
>
-
{text}
- )
- }
+ );
+ };
const onCloseClick = () => {
- setShowVerification( false )
- }
+ setShowVerification(false);
+ };
const onVerifyClick = () => {
- setShowVerification( false )
- navigation.navigate( 'SetUpSatNextCard', {
- giftAmount: includeFees ? JSON.stringify( parseInt( amount ) - 226 ) : amount,
+ setShowVerification(false);
+ navigation.navigate("SetUpSatNextCard", {
+ giftAmount: includeFees ? JSON.stringify(parseInt(amount) - 226) : amount,
fromClaimFlow: 0,
- } )
- }
+ });
+ };
- function onPressNumber( text ) {
- let tmpPasscode = amount
- if ( text != 'x' ) {
- tmpPasscode += text
- setAmount( tmpPasscode )
+ function onPressNumber(text) {
+ let tmpPasscode = amount;
+ if (text != "x") {
+ tmpPasscode += text;
+ setAmount(tmpPasscode);
}
- if ( amount && text == 'x' ) {
- setAmount( amount.slice( 0, -1 ) )
+ if (amount && text == "x") {
+ setAmount(amount.slice(0, -1));
}
- if ( isSendMax ) setIsSendMax( false )
+ if (isSendMax) setIsSendMax(false);
}
const renderCreateGiftModal = () => {
@@ -482,11 +487,11 @@ const CreateGift = ( { navigation }: Props ) => {
@@ -494,19 +499,19 @@ const CreateGift = ( { navigation }: Props ) => {
{
- setGiftModal( false )
- navigation.goBack()
+ setGiftModal(false);
+ navigation.goBack();
}}
style={{
- width: wp( 7 ),
- height: wp( 7 ),
- borderRadius: wp( 7 / 2 ),
- alignSelf: 'flex-end',
+ width: wp(7),
+ height: wp(7),
+ borderRadius: wp(7 / 2),
+ alignSelf: "flex-end",
backgroundColor: Colors.THEAM_TEXT_COLOR,
- alignItems: 'center',
- justifyContent: 'center',
- marginTop: wp( 3 ),
- marginRight: wp( 3 ),
+ alignItems: "center",
+ justifyContent: "center",
+ marginTop: wp(3),
+ marginRight: wp(3),
}}
>
{
Gift Created
@@ -532,30 +537,30 @@ const CreateGift = ( { navigation }: Props ) => {
...styles.modalInfoText,
}}
>
- {'You\'re ready to elate!'}
+ {"You're ready to elate!"}
}
- currencyCode={prefersBitcoin ? '' : currencyCode}
+ currencyCode={prefersBitcoin ? "" : currencyCode}
/>
@@ -591,70 +596,68 @@ const CreateGift = ( { navigation }: Props ) => {
*/}
- {renderButton( 'Send Gift', addfNf ? 'Add F&F and Send' : 'Send Gift' )}
+ {renderButton("Send Gift", addfNf ? "Add F&F and Send" : "Send Gift")}
{/* {renderButton( 'Add F&F and Send' )} */}
- )
- }
+ );
+ };
const BalanceCurrencyIcon = () => {
- const style = {
- }
+ const style = {};
- if ( prefersBitcoin ) {
+ if (prefersBitcoin) {
return (
- )
+ );
}
- if ( materialIconCurrencyCodes.includes( fiatCurrencyCode ) ) {
+ if (materialIconCurrencyCodes.includes(fiatCurrencyCode)) {
return (
- )
+ );
} else {
return (
- )
+ );
}
- }
+ };
const renderAccountList = () => {
return (
- {activeAccounts.map( ( item, index ) => {
+ {activeAccounts.map((item, index) => {
if (
- [ AccountType.TEST_ACCOUNT, AccountType.SWAN_ACCOUNT ].includes(
+ [AccountType.TEST_ACCOUNT, AccountType.SWAN_ACCOUNT].includes(
item.primarySubAccount.type
) ||
!item.primarySubAccount.isUsable ||
item.primarySubAccount.isTFAEnabled
)
- return
+ return;
return (
{
backgroundColor: Colors.white,
}}
>
- {accountElement( item, () => {
- setSelectedAccount( item )
- setAccountListModal( false )
- } )}
+ {accountElement(item, () => {
+ setSelectedAccount(item);
+ setAccountListModal(false);
+ })}
- )
- } )}
+ );
+ })}
- )
- }
+ );
+ };
- const AdvanceGiftOptions = ( { title, stateToUpdate, imageToShow } ) => {
- const [ timer, SetTimer ] = useState( null )
- const [ counter, SetCounter ] = useState( numbersOfGift )
- const [ timeLock, setTimeLock ] = useState( 1 )
- const [ limitedValidity, setLimitedValidity ] = useState( 1 )
+ const AdvanceGiftOptions = ({ title, stateToUpdate, imageToShow }) => {
+ const [timer, SetTimer] = useState(null);
+ const [counter, SetCounter] = useState(numbersOfGift);
+ const [timeLock, setTimeLock] = useState(1);
+ const [limitedValidity, setLimitedValidity] = useState(1);
- let flag = null
+ let flag = null;
const handleTimer = () => {
- flag == true ? plus() : flag == false && minus()
- flag !== null && SetTimer( () => setTimeout( () => handleTimer(), 500 ) )
- }
+ flag == true ? plus() : flag == false && minus();
+ flag !== null && SetTimer(() => setTimeout(() => handleTimer(), 500));
+ };
const stopTimer = () => {
- flag = null
- SetTimer( null )
- clearTimeout( timer )
- setNumbersOfGift( counter )
- }
+ flag = null;
+ SetTimer(null);
+ clearTimeout(timer);
+ setNumbersOfGift(counter);
+ };
const plus = () => {
- if ( stateToUpdate == 'gift' ) {
- SetCounter( ( prev ) => prev + 1 )
- } else if ( stateToUpdate == 'timeLock' ) {
- setTimeLock( timeLock + 1 )
- } else if ( stateToUpdate == 'limitedValidity' ) {
- setLimitedValidity( limitedValidity + 1 )
+ if (stateToUpdate == "gift") {
+ SetCounter((prev) => prev + 1);
+ } else if (stateToUpdate == "timeLock") {
+ setTimeLock(timeLock + 1);
+ } else if (stateToUpdate == "limitedValidity") {
+ setLimitedValidity(limitedValidity + 1);
}
- }
+ };
const minus = () => {
- if ( stateToUpdate == 'gift' ) {
- if ( counter > 1 ) SetCounter( ( prev ) => prev - 1 )
- } else if ( stateToUpdate == 'timeLock' ) {
- if ( timeLock > 1 ) setTimeLock( timeLock - 1 )
- } else if ( stateToUpdate == 'limitedValidity' ) {
- if ( limitedValidity > 1 ) setLimitedValidity( limitedValidity - 1 )
+ if (stateToUpdate == "gift") {
+ if (counter > 1) SetCounter((prev) => prev - 1);
+ } else if (stateToUpdate == "timeLock") {
+ if (timeLock > 1) setTimeLock(timeLock - 1);
+ } else if (stateToUpdate == "limitedValidity") {
+ if (limitedValidity > 1) setLimitedValidity(limitedValidity - 1);
}
- }
+ };
return (
@@ -750,64 +753,64 @@ const CreateGift = ( { navigation }: Props ) => {
Gift Sats created will be of the
- {' '}
+ {" "}
same amount
- {' '}
+ {" "}
and can be
- {' '}
+ {" "}
sent separately
{
- flag = false
- handleTimer()
+ flag = false;
+ handleTimer();
}}
onPressOut={() => stopTimer()}
style={{
- width: wp( '5%' ),
- height: wp( '5%' ),
- borderRadius: wp( '5%' ) / 2,
+ width: wp("5%"),
+ height: wp("5%"),
+ borderRadius: wp("5%") / 2,
backgroundColor: Colors.THEAM_TEXT_COLOR,
- justifyContent: 'center',
- alignItems: 'center',
- marginRight: wp( '4%' ),
+ justifyContent: "center",
+ alignItems: "center",
+ marginRight: wp("4%"),
}}
>
{
style={{
color: Colors.black,
fontFamily: Fonts.Regular,
- fontSize: RFValue( 18 ),
+ fontSize: RFValue(18),
}}
>
- {stateToUpdate == 'gift'
+ {stateToUpdate == "gift"
? counter
- : stateToUpdate == 'timeLock'
- ? timeLock
- : limitedValidity}
+ : stateToUpdate == "timeLock"
+ ? timeLock
+ : limitedValidity}
{
- flag = true
- handleTimer()
+ flag = true;
+ handleTimer();
}}
onPressOut={() => stopTimer()}
style={{
- width: wp( '5%' ),
- height: wp( '5%' ),
- borderRadius: wp( '5%' ) / 2,
+ width: wp("5%"),
+ height: wp("5%"),
+ borderRadius: wp("5%") / 2,
backgroundColor: Colors.THEAM_TEXT_COLOR,
- justifyContent: 'center',
- alignItems: 'center',
- marginLeft: wp( '4%' ),
+ justifyContent: "center",
+ alignItems: "center",
+ marginLeft: wp("4%"),
}}
>
@@ -853,9 +856,9 @@ const CreateGift = ( { navigation }: Props ) => {
setIsExclusive( !isExclusive )}
+ onPress={() => setIsExclusive(!isExclusive)}
style={{
- flexDirection: 'row',
+ flexDirection: "row",
marginVertical: 7,
}}
>
@@ -872,50 +875,50 @@ const CreateGift = ( { navigation }: Props ) => {
- {'Make each gift exclusive\n'}
+ {"Make each gift exclusive\n"}
- (Restricts the gift to{' '}
+ (Restricts the gift to{" "}
one per Bitcoin Tribe app
- {' '}
+ {" "}
)
- )
- }
+ );
+ };
const renderAdvanceModal = () => {
return (
setAdvanceModal( false )}
+ onPress={() => setAdvanceModal(false)}
style={styles.modalCrossButton}
>
@@ -924,13 +927,13 @@ const CreateGift = ( { navigation }: Props ) => {
@@ -941,10 +944,10 @@ const CreateGift = ( { navigation }: Props ) => {
}}>Lorem ipsum dolor Lorem dolor sit amet, consectetur dolor sit */}
{/*
{
imageToShow={require( '../../assets/images/icons/validity.png' )}
/> */}
- )
- }
+ );
+ };
// gift creation failure UI
@@ -977,18 +980,18 @@ const CreateGift = ( { navigation }: Props ) => {
{
- setShowErrorLoader( false )
+ setShowErrorLoader(false);
}}
style={styles.modalCrossButton}
>
@@ -998,16 +1001,16 @@ const CreateGift = ( { navigation }: Props ) => {
{
style={{
color: Colors.gray3,
marginBottom: 10,
- fontSize: RFValue( 12 ),
+ fontSize: RFValue(12),
fontFamily: Fonts.Regular,
}}
>
@@ -1028,57 +1031,57 @@ const CreateGift = ( { navigation }: Props ) => {
{accountElement(
selectedAccount,
() => {},
1,
- '90%',
- 'Bitcoin not deducted'
+ "90%",
+ "Bitcoin not deducted"
)}
{
- setShowErrorLoader( false )
+ setShowErrorLoader(false);
}}
>
Try again
- )
- }
+ );
+ };
const accountElement = (
item,
onPressCallBack,
activeOpacity = 0,
- width = '90%',
+ width = "90%",
message = `${
- currencyKind === CurrencyKind.BITCOIN ? 'Sats' : 'Money'
+ currencyKind === CurrencyKind.BITCOIN ? "Sats" : "Money"
} would be deducted from`
) => {
return (
@@ -1092,37 +1095,37 @@ const CreateGift = ( { navigation }: Props ) => {
>
- {getAvatarForSubAccount( item.primarySubAccount, false, true )}
+ {getAvatarForSubAccount(item.primarySubAccount, false, true)}
@@ -1131,7 +1134,7 @@ const CreateGift = ( { navigation }: Props ) => {
@@ -1139,22 +1142,22 @@ const CreateGift = ( { navigation }: Props ) => {
item.primarySubAccount.defaultTitle}
- {'Available to spend: '}
+ {"Available to spend: "}
{prefersBitcoin
? UsNumberFormat(
- item.primarySubAccount?.balances?.confirmed
- )
+ item.primarySubAccount?.balances?.confirmed
+ )
: accountsState.exchangeRates &&
- accountsState.exchangeRates[ currencyCode ]
- ? (
- ( item.primarySubAccount?.balances?.confirmed /
- SATOSHIS_IN_BTC ) *
- accountsState.exchangeRates[ currencyCode ].last
- ).toFixed( 2 )
- : 0}
+ accountsState.exchangeRates[currencyCode]
+ ? (
+ (item.primarySubAccount?.balances?.confirmed /
+ SATOSHIS_IN_BTC) *
+ accountsState.exchangeRates[currencyCode].last
+ ).toFixed(2)
+ : 0}
- {prefersBitcoin ? ' sats' : ` ${fiatCurrencyCode}`}
+ {prefersBitcoin ? " sats" : ` ${fiatCurrencyCode}`}
{activeOpacity === 0 && (
@@ -1163,15 +1166,15 @@ const CreateGift = ( { navigation }: Props ) => {
size={24}
color="gray"
style={{
- alignSelf: 'center',
+ alignSelf: "center",
}}
/>
)}
- )
- }
+ );
+ };
return (
{
/>
{giftModal && (
setGiftModal( false )}
+ onBackground={() => setGiftModal(false)}
visible={giftModal}
closeBottomSheet={() => {}}
>
@@ -1199,21 +1202,21 @@ const CreateGift = ( { navigation }: Props ) => {
CommonStyles.headerContainer,
{
backgroundColor: Colors.backgroundColor,
- marginRight: wp( 4 ),
- marginVertical: height < 720 ? wp( 0 ) : 'auto',
+ marginRight: wp(4),
+ marginVertical: height < 720 ? wp(0) : "auto",
},
]}
>
{
- navigation.goBack()
+ navigation.goBack();
}}
>
@@ -1222,8 +1225,8 @@ const CreateGift = ( { navigation }: Props ) => {
{
>
- {'Create Gift'}
+ {"Create Gift"}
setAdvanceModal( true )}
+ onPress={() => setAdvanceModal(true)}
>
- {accountElement( selectedAccount, () =>
- setAccountListModal( !accountListModal )
+ {accountElement(selectedAccount, () =>
+ setAccountListModal(!accountListModal)
)}
{
- if( showKeyboard ) return
- setKeyboard( true )
+ if (showKeyboard) return;
+ setKeyboard(true);
}}
>
{currencyKind == CurrencyKind.FIAT
? amount
- : UsNumberFormat( amount ) === '0'
- ? ''
- : UsNumberFormat( amount )}
+ : UsNumberFormat(amount) === "0"
+ ? ""
+ : UsNumberFormat(amount)}
{!showKeyboard && !amount && (
{`Enter amount in ${
- prefersBitcoin ? 'sats' : `${fiatCurrencyCode}`
+ prefersBitcoin ? "sats" : `${fiatCurrencyCode}`
}`}
)}
@@ -1331,7 +1334,7 @@ const CreateGift = ( { navigation }: Props ) => {
|
@@ -1339,7 +1342,7 @@ const CreateGift = ( { navigation }: Props ) => {
)}
- {Number( numbersOfGift ) === 1 && (
+ {Number(numbersOfGift) === 1 && (
{
@@ -1366,12 +1369,12 @@ const CreateGift = ( { navigation }: Props ) => {
{
{
style={{
color: Colors.black,
fontFamily: Fonts.Regular,
- fontSize: RFValue( 12 ),
+ fontSize: RFValue(12),
}}
>
- x{' '}
+ x{" "}
{numbersOfGift}
@@ -1407,9 +1410,9 @@ const CreateGift = ( { navigation }: Props ) => {
style={{
color: Colors.black,
fontFamily: Fonts.Regular,
- fontSize: RFValue( 12 ),
- marginLeft: 'auto',
- marginTop: hp( '0.5%' ),
+ fontSize: RFValue(12),
+ marginLeft: "auto",
+ marginTop: hp("0.5%"),
}}
>
gifts
@@ -1421,17 +1424,17 @@ const CreateGift = ( { navigation }: Props ) => {
@@ -1439,37 +1442,37 @@ const CreateGift = ( { navigation }: Props ) => {
{prefersBitcoin ? (
- ) : materialIconCurrencyCodes.includes( fiatCurrencyCode ) ? (
+ ) : materialIconCurrencyCodes.includes(fiatCurrencyCode) ? (
) : (
@@ -1477,32 +1480,32 @@ const CreateGift = ( { navigation }: Props ) => {
style={{
...styles.cardBitCoinImage,
}}
- source={getCurrencyImageByRegion( fiatCurrencyCode, 'light' )}
+ source={getCurrencyImageByRegion(fiatCurrencyCode, "light")}
/>
)}
{prefersBitcoin
- ? UsNumberFormat( parseInt( amount ) * numbersOfGift )
- : exchangeRates && exchangeRates[ currencyCode ]
- ? (
- ( ( parseInt( amount ) * numbersOfGift ) / SATOSHIS_IN_BTC ) *
- exchangeRates[ currencyCode ].last
- ).toFixed( 2 )
- : ''}
+ ? UsNumberFormat(parseInt(amount) * numbersOfGift)
+ : exchangeRates && exchangeRates[currencyCode]
+ ? (
+ ((parseInt(amount) * numbersOfGift) / SATOSHIS_IN_BTC) *
+ exchangeRates[currencyCode].last
+ ).toFixed(2)
+ : ""}
- {prefersBitcoin ? 'sats' : fiatCurrencyCode}
+ {prefersBitcoin ? "sats" : fiatCurrencyCode}
) : null}
{/* {
- {'Minimum gift value '}
+ {"Minimum gift value "}
{prefersBitcoin
? minimumGiftValue
- : convertSatsToFiat( minimumGiftValue )}{' '}
- {prefersBitcoin ? 'sats' : currencyCode}
+ : convertSatsToFiat(minimumGiftValue)}{" "}
+ {prefersBitcoin ? "sats" : currencyCode}
{/* */}
{
style={{
transform: [
{
- scaleX: Platform.OS == 'ios' ? 0.5 : 0.7,
+ scaleX: Platform.OS == "ios" ? 0.5 : 0.7,
},
{
- scaleY: Platform.OS == 'ios' ? 0.5 : 0.7,
+ scaleY: Platform.OS == "ios" ? 0.5 : 0.7,
},
],
}}
trackColor={{
- false: '#C4C4C4',
+ false: "#C4C4C4",
true: Colors.blue,
}}
- thumbColor={includeFees ? '#fff' : '#fff'}
+ thumbColor={includeFees ? "#fff" : "#fff"}
ios_backgroundColor="#3e3e3e"
- onValueChange={( value ) => {
- setFees( value )
+ onValueChange={(value) => {
+ setFees(value);
}}
/>
- {'Include '}
+ {"Include "}
- {'Fee'}
+ {"Fee"}
- {isAmountInvalid ? strings.Insufficient : ''}
+ {isAmountInvalid ? strings.Insufficient : ""}
{
// ( Number( numbersOfGift ) === 1 ) &&
!isSendMax && (
-
- setSatCard( !satCard )}
- disabled={numbersOfGift ? Number( numbersOfGift ) < 1 : false}
+
+ setSatCard(!satCard)}
+ disabled={numbersOfGift ? Number(numbersOfGift) < 1 : false}
style={{
- flexDirection: 'row'
+ flexDirection: "row",
}}
>
- {satCard &&
-
- }
+ {satCard && (
+
+ )}
-
+
Use SATSCARD™ to gift sats
@@ -1625,17 +1634,17 @@ const CreateGift = ( { navigation }: Props ) => {
}
@@ -1645,74 +1654,74 @@ const CreateGift = ( { navigation }: Props ) => {
- {Number( amount ) * numbersOfGift}
+ {Number(amount) * numbersOfGift}
- {prefersBitcoin ? ' sats' : ` ${currencyCode}`}
+ {prefersBitcoin ? " sats" : ` ${currencyCode}`}
{statusFlag
- ? renderButton( 'Create Gifts', 'Invitation' )
+ ? renderButton("Create Gifts", "Invitation")
: renderButton(
- numbersOfGift > 1 ? 'Create Gifts' : 'Create Gift',
- 'Create Gift'
- )}
+ numbersOfGift > 1 ? "Create Gifts" : "Create Gift",
+ "Create Gift"
+ )}
{showKeyboard && (
onPressNumber( '1' )}
+ onPress={() => onPressNumber("1")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '1' )}
+ onPress={() => onPressNumber("1")}
>
1
onPressNumber( '2' )}
+ onPress={() => onPressNumber("2")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '2' )}
+ onPress={() => onPressNumber("2")}
>
2
onPressNumber( '3' )}
+ onPress={() => onPressNumber("3")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '3' )}
+ onPress={() => onPressNumber("3")}
>
3
@@ -1720,34 +1729,34 @@ const CreateGift = ( { navigation }: Props ) => {
onPressNumber( '4' )}
+ onPress={() => onPressNumber("4")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '4' )}
+ onPress={() => onPressNumber("4")}
>
4
onPressNumber( '5' )}
+ onPress={() => onPressNumber("5")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '5' )}
+ onPress={() => onPressNumber("5")}
>
5
onPressNumber( '6' )}
+ onPress={() => onPressNumber("6")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '6' )}
+ onPress={() => onPressNumber("6")}
>
6
@@ -1755,34 +1764,34 @@ const CreateGift = ( { navigation }: Props ) => {
onPressNumber( '7' )}
+ onPress={() => onPressNumber("7")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '7' )}
+ onPress={() => onPressNumber("7")}
>
7
onPressNumber( '8' )}
+ onPress={() => onPressNumber("8")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '8' )}
+ onPress={() => onPressNumber("8")}
>
8
onPressNumber( '9' )}
+ onPress={() => onPressNumber("9")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '9' )}
+ onPress={() => onPressNumber("9")}
>
9
@@ -1798,23 +1807,23 @@ const CreateGift = ( { navigation }: Props ) => {
>
onPressNumber( '0' )}
+ onPress={() => onPressNumber("0")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '0' )}
+ onPress={() => onPressNumber("0")}
>
0
onPressNumber( 'x' )}
+ onPress={() => onPressNumber("x")}
style={styles.keyPadElementTouchable}
>
onPressNumber( 'x' )}
+ onPress={() => onPressNumber("x")}
>
{
)}
setAccountListModal( false )}
+ onBackground={() => setAccountListModal(false)}
visible={accountListModal}
- closeBottomSheet={() => setAccountListModal( false )}
+ closeBottomSheet={() => setAccountListModal(false)}
>
{renderAccountList()}
setAdvanceModal( false )}
+ onBackground={() => setAdvanceModal(false)}
visible={advanceModal}
- closeBottomSheet={() => setAdvanceModal( false )}
+ closeBottomSheet={() => setAdvanceModal(false)}
>
{renderAdvanceModal()}
setShowLoader( false )}
+ onBackground={() => setShowLoader(false)}
visible={showLoader}
- closeBottomSheet={() => setShowLoader( false )}
+ closeBottomSheet={() => setShowLoader(false)}
>
setShowLoader( false )}
+ onBackground={() => setShowLoader(false)}
visible={showErrorLoader}
>
{renderErrorModal()}
@@ -1869,70 +1878,70 @@ const CreateGift = ( { navigation }: Props ) => {
closeBottomSheet={onCloseClick}
>
- )
-}
+ );
+};
-const styles = StyleSheet.create( {
+const styles = StyleSheet.create({
keyPadRow: {
- flexDirection: 'row',
- height: hp( '7%' ),
+ flexDirection: "row",
+ height: hp("7%"),
},
errorText: {
fontFamily: Fonts.MediumItalic,
color: Colors.red,
- fontSize: RFValue( 11, 812 ),
- fontStyle: 'italic',
+ fontSize: RFValue(11, 812),
+ fontStyle: "italic",
},
keyPadElementTouchable: {
flex: 1,
- height: hp( '8%' ),
- fontSize: RFValue( 18 ),
- justifyContent: 'center',
- alignItems: 'center',
+ height: hp("8%"),
+ fontSize: RFValue(18),
+ justifyContent: "center",
+ alignItems: "center",
},
keyPadElementText: {
color: Colors.blue,
- fontSize: RFValue( 25 ),
+ fontSize: RFValue(25),
fontFamily: Fonts.Regular,
- fontStyle: 'normal',
+ fontStyle: "normal",
},
cardBitCoinImage: {
- width: wp( '3.5%' ),
- height: wp( '3.5%' ),
+ width: wp("3.5%"),
+ height: wp("3.5%"),
marginRight: 5,
- resizeMode: 'contain',
+ resizeMode: "contain",
// marginBottom: wp( '0.7%' ),
},
modalTitleText: {
color: Colors.blue,
- fontSize: RFValue( 18 ),
+ fontSize: RFValue(18),
fontFamily: Fonts.Regular,
letterSpacing: 0.54,
},
modalInfoText: {
color: Colors.textColorGrey,
- fontSize: RFValue( 12 ),
+ fontSize: RFValue(12),
fontFamily: Fonts.Regular,
- marginRight: wp( 10 ),
+ marginRight: wp(10),
letterSpacing: 0.6,
- marginBottom: hp( 2 ),
+ marginBottom: hp(2),
},
modalContentContainer: {
backgroundColor: Colors.backgroundColor,
- paddingBottom: hp( 4 ),
+ paddingBottom: hp(4),
},
viewContainer: {
flex: 1,
@@ -1940,23 +1949,23 @@ const styles = StyleSheet.create( {
},
buttonText: {
color: Colors.white,
- fontSize: RFValue( 13 ),
+ fontSize: RFValue(13),
fontFamily: Fonts.Medium,
},
buttonView: {
- height: wp( '12%' ),
- width: wp( '27%' ),
- paddingHorizontal: wp( 2 ),
- justifyContent: 'center',
- alignItems: 'center',
+ height: wp("12%"),
+ width: wp("27%"),
+ paddingHorizontal: wp(2),
+ justifyContent: "center",
+ alignItems: "center",
borderRadius: 8,
backgroundColor: Colors.blue,
},
disabledButtonView: {
- height: wp( '12%' ),
- width: wp( '27%' ),
- justifyContent: 'center',
- alignItems: 'center',
+ height: wp("12%"),
+ width: wp("27%"),
+ justifyContent: "center",
+ alignItems: "center",
borderRadius: 8,
backgroundColor: Colors.THEAM_TEXT_COLOR,
},
@@ -1965,8 +1974,8 @@ const styles = StyleSheet.create( {
height: 18,
borderRadius: 9,
backgroundColor: Colors.white,
- justifyContent: 'center',
- alignItems: 'center',
+ justifyContent: "center",
+ alignItems: "center",
elevation: 6,
shadowOpacity: 0.1,
shadowOffset: {
@@ -1976,24 +1985,24 @@ const styles = StyleSheet.create( {
},
modalInputBox: {
flex: 1,
- fontSize: RFValue( 15 ),
+ fontSize: RFValue(15),
color: Colors.textColorGrey,
fontFamily: Fonts.Regular,
backgroundColor: Colors.white,
- alignSelf: 'center',
+ alignSelf: "center",
},
inputBox: {
borderWidth: 0.5,
borderRadius: 10,
- marginLeft: wp( '5%' ),
- marginRight: wp( '5%' ),
+ marginLeft: wp("5%"),
+ marginRight: wp("5%"),
backgroundColor: Colors.white,
},
inputBoxFocused: {
borderWidth: 0.5,
borderRadius: 10,
- marginLeft: wp( '5%' ),
- marginRight: wp( '5%' ),
+ marginLeft: wp("5%"),
+ marginRight: wp("5%"),
elevation: 10,
shadowColor: Colors.borderColor,
shadowOpacity: 10,
@@ -2004,72 +2013,72 @@ const styles = StyleSheet.create( {
backgroundColor: Colors.white,
},
accImage: {
- marginRight: wp( 4 ),
+ marginRight: wp(4),
},
availableToSpendText: {
color: Colors.blue,
- fontSize: RFValue( 10 ),
+ fontSize: RFValue(10),
fontFamily: Fonts.Italic,
lineHeight: 15,
},
balanceText: {
color: Colors.blue,
- fontSize: RFValue( 10 ),
+ fontSize: RFValue(10),
fontFamily: Fonts.Italic,
},
proceedButtonText: {
color: Colors.blue,
- fontSize: RFValue( 13 ),
+ fontSize: RFValue(13),
fontFamily: Fonts.Medium,
},
selectedContactsView: {
- flexDirection: 'row',
- alignItems: 'center',
- justifyContent: 'space-around',
+ flexDirection: "row",
+ alignItems: "center",
+ justifyContent: "space-around",
backgroundColor: Colors.blue,
- borderRadius: wp( 2 ),
- height: hp( 4 ),
- paddingHorizontal: wp( 2 ),
+ borderRadius: wp(2),
+ height: hp(4),
+ paddingHorizontal: wp(2),
},
contactText: {
- fontSize: RFValue( 13 ),
+ fontSize: RFValue(13),
fontFamily: Fonts.Regular,
color: Colors.white,
},
accountSelectionView: {
- width: '90%',
+ width: "90%",
// shadowOpacity: 0.06,
// shadowOffset: {
// width: 10, height: 10
// },
// shadowRadius: 10,
// elevation: 2,
- alignSelf: 'center',
- marginTop: hp( 2 ),
- marginBottom: hp( 2 ),
+ alignSelf: "center",
+ marginTop: hp(2),
+ marginBottom: hp(2),
},
modalCrossButton: {
- width: wp( 7 ),
- height: wp( 7 ),
- borderRadius: wp( 7 / 2 ),
+ width: wp(7),
+ height: wp(7),
+ borderRadius: wp(7 / 2),
backgroundColor: Colors.CLOSE_ICON_COLOR,
- alignItems: 'center',
- justifyContent: 'center',
- marginLeft: 'auto',
+ alignItems: "center",
+ justifyContent: "center",
+ marginLeft: "auto",
},
homeHeaderAmountText: {
fontFamily: Fonts.Regular,
- fontSize: RFValue( 20 ),
+ fontSize: RFValue(20),
marginRight: 5,
color: Colors.black,
},
homeHeaderAmountUnitText: {
fontFamily: Fonts.Regular,
- fontSize: RFValue( 11 ),
+ fontSize: RFValue(11),
// marginBottom: 3,
color: Colors.gray2,
- marginTop: hp( 0.7 ),
+ marginTop: hp(0.7),
},
-} )
+});
-export default CreateGift
+export default CreateGift;
diff --git a/src/pages/FriendsAndFamily/FriendsAndFamilyScreen.tsx b/src/pages/FriendsAndFamily/FriendsAndFamilyScreen.tsx
index fa9b85e1eb..dbed61ea9d 100644
--- a/src/pages/FriendsAndFamily/FriendsAndFamilyScreen.tsx
+++ b/src/pages/FriendsAndFamily/FriendsAndFamilyScreen.tsx
@@ -566,7 +566,7 @@ class FriendsAndFamilyScreen extends React.Component<
>
{this.strings[ 'f&f' ]}
- {
this.setState( {
isLoadContacts: true,
diff --git a/src/pages/FriendsAndFamily/ManageGifts.tsx b/src/pages/FriendsAndFamily/ManageGifts.tsx
index 361a5a3c91..d4d1a95492 100644
--- a/src/pages/FriendsAndFamily/ManageGifts.tsx
+++ b/src/pages/FriendsAndFamily/ManageGifts.tsx
@@ -330,7 +330,7 @@ const ManageGifts = ( props ) => {
/>
} */}
{ active === GiftStatus.CREATED &&
- navigation.navigate( 'CreateGift', {
setActiveTab: buttonPress
} )}
diff --git a/src/pages/Gift/GiftBoxCmponent.tsx b/src/pages/Gift/GiftBoxCmponent.tsx
index 7408db5103..5812167c74 100644
--- a/src/pages/Gift/GiftBoxCmponent.tsx
+++ b/src/pages/Gift/GiftBoxCmponent.tsx
@@ -13,7 +13,7 @@ const {height} = Dimensions.get('window');
const GiftBoxComponent = ( props ) => {
return (
-
+
{/* */}
- {
@@ -744,7 +744,7 @@ class GiftScreen extends React.Component<
} )}}
image={}
/>
- this.props.navigation.navigate( 'ManageGifts', {
@@ -752,7 +752,7 @@ class GiftScreen extends React.Component<
} )}
image={}
/>
- = ( {
const lnAccount = useActiveAccountShells().filter( account => account.primarySubAccount.type === AccountType.LIGHTNING_ACCOUNT )
return (
-
diff --git a/src/pages/Home/HomeBuyCard.tsx b/src/pages/Home/HomeBuyCard.tsx
index f547617605..a3eb167383 100644
--- a/src/pages/Home/HomeBuyCard.tsx
+++ b/src/pages/Home/HomeBuyCard.tsx
@@ -156,7 +156,7 @@ const HomeBuyCard = ( {
// },
// elevation: 15
}}>
- = ( { navigation, }: Props ) => {
Import From Gallery
*/}
-
)
}
- {
diff --git a/src/pages/MoreOptions/MoreOptionsContainerScreen.tsx b/src/pages/MoreOptions/MoreOptionsContainerScreen.tsx
index d521898011..5b55d783e8 100644
--- a/src/pages/MoreOptions/MoreOptionsContainerScreen.tsx
+++ b/src/pages/MoreOptions/MoreOptionsContainerScreen.tsx
@@ -448,6 +448,7 @@ const MoreOptionsContainerScreen: React.FC = ( { navigation }: Props ) =>
// )}
renderItem={( { item: menuOption }: { item: MenuOption } ) => {
return handleOptionSelection( menuOption )}
style={[ styles.addModalView,
( ( levelData[ 0 ].keeper1.status == 'notSetup' ||
@@ -516,7 +517,7 @@ const MoreOptionsContainerScreen: React.FC = ( { navigation }: Props ) =>
}}
/>
- {
Linking.openURL( 'https://bitcointribe.app/faq/' )
.then( ( _data ) => { } )
@@ -548,7 +549,7 @@ const MoreOptionsContainerScreen: React.FC = ( { navigation }: Props ) =>
}}
/>
- {
Linking.openURL( 'https://t.me/bitcoinTribe_' )
.then( ( _data ) => { } )
diff --git a/src/pages/MoreOptions/NodeSettings/PersonalNodeConnectionForm.tsx b/src/pages/MoreOptions/NodeSettings/PersonalNodeConnectionForm.tsx
index 668f8103b2..4e51c31d11 100644
--- a/src/pages/MoreOptions/NodeSettings/PersonalNodeConnectionForm.tsx
+++ b/src/pages/MoreOptions/NodeSettings/PersonalNodeConnectionForm.tsx
@@ -92,7 +92,7 @@ const PersonalNodeConnectionForm: React.FC = ( { params, onSubmit, onClos
}}>
{strings.SetupPersonal}
-
+
= ( { params, onSubmit, onClos
= ( { params, onSubmit, onClos
-
+
= ( {
}}>
{strings.PersonalNodeDetails}
-
+
= ( {
= ( { navigation, }: Props
{menuOptions.map( ( menuOption, index ) => {
return (
- handleOptionSelection( menuOption )}
style={styles.selectedContactsView}
key={index}
diff --git a/src/pages/ReLogin.tsx b/src/pages/ReLogin.tsx
index 7475d95101..bd680fea16 100755
--- a/src/pages/ReLogin.tsx
+++ b/src/pages/ReLogin.tsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect } from 'react'
+import React, { useState, useEffect } from "react";
import {
StyleSheet,
Text,
@@ -6,83 +6,89 @@ import {
SafeAreaView,
TouchableOpacity,
StatusBar,
-} from 'react-native'
-import Ionicons from 'react-native-vector-icons/Ionicons'
-import Colors from '../common/Colors'
-import Fonts from '../common/Fonts'
+} from "react-native";
+import Ionicons from "react-native-vector-icons/Ionicons";
+import Colors from "../common/Colors";
+import Fonts from "../common/Fonts";
import {
widthPercentageToDP as wp,
heightPercentageToDP as hp,
-} from 'react-native-responsive-screen'
-import { RFValue } from 'react-native-responsive-fontsize'
-import FontAwesome from 'react-native-vector-icons/FontAwesome'
-import { useDispatch, useSelector } from 'react-redux'
-import { credsAuth, switchReLogin } from '../store/actions/setupAndAuth'
+} from "react-native-responsive-screen";
+import { RFValue } from "react-native-responsive-fontsize";
+import FontAwesome from "react-native-vector-icons/FontAwesome";
+import { useDispatch, useSelector } from "react-redux";
+import { credsAuth, switchReLogin } from "../store/actions/setupAndAuth";
-export default function Login( props ) {
- const [ passcode, setPasscode ] = useState( '' )
- const [ passcodeFlag, setPasscodeFlag ] = useState( true )
- const [ checkAuth, setCheckAuth ] = useState( false )
+export default function Login(props) {
+ const [passcode, setPasscode] = useState("");
+ const [passcodeFlag, setPasscodeFlag] = useState(true);
+ const [checkAuth, setCheckAuth] = useState(false);
- function onPressNumber( text ) {
- let tmpPasscode = passcode
- if ( passcode.length < 4 ) {
- if ( text != 'x' ) {
- tmpPasscode += text
- setPasscode( tmpPasscode )
+ function onPressNumber(text) {
+ let tmpPasscode = passcode;
+ if (passcode.length < 4) {
+ if (text != "x") {
+ tmpPasscode += text;
+ setPasscode(tmpPasscode);
}
}
- if ( passcode && text == 'x' ) {
- setPasscode( passcode.slice( 0, -1 ) )
- setCheckAuth( false )
+ if (passcode && text == "x") {
+ setPasscode(passcode.slice(0, -1));
+ setCheckAuth(false);
}
}
- const dispatch = useDispatch()
+ const dispatch = useDispatch();
const { reLogin, authenticationFailed } = useSelector(
- state => state.setupAndAuth,
- )
+ (state) => state.setupAndAuth
+ );
- if ( reLogin ) {
- if ( props.navigation.state.params.isPasscodeCheck ){
- if( props.navigation.state.params.onPasscodeVerify ) props.navigation.state.params.onPasscodeVerify( )
- props.navigation.goBack() }
- else props.navigation.pop( 2 )
- dispatch( switchReLogin( false, true ) )
+ if (reLogin) {
+ if (props.navigation.state.params.isPasscodeCheck) {
+ if (props.navigation.state.params.onPasscodeVerify)
+ props.navigation.state.params.onPasscodeVerify();
+ props.navigation.goBack();
+ } else props.navigation.pop(2);
+ dispatch(switchReLogin(false, true));
}
- useEffect( () => {
- if ( authenticationFailed ) {
- setCheckAuth( true )
- setPasscode( '' )
+ useEffect(() => {
+ if (authenticationFailed) {
+ setCheckAuth(true);
+ setPasscode("");
} else {
- setCheckAuth( false )
+ setCheckAuth(false);
}
- }, [ authenticationFailed ] )
+ }, [authenticationFailed]);
const hardwareBackHandler = () => {
- return true
- } // returning true disables the hardware back button
+ return true;
+ }; // returning true disables the hardware back button
return (
-
+
-
-
+
+
Welcome back
- Please enter your{' '}
+ Please enter your{" "}
passcode
-
+
= 1 ? (
) : passcode.length == 0 && passcodeFlag == true ? (
- {'|'}
+ {"|"}
) : (
- ''
+ ""
)}
@@ -135,19 +141,21 @@ export default function Login( props ) {
]}
>
{passcode.length >= 2 ? (
-
+
) : passcode.length == 1 ? (
- {'|'}
+ {"|"}
) : (
- ''
+ ""
)}
@@ -166,19 +174,21 @@ export default function Login( props ) {
]}
>
{passcode.length >= 3 ? (
-
+
) : passcode.length == 2 ? (
- {'|'}
+ {"|"}
) : (
- ''
+ ""
)}
@@ -197,27 +207,31 @@ export default function Login( props ) {
]}
>
{passcode.length >= 4 ? (
-
+
) : passcode.length == 3 ? (
- {'|'}
+ {"|"}
) : (
- ''
+ ""
)}
{checkAuth ? (
-
+
Incorrect passcode, try again!
@@ -230,8 +244,8 @@ export default function Login( props ) {
{
- setCheckAuth( false )
- dispatch( credsAuth( passcode, true ) )
+ setCheckAuth(false);
+ dispatch(credsAuth(passcode, true));
}}
style={{
...styles.proceedButtonView,
@@ -245,39 +259,41 @@ export default function Login( props ) {
) : null}
-
+
onPressNumber( '1' )}
+ onPress={() => onPressNumber("1")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '1' )}
+ onPress={() => onPressNumber("1")}
>
1
onPressNumber( '2' )}
+ onPress={() => onPressNumber("2")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '2' )}
+ onPress={() => onPressNumber("2")}
>
2
onPressNumber( '3' )}
+ onPress={() => onPressNumber("3")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '3' )}
+ onPress={() => onPressNumber("3")}
>
3
@@ -285,34 +301,34 @@ export default function Login( props ) {
onPressNumber( '4' )}
+ onPress={() => onPressNumber("4")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '4' )}
+ onPress={() => onPressNumber("4")}
>
4
onPressNumber( '5' )}
+ onPress={() => onPressNumber("5")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '5' )}
+ onPress={() => onPressNumber("5")}
>
5
onPressNumber( '6' )}
+ onPress={() => onPressNumber("6")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '6' )}
+ onPress={() => onPressNumber("6")}
>
6
@@ -320,34 +336,34 @@ export default function Login( props ) {
onPressNumber( '7' )}
+ onPress={() => onPressNumber("7")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '7' )}
+ onPress={() => onPressNumber("7")}
>
7
onPressNumber( '8' )}
+ onPress={() => onPressNumber("8")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '8' )}
+ onPress={() => onPressNumber("8")}
>
8
onPressNumber( '9' )}
+ onPress={() => onPressNumber("9")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '9' )}
+ onPress={() => onPressNumber("9")}
>
9
@@ -355,28 +371,31 @@ export default function Login( props ) {
-
+
onPressNumber( '0' )}
+ onPress={() => onPressNumber("0")}
style={styles.keyPadElementTouchable}
>
onPressNumber( '0' )}
+ onPress={() => onPressNumber("0")}
>
0
onPressNumber( 'x' )}
+ onPress={() => onPressNumber("x")}
style={styles.keyPadElementTouchable}
>
onPressNumber( 'x' )}
+ onPress={() => onPressNumber("x")}
>
@@ -385,118 +404,120 @@ export default function Login( props ) {
- )
+ );
}
-const styles = StyleSheet.create( {
+const styles = StyleSheet.create({
textBoxStyles: {
borderWidth: 0.5,
- height: wp( '13%' ),
- width: wp( '13%' ),
+ height: wp("13%"),
+ width: wp("13%"),
borderRadius: 7,
marginLeft: 20,
borderColor: Colors.borderColor,
- alignItems: 'center',
- justifyContent: 'center',
+ alignItems: "center",
+ justifyContent: "center",
backgroundColor: Colors.white,
},
textBoxActive: {
- height: wp( '13%' ),
- width: wp( '13%' ),
+ height: wp("13%"),
+ width: wp("13%"),
borderRadius: 7,
marginLeft: 20,
elevation: 10,
shadowColor: Colors.borderColor,
shadowOpacity: 1,
shadowOffset: {
- width: 0, height: 3
+ width: 0,
+ height: 3,
},
- alignItems: 'center',
- justifyContent: 'center',
+ alignItems: "center",
+ justifyContent: "center",
backgroundColor: Colors.white,
},
textStyles: {
color: Colors.black,
- fontSize: RFValue( 13 ),
- textAlign: 'center',
+ fontSize: RFValue(13),
+ textAlign: "center",
lineHeight: 18,
},
textFocused: {
color: Colors.black,
- fontSize: RFValue( 13 ),
- textAlign: 'center',
+ fontSize: RFValue(13),
+ textAlign: "center",
lineHeight: 18,
},
keyPadRow: {
- flexDirection: 'row',
- height: hp( '8%' ),
+ flexDirection: "row",
+ height: hp("8%"),
},
keyPadElementTouchable: {
flex: 1,
- height: hp( '8%' ),
- fontSize: RFValue( 18 ),
- justifyContent: 'center',
- alignItems: 'center',
+ height: hp("8%"),
+ fontSize: RFValue(18),
+ justifyContent: "center",
+ alignItems: "center",
},
keyPadElementText: {
color: Colors.blue,
- fontSize: RFValue( 25 ),
+ fontSize: RFValue(25),
fontFamily: Fonts.Regular,
- fontStyle: 'normal',
+ fontStyle: "normal",
},
proceedButtonView: {
marginLeft: 20,
- marginTop: hp( '6%' ),
- height: wp( '13%' ),
- width: wp( '30%' ),
- justifyContent: 'center',
- alignItems: 'center',
+ marginTop: hp("6%"),
+ height: wp("13%"),
+ width: wp("30%"),
+ justifyContent: "center",
+ alignItems: "center",
borderRadius: 8,
elevation: 10,
shadowColor: Colors.shadowBlue,
shadowOpacity: 1,
shadowOffset: {
- width: 15, height: 15
+ width: 15,
+ height: 15,
},
},
proceedButtonText: {
color: Colors.white,
- fontSize: RFValue( 13 ),
+ fontSize: RFValue(13),
fontFamily: Fonts.Medium,
},
errorText: {
fontFamily: Fonts.MediumItalic,
color: Colors.red,
- fontSize: RFValue( 11 ),
- fontStyle: 'italic',
+ fontSize: RFValue(11),
+ fontStyle: "italic",
},
boldItalicText: {
fontFamily: Fonts.MediumItalic,
- fontWeight: 'bold',
- fontStyle: 'italic',
+ fontWeight: "bold",
+ fontStyle: "italic",
},
headerTitleText: {
color: Colors.blue,
- fontSize: RFValue( 25 ),
+ fontSize: RFValue(25),
marginLeft: 20,
- marginTop: hp( '10%' ),
+ marginTop: hp("10%"),
fontFamily: Fonts.Regular,
},
headerInfoText: {
color: Colors.textColorGrey,
- fontSize: RFValue( 12 ),
+ fontSize: RFValue(12),
marginLeft: 20,
fontFamily: Fonts.Regular,
},
passcodeTextInputText: {
color: Colors.blue,
- fontWeight: 'bold',
- fontSize: RFValue( 13 ),
+ fontWeight: "bold",
+ fontSize: RFValue(13),
},
passcodeTextInputView: {
- flexDirection: 'row',
- marginTop: hp( '4.5%' ),
- marginBottom: hp( '1.5%' ),
- width: 'auto'
+ flexDirection: "row",
+ marginTop: hp("4.5%"),
+ marginBottom: hp("1.5%"),
+ width: "auto",
},
-} )
+});
diff --git a/src/pages/WalletInitializationScreen.tsx b/src/pages/WalletInitializationScreen.tsx
index 5cc6c22132..f3c37e9489 100644
--- a/src/pages/WalletInitializationScreen.tsx
+++ b/src/pages/WalletInitializationScreen.tsx
@@ -59,7 +59,7 @@ const WalletInitializationScreen = props => {
}}
source={require( '../assets/images/icons/icon_newwallet.png' )}
/>
-
+
{
'Start with a new Tribe Wallet'
@@ -161,7 +161,7 @@ const WalletInitializationScreen = props => {
style={styles.iconImage}
source={require( '../assets/images/icons/seedwords.png' )}
/>
-
+
Using Backup Phrase
@@ -190,7 +190,8 @@ const WalletInitializationScreen = props => {
style={styles.iconImage}
source={require( '../assets/images/icons/icon_secrets.png' )}
/>
-
+
+
Using Recovery Keys
diff --git a/src/pages/lightningAccount/EnterNodeConfigScreen.tsx b/src/pages/lightningAccount/EnterNodeConfigScreen.tsx
index b3e66a3310..390a95b35f 100644
--- a/src/pages/lightningAccount/EnterNodeConfigScreen.tsx
+++ b/src/pages/lightningAccount/EnterNodeConfigScreen.tsx
@@ -906,7 +906,7 @@ render() {
{( implementation === 'lnd' ||
implementation === 'c-lightning-REST' ) && (
<>
-
@@ -923,7 +923,7 @@ render() {
/>
-
-
@@ -1013,7 +1013,7 @@ render() {
)} */}
- {
this.saveNodeConfiguration()
diff --git a/src/pages/lightningAccount/ScanNodeConfigScreen.tsx b/src/pages/lightningAccount/ScanNodeConfigScreen.tsx
index a01dbaf021..9921fc49fa 100644
--- a/src/pages/lightningAccount/ScanNodeConfigScreen.tsx
+++ b/src/pages/lightningAccount/ScanNodeConfigScreen.tsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect, useContext } from 'react'
+import React, { useState, useEffect, useContext } from 'react';
import {
View,
StyleSheet,
@@ -7,7 +7,7 @@ import {
Text,
StatusBar,
ScrollView,
-} from 'react-native'
+} from 'react-native';
import {
widthPercentageToDP as wp,
heightPercentageToDP as hp,
@@ -27,19 +27,19 @@ import LndConnectUtils from '../../utils/ln/LndConnectUtils'
import Toast from '../../components/Toast'
import Ionicons from 'react-native-vector-icons/Ionicons'
-const styles = StyleSheet.create( {
+const styles = StyleSheet.create({
viewContainer: {
flex: 1,
backgroundColor: Colors.LIGHT_BACKGROUND,
},
buttonText: {
color: Colors.white,
- fontSize: RFValue( 13 ),
+ fontSize: RFValue(13),
fontFamily: Fonts.Medium,
},
buttonView: {
- height: wp( '12%' ),
- paddingHorizontal: wp( 2 ),
+ height: wp('12%'),
+ paddingHorizontal: wp(2),
justifyContent: 'center',
alignItems: 'center',
borderRadius: 8,
@@ -49,8 +49,51 @@ const styles = StyleSheet.create( {
// width: 15, height: 15
// },
backgroundColor: Colors.blue,
- marginHorizontal: wp( 4 ),
- marginVertical: hp( '2%' ),
+ marginHorizontal: wp(4),
+ marginVertical: hp('2%'),
+ },
+ icArrow: {
+ marginLeft: wp( '3%' ),
+ marginRight: wp( '3%' ),
+ alignSelf: 'center',
+ },
+ textValue: {
+ fontFamily: Fonts.Regular,
+ fontSize: RFValue( 13 ),
+ color: Colors.THEAM_INFO_TEXT_COLOR,
+ marginLeft: wp( '3%' ),
+ },
+ textHelpUs: {
+ fontFamily: Fonts.SemiBold,
+ fontSize: RFValue( 12 ),
+ color: Colors.THEAM_TEXT_COLOR,
+ marginLeft: wp( '3%' ),
+ },
+ textHelpUsSub: {
+ fontFamily: Fonts.Regular,
+ fontSize: RFValue( 12 ),
+ color: Colors.THEAM_INFO_TEXT_COLOR,
+ marginLeft: wp( '3%' ),
+ marginTop: wp( '1%' ),
+ },
+ addModalView: {
+ backgroundColor: Colors.gray7,
+ paddingVertical: 25,
+ paddingHorizontal: widthPercentageToDP( 1 ),
+ flexDirection: 'row',
+ display: 'flex',
+ justifyContent: 'space-between',
+ marginTop: heightPercentageToDP( '5' ),
+ alignSelf: 'center',
+ borderRadius: widthPercentageToDP( '2' ),
+ marginBottom: heightPercentageToDP( '1.2' ),
+ shadowOpacity: 0.05,
+ // shadowColor: Colors.shadowColor,
+ shadowOffset: {
+ width: 10, height: 10
+ },
+ shadowRadius: 6,
+ elevation: 6,
},
icArrow: {
marginLeft: wp( '3%' ),
@@ -98,89 +141,95 @@ const styles = StyleSheet.create( {
} )
-export default function ScanNodeConfig( { navigation } ) {
- const { translations } = useContext( LocalizationContext )
- const strings = translations[ 'lightningAccount' ]
- const common = translations[ 'common' ]
- const [ knowMore, setKnowMore ] = useState( true )
+export default function ScanNodeConfig({ navigation }) {
+ const { translations } = useContext(LocalizationContext);
+ const strings = translations['lightningAccount'];
+ const common = translations['common'];
+ const [knowMore, setKnowMore] = useState(true);
- async function handleBarcodeRecognized( { data: scannedData }: { data: string } ) {
- if( scannedData.includes( 'config' ) ){
- const url = scannedData.split( 'config=' )[ 1 ]
- LndConnectUtils.procesBtcPayConfig( url ).then(
- res=> {
- console.log( res )
- const {
- uri,
- macaroon,
- chainType,
- port
- } = res.configurations[ 0 ]
- if ( uri && macaroon ) {
- navigation.navigate( 'EnterNodeConfig', {
+ async function handleBarcodeRecognized({
+ data: scannedData,
+ }: {
+ data: string;
+ }) {
+ if (scannedData.includes('config')) {
+ const url = scannedData.split('config=')[1];
+ LndConnectUtils.procesBtcPayConfig(url)
+ .then((res) => {
+ console.log(res);
+ const { uri, macaroon, chainType, port } = res.configurations[0];
+ if (uri && macaroon) {
+ navigation.navigate('EnterNodeConfig', {
node: {
- host: uri, port, macaroonHex: macaroon
+ host: uri,
+ port,
+ macaroonHex: macaroon,
},
- } )
+ });
} else {
- Toast( 'Error fetching config' )
+ Toast('Error fetching config');
}
- }
- ).catch( e=> {
- console.log( e )
- Toast( 'Error fetching config' )
-
- } )
+ })
+ .catch((e) => {
+ console.log(e);
+ Toast('Error fetching config');
+ });
} else {
- const {
- host,
- port,
- macaroonHex
- } = LndConnectUtils.processLndConnectUrl( scannedData )
- if( host && macaroonHex ) {
- navigation.navigate( 'EnterNodeConfig', {
+ const { host, port, macaroonHex } =
+ LndConnectUtils.processLndConnectUrl(scannedData);
+ if (host && macaroonHex) {
+ navigation.navigate('EnterNodeConfig', {
node: {
- host: host, port: port, macaroonHex: macaroonHex
+ host: host,
+ port: port,
+ macaroonHex: macaroonHex,
},
- } )
+ });
} else {
- Toast( 'Invalid QR' )
+ Toast('Invalid QR');
}
}
}
return (
-
-
-
+
+
{
- navigation.goBack()
+ navigation.goBack();
}}
>
-
+ keyboardShouldPersistTaps='handled'
+ >
{/* */}
{
- navigation.navigate( 'EnterNodeConfig' )
+ navigation.navigate('EnterNodeConfig');
}}
activeOpacity={0.6}
style={styles.addModalView
@@ -236,8 +285,6 @@ export default function ScanNodeConfig( { navigation } ) {
/>
-
-
- )
+ );
}
diff --git a/yarn.lock b/yarn.lock
index b4ec880063..55cd7d244e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1754,11 +1754,6 @@
hoist-non-react-statics "^3.3.2"
react-native-safe-area-view "^0.14.9"
-"@realm.io/common@^0.1.1":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@realm.io/common/-/common-0.1.1.tgz#2950846cbedd14bdfdc1175d7c3119c3469547b0"
- integrity sha512-sXc7Ndhh39O9bm7/e0eeAx8keDBO83yoG7WfH04o6PqwVaIwm4T1uT0bhTO6OizP6ojhugZlVSu9HzgUVRE1Ag==
-
"@redux-saga/core@^1.1.3":
version "1.1.3"
resolved "https://registry.yarnpkg.com/@redux-saga/core/-/core-1.1.3.tgz#3085097b57a4ea8db5528d58673f20ce0950f6a4"
@@ -2670,11 +2665,6 @@ async@^2.4.0:
dependencies:
lodash "^4.17.14"
-async@^3.2.3:
- version "3.2.3"
- resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9"
- integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==
-
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -2911,11 +2901,6 @@ base-x@^4.0.0:
resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a"
integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==
-base64-js@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
- integrity sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=
-
base64-js@^1.0.2, base64-js@^1.1.2, base64-js@^1.2.3, base64-js@^1.3.1, base64-js@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
@@ -3297,10 +3282,10 @@ bser@2.1.1:
dependencies:
node-int64 "^0.4.0"
-bson@4.4.1:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/bson/-/bson-4.4.1.tgz#682c3cb8b90b222414ce14ef8398154ba2cc21bc"
- integrity sha512-Uu4OCZa0jouQJCKOk1EmmyqtdWAP5HVLru4lQxTwzJzxT+sJ13lVpEZU/MATDxtHiekWMAL84oQY3Xn1LpJVSg==
+bson@^4.4.0:
+ version "4.7.2"
+ resolved "https://registry.yarnpkg.com/bson/-/bson-4.7.2.tgz#320f4ad0eaf5312dd9b45dc369cc48945e2a5f2e"
+ integrity sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==
dependencies:
buffer "^5.6.0"
@@ -3337,6 +3322,11 @@ buffer-from@^1.0.0:
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+buffer-reverse@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/buffer-reverse/-/buffer-reverse-1.0.1.tgz#49283c8efa6f901bc01fa3304d06027971ae2f60"
+ integrity sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==
+
buffer-xor@2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-2.0.2.tgz#34f7c64f04c777a1f8aac5e661273bb9dd320289"
@@ -3358,7 +3348,7 @@ buffer@^4.9.1:
ieee754 "^1.1.4"
isarray "^1.0.0"
-buffer@^5.0.0, buffer@^5.5.0, buffer@^5.6.0:
+buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
@@ -3548,15 +3538,6 @@ cjs-module-lexer@^0.6.0:
secp256k1 "4.0.3"
typescript "4.7.4"
-clang-format@^1.6.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/clang-format/-/clang-format-1.7.0.tgz#c06c63ec1ae2a2590d8eac2562daeb877ca30d44"
- integrity sha512-BNuK+rXAK/Fk0rOQ1DW6bpSQUAZz6tpbZHTQn6m4PsgEkE1SNr6AQ/hhFK/b4KJrl4zjcl68molP+rEaKSZRAQ==
- dependencies:
- async "^3.2.3"
- glob "^7.0.0"
- resolve "^1.1.6"
-
class-utils@^0.3.5:
version "0.3.6"
resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
@@ -3836,6 +3817,11 @@ constants-browserify@^1.0.0:
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
+constants@^0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/constants/-/constants-0.0.2.tgz#f973bcf3b69b6493b3b3645723124fbabce25094"
+ integrity sha512-K8aYHRLm9Q/b/Im6CQESZdkH7fblazlncmqPujXt9DP5bxKfi7vVNjRKXx70SnnwCkW6R86o3AcSnkXL7XLq4g==
+
convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
@@ -3917,7 +3903,15 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.3, create-hmac@^1.1.4,
safe-buffer "^5.0.1"
sha.js "^2.4.8"
-cross-fetch@^3.0.4:
+create-react-class@*:
+ version "15.7.0"
+ resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.7.0.tgz#7499d7ca2e69bb51d13faf59bd04f0c65a1d6c1e"
+ integrity sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==
+ dependencies:
+ loose-envify "^1.3.1"
+ object-assign "^4.1.1"
+
+cross-fetch@^3.0.4, cross-fetch@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==
@@ -4129,12 +4123,12 @@ decode-uri-component@^0.2.0:
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
-decompress-response@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"
- integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
+decompress-response@^4.2.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986"
+ integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==
dependencies:
- mimic-response "^3.1.0"
+ mimic-response "^2.0.0"
deep-equal@^1.0.0:
version "1.1.1"
@@ -4237,6 +4231,16 @@ depd@2.0.0:
resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+deprecated-react-native-listview@0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/deprecated-react-native-listview/-/deprecated-react-native-listview-0.0.6.tgz#f9169dd703398a7792e5bcb8b851e741a8cb6980"
+ integrity sha512-QRuN0Dcv3Muu1oT8MhZgyfqm77bTAegVwqSRJKVwVVsm0xJE0TBfqdD45VXYLIS+yMXPJoeXdSqSdVQSjwlOpQ==
+ dependencies:
+ create-react-class "*"
+ fbjs "*"
+ invariant "*"
+ react-clone-referenced-element "*"
+
des.js@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
@@ -4250,10 +4254,10 @@ destroy@1.2.0:
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
-detect-libc@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd"
- integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==
+detect-libc@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+ integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==
detect-newline@^3.0.0:
version "3.1.0"
@@ -4403,6 +4407,10 @@ electron-to-chromium@^1.4.84:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.118.tgz#2d917c71712dac9652cc01af46c7d0bd51552974"
integrity sha512-maZIKjnYDvF7Fs35nvVcyr44UcKNwybr93Oba2n3HkKDFAtk0svERkLN/HyczJDS3Fo4wU9th9fUQd09ZLtj1w==
+"electrum-client@https://github.com/bithyve/rn-electrum-client":
+ version "2.0.0"
+ resolved "https://github.com/bithyve/rn-electrum-client#76c0ea35e1a50c47f3a7f818d529ebd100161496"
+
elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4:
version "6.5.4"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
@@ -4831,7 +4839,12 @@ eventemitter3@^3.0.0:
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
-events@^1.0.2, events@^1.1.1:
+eventemitter3@^4.0.7:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
+ integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
+
+events@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=
@@ -4936,7 +4949,7 @@ expo-constants@~9.1.1:
fbjs "1.0.0"
uuid "^3.3.2"
-expo-contacts@^8.6.0:
+expo-contacts@8.6.0:
version "8.6.0"
resolved "https://registry.yarnpkg.com/expo-contacts/-/expo-contacts-8.6.0.tgz#ec3e4379f02ac95212015ead4de8b44a01d61200"
integrity sha512-KbJb6R90bU2Cnp7o9zJ+SExtBbFJz9Jt4SmWsRPZh20WRX7XJOLBDT5x9FKX5CMw6nvHSVhpbCg51vxX9Td1hQ==
@@ -4960,10 +4973,10 @@ expo-permissions@~9.0.1:
resolved "https://registry.yarnpkg.com/expo-permissions/-/expo-permissions-9.0.1.tgz#dc10b58654bbe39bbbed5827369942b01b08055e"
integrity sha512-CosJgy8XQRN/OFG2JTQDcFxz3XTGi27coCMym/hVXWtQfk0z6PwdRG5IXHfLGuSckwIcgmirrwm2+Zc0X3MmNg==
-expo-secure-store@^9.2.0:
- version "9.3.0"
- resolved "https://registry.yarnpkg.com/expo-secure-store/-/expo-secure-store-9.3.0.tgz#b716d5d115cc50a34037d1afef84fe4b8ea0745c"
- integrity sha512-dNhKcoUUn+1kmEfFVxSU7h+YsqODqlExZQJcQgxgeiuCeeDvJWkE10t3jjrO6aNfrdM5i/X2l3oh401EDslWsQ==
+expo-secure-store@9.2.0:
+ version "9.2.0"
+ resolved "https://registry.yarnpkg.com/expo-secure-store/-/expo-secure-store-9.2.0.tgz#5c7072058f9d0dd80dd9f17732a8512a2a30c52c"
+ integrity sha512-CtoMeuw/BzmLZMxmw30YiAZY51bpuOsBQpt3CrvLqpT2Q4/M18Tc1H4qXzHER3GPfZeG2nEJQkEgHsHXrIhPXg==
extend-shallow@^1.1.2:
version "1.1.4"
@@ -5101,6 +5114,19 @@ fbjs-scripts@^1.1.0:
semver "^5.1.0"
through2 "^2.0.0"
+fbjs@*:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6"
+ integrity sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==
+ dependencies:
+ cross-fetch "^3.1.5"
+ fbjs-css-vars "^1.0.0"
+ loose-envify "^1.0.0"
+ object-assign "^4.1.0"
+ promise "^7.1.1"
+ setimmediate "^1.0.5"
+ ua-parser-js "^0.7.30"
+
fbjs@1.0.0, fbjs@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-1.0.0.tgz#52c215e0883a3c86af2a7a776ed51525ae8e0a5a"
@@ -5535,7 +5561,7 @@ glob@^6.0.1:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
version "7.2.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
@@ -5950,18 +5976,13 @@ internal-slot@^1.0.3:
has "^1.0.3"
side-channel "^1.0.4"
-invariant@^2.2.4:
+invariant@*, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
dependencies:
loose-envify "^1.0.0"
-ip-regex@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd"
- integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=
-
ip@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
@@ -7298,7 +7319,7 @@ logkitty@^0.7.1:
dayjs "^1.8.15"
yargs "^15.1.0"
-loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
+loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
@@ -7814,10 +7835,10 @@ mimic-fn@^2.1.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-mimic-response@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
- integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
+mimic-response@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43"
+ integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==
min-document@^2.19.0:
version "2.19.0"
@@ -8004,23 +8025,23 @@ nocache@^2.1.0:
resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f"
integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==
-node-abi@^3.3.0:
- version "3.15.0"
- resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.15.0.tgz#cd9ac8c58328129b49998cc6fa16aa5506152716"
- integrity sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==
+node-abi@^2.21.0:
+ version "2.30.1"
+ resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf"
+ integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==
dependencies:
- semver "^7.3.5"
-
-node-addon-api@4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.2.0.tgz#117cbb5a959dff0992e1c586ae0393573e4d2a87"
- integrity sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q==
+ semver "^5.4.1"
node-addon-api@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32"
integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==
+node-addon-api@^3.1.0:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
+ integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==
+
node-fetch@2.6.7, node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.6.1:
version "2.6.7"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
@@ -8689,22 +8710,22 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
-prebuild-install@^7.0.1:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.0.tgz#991b6ac16c81591ba40a6d5de93fb33673ac1370"
- integrity sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==
+prebuild-install@^6.1.1:
+ version "6.1.4"
+ resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f"
+ integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==
dependencies:
- detect-libc "^2.0.0"
+ detect-libc "^1.0.3"
expand-template "^2.0.3"
github-from-package "0.0.0"
minimist "^1.2.3"
mkdirp-classic "^0.5.3"
napi-build-utils "^1.0.1"
- node-abi "^3.3.0"
+ node-abi "^2.21.0"
npmlog "^4.0.1"
pump "^3.0.0"
rc "^1.2.7"
- simple-get "^4.0.0"
+ simple-get "^3.0.3"
tar-fs "^2.0.0"
tunnel-agent "^0.6.0"
@@ -8753,7 +8774,7 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-process@^0.11.10, process@^0.11.9, process@~0.11.0:
+process@^0.11.10, process@~0.11.0:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
@@ -8951,6 +8972,11 @@ react-addons-shallow-compare@15.6.2:
fbjs "^0.8.4"
object-assign "^4.1.0"
+react-clone-referenced-element@*:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/react-clone-referenced-element/-/react-clone-referenced-element-1.1.1.tgz#8d76727dc0459788e461741e804a512d20757381"
+ integrity sha512-LZBPvQV8W0B5dFzXFu+D3Tpil8YHS8tO00iFsfXcTLdtpuH7XyvaHqHcoz4hd4uNPQCZ30fceh+s7mLznzMXvg==
+
react-deep-force-update@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.1.2.tgz#3d2ae45c2c9040cbb1772be52f8ea1ade6ca2ee1"
@@ -9175,10 +9201,10 @@ react-native-os@^1.2.6:
resolved "https://registry.yarnpkg.com/react-native-os/-/react-native-os-1.2.6.tgz#1bb16d78ccad1143972183a04f443cf1af9fbefa"
integrity sha512-OlT+xQAcvkcnf7imgXiu+myMkqDt4xw2bP5SlVo19hEn5XHBkPMLX7dk3sSGxxncH/ToMDsf1KLyrPabNVtadA==
-react-native-pager-view@^6.0.0-rc.1:
- version "6.0.0-rc.2"
- resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.0.0-rc.2.tgz#8a10b5fb57fbdab82a7684238ea349a2410304b2"
- integrity sha512-osWnYxGaTaKbH9+wxGULt8Q9c5h3AVo+njTEqf2jmxqaVpWzlaIsxU1MWF7Tbk1BN8RiC11szMtOQ0Jlx8Hcag==
+react-native-pager-view@6.0.0-rc.1:
+ version "6.0.0-rc.1"
+ resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.0.0-rc.1.tgz#d36cf5cbbc5d3305099e5bb57bcf7e5680d01f4f"
+ integrity sha512-6YF/d2Q5LAgwv33ab7sEgyt06sl5a66C+aO59/eCfXOyRs1FKbBDK76x1TJJpRnuBax2YKDekd23UgSSQ6pUmw==
react-native-paper@^4.8.1:
version "4.12.0"
@@ -9302,10 +9328,10 @@ react-native-shadow-2@^6.0.3:
dependencies:
polished "^4.1.4"
-react-native-share@^3.7.0:
- version "3.8.5"
- resolved "https://registry.yarnpkg.com/react-native-share/-/react-native-share-3.8.5.tgz#e74ed39401b9fceef700435cef7c28bc37c7e267"
- integrity sha512-GjMI2NwUvi8zC7JHWk6NIcg/gFJmK/+cAQ8VStvfy4/kOiXYE5YnpPjvKs/K1Aun0HqYi2vjvZruL5ouDEWxmg==
+react-native-share@^8.0.1:
+ version "8.2.1"
+ resolved "https://registry.yarnpkg.com/react-native-share/-/react-native-share-8.2.1.tgz#f9933852de3ddd0f474ab63448e06c22cfecc9d4"
+ integrity sha512-dUIgrcdg4nOHrbKN1w+hs17RZ+51NeXd62CEezPAd4tEyj2Ki1qeAxWnJe8ZPRwvB5/6ml7YUR/2PJApxGHCAQ==
react-native-size-matters@^0.3.1:
version "0.3.1"
@@ -9350,17 +9376,13 @@ react-native-tab-view@^2.15.2:
resolved "https://registry.yarnpkg.com/react-native-tab-view/-/react-native-tab-view-2.16.0.tgz#cae72c7084394bd328fac5fefb86cd966df37a86"
integrity sha512-ac2DmT7+l13wzIFqtbfXn4wwfgtPoKzWjjZyrK1t+T8sdemuUvD4zIt+UImg03fu3s3VD8Wh/fBrIdcqQyZJWg==
-react-native-tcp@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/react-native-tcp/-/react-native-tcp-4.0.0.tgz#142f519798cc41cc3bb39ad45e2970a8643ef461"
- integrity sha512-68lSq2qns6P33yH7vYuiU5rV7xEiNuA2GYIStFlMvF/uEKDHL53MDgQLC2alKEU9JAHfmB8uUmcu3QQSGkaoig==
+react-native-tcp-socket@^5.6.2:
+ version "5.6.2"
+ resolved "https://registry.yarnpkg.com/react-native-tcp-socket/-/react-native-tcp-socket-5.6.2.tgz#8f09c13f73f6592a34cee5f441acc7a0aefbdf0a"
+ integrity sha512-doijFOAJd9p8KmduhfbZaPfqRVd3CZuTLAimJx0yxIqFWy/EDPGHeFVrOEOqRZ3lWBVDcssiCIQJhV0baKu5Pg==
dependencies:
- base64-js "0.0.8"
- buffer "^5.0.0"
- events "^1.0.2"
- ip-regex "^1.0.3"
- process "^0.11.9"
- util "^0.10.3"
+ buffer "^5.4.3"
+ eventemitter3 "^4.0.7"
react-native-udp@^4.1.5:
version "4.1.5"
@@ -9370,7 +9392,7 @@ react-native-udp@^4.1.5:
buffer "^5.6.0"
events "^3.1.0"
-react-native-unimodules@^0.10.1:
+react-native-unimodules@0.10.1:
version "0.10.1"
resolved "https://registry.yarnpkg.com/react-native-unimodules/-/react-native-unimodules-0.10.1.tgz#05a5ef248e88589528e7ef925137a345dde96ca4"
integrity sha512-U/GexLJWwDOXhsvSSz197gPVRoNVK4tY1cjvZC+748Q4mvc9v4ztB7niKaoaEbNdTjB/pE2NYlZW4013d1wQNw==
@@ -9599,7 +9621,7 @@ readable-stream@~1.0.26, readable-stream@~1.0.26-4:
isarray "0.0.1"
string_decoder "~0.10.x"
-realm-network-transport@^0.7.2:
+realm-network-transport@^0.7.0:
version "0.7.2"
resolved "https://registry.yarnpkg.com/realm-network-transport/-/realm-network-transport-0.7.2.tgz#382b965bf97a4132e0f8770f864d4a20d976be35"
integrity sha512-/5/YtZ5+ZIHIPgVFL6fRyx0/FRhmMaaF7L/h+iU8VKWGzesiBusSaeInosrM6v8MQvsW3W9ApBCeUwNW6m+8sg==
@@ -9607,27 +9629,26 @@ realm-network-transport@^0.7.2:
abort-controller "^3.0.0"
node-fetch "^2.6.0"
-realm@^10.4.2:
- version "10.16.0"
- resolved "https://registry.yarnpkg.com/realm/-/realm-10.16.0.tgz#1d33d6513e7a84e699a25095421440d83161b73c"
- integrity sha512-6kS7JKs0xrFmimmiPxOhi/QGyXQg91K3I+eXIVNQYdmrcmAY5na6S1f1/MVAwd+NzA0ALl3mgGr5uCPvpiWasA==
+realm@10.5.0:
+ version "10.5.0"
+ resolved "https://registry.yarnpkg.com/realm/-/realm-10.5.0.tgz#1fec9f83a893ad6a2e6133c818619ef4c44ceb13"
+ integrity sha512-UBGzl0qJK+H84QnVGXR4hi60suCPN5syK2dAFLLOso/WiDo+RJQHLlZlr58J1kTup2oU7TP1gTpgWtWiywpZCQ==
dependencies:
- "@realm.io/common" "^0.1.1"
bindings "^1.5.0"
- bson "4.4.1"
- clang-format "^1.6.0"
+ bson "^4.4.0"
command-line-args "^5.1.1"
deepmerge "2.1.0"
+ deprecated-react-native-listview "0.0.6"
fs-extra "^4.0.3"
https-proxy-agent "^2.2.4"
ini "^1.3.7"
- node-addon-api "4.2.0"
+ node-addon-api "^3.1.0"
node-fetch "^2.6.1"
node-machine-id "^1.1.10"
- prebuild-install "^7.0.1"
+ prebuild-install "^6.1.1"
progress "^2.0.3"
prop-types "^15.6.2"
- realm-network-transport "^0.7.2"
+ realm-network-transport "^0.7.0"
request "^2.88.0"
stream-counter "^1.0.0"
sync-request "^3.0.1"
@@ -9855,7 +9876,7 @@ resolve-url@^0.2.1:
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.4.0, resolve@^1.5.0:
+resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.4.0, resolve@^1.5.0:
version "1.22.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
@@ -10061,7 +10082,7 @@ secrets.js-grempe@^2.0.0:
resolved "https://registry.yarnpkg.com/secrets.js-grempe/-/secrets.js-grempe-2.0.0.tgz#65b32bf6bfe4f40e8ed0e44dc74f469e293a4ab8"
integrity sha512-4xkOIaDAg998dTFXZUJTOoVbdLHfB818SMeLJ69ABccgGEKokxsoRFupAFfAImloUSKv4QUGNMgKVbKMf6z0Ug==
-"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.1.0, semver@^5.5.0, semver@^5.6.0:
+"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -10251,12 +10272,12 @@ simple-concat@^1.0.0:
resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
-simple-get@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543"
- integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==
+simple-get@^3.0.3:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55"
+ integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==
dependencies:
- decompress-response "^6.0.0"
+ decompress-response "^4.2.0"
once "^1.3.1"
simple-concat "^1.0.0"
@@ -11384,7 +11405,7 @@ util@0.10.3:
dependencies:
inherits "2.0.1"
-util@^0.10.3, util@^0.10.4:
+util@^0.10.4:
version "0.10.4"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==