From ddb65b7dbd464cce5992eb3135d40d2cab53b88a Mon Sep 17 00:00:00 2001 From: Omar Basem Date: Mon, 10 Apr 2023 21:44:19 +0400 Subject: [PATCH] updates --- ios/Podfile.lock | 14 +- ios/StatusIm.xcodeproj/project.pbxproj | 1315 ++++++++++++----- .../bottom_sheet_composer/actions/style.cljs | 11 + .../bottom_sheet_composer/actions/view.cljs | 133 ++ .../bottom_sheet_composer/constants.cljs | 2 +- .../bottom_sheet_composer/keyboard.cljs | 72 + .../messages/bottom_sheet_composer/style.cljs | 8 - .../bottom_sheet_composer/sub_view.cljs | 35 + .../messages/bottom_sheet_composer/test.cljs | 2 - .../messages/bottom_sheet_composer/utils.cljs | 56 + .../messages/bottom_sheet_composer/view.cljs | 328 +--- 11 files changed, 1263 insertions(+), 713 deletions(-) create mode 100644 src/status_im2/contexts/chat/messages/bottom_sheet_composer/actions/style.cljs create mode 100644 src/status_im2/contexts/chat/messages/bottom_sheet_composer/actions/view.cljs create mode 100644 src/status_im2/contexts/chat/messages/bottom_sheet_composer/keyboard.cljs create mode 100644 src/status_im2/contexts/chat/messages/bottom_sheet_composer/sub_view.cljs delete mode 100644 src/status_im2/contexts/chat/messages/bottom_sheet_composer/test.cljs create mode 100644 src/status_im2/contexts/chat/messages/bottom_sheet_composer/utils.cljs diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 5d63e35704..713f6ab1f7 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -234,7 +234,7 @@ PODS: - React - react-native-blob-util (0.13.18): - React-Core - - react-native-blur (4.3.0): + - react-native-blur (4.3.2): - React-Core - react-native-camera-kit (8.0.4): - React @@ -695,6 +695,7 @@ SPEC CHECKSUMS: Folly: b73c3869541e86821df3c387eb0af5f65addfab4 <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD glog: 36ce0530c6d2c3a5a4326885ef4069564887a1db >>>>>>> 1ae28d67c (updates) @@ -707,6 +708,9 @@ SPEC CHECKSUMS: ======= glog: 6934faae5afbec23475648c8aeb6047ce973af65 >>>>>>> d31ec1795 (updates) +======= + glog: 36ce0530c6d2c3a5a4326885ef4069564887a1db +>>>>>>> 12ff0b995 (updates) HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352 Keycard: ac6df4d91525c3c82635ac24d4ddd9a80aca5fc8 libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef @@ -726,7 +730,7 @@ SPEC CHECKSUMS: React-logger: 85f4ef06b9723714b2dfa5b0e5502b673b271b58 react-native-background-timer: 1f7d560647b40e6a60b01c452ba29c54bf581fc4 react-native-blob-util: 600972b1782380a5a7d5db61a3817ea32349dae9 - react-native-blur: 50c9feabacbc5f49b61337ebc32192c6be7ec3c3 + react-native-blur: 4db8c7556566df4e8714c1af5762a4ebc99175d5 react-native-camera-kit: 498a6d111a904834e0824e9073cfadef7303235f react-native-cameraroll: 88f4e62d9ecd0e1f253abe4f685474f2ea14bfa2 react-native-config: 5330c8258265c1e5fdb8c009d2cabd6badd96727 @@ -785,6 +789,7 @@ SPEC CHECKSUMS: <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD PODFILE CHECKSUM: c29de3b14e3275299c51aa95520622f09d084bcb ======= PODFILE CHECKSUM: a8a81808e948d1103fdd28ef7fe16d5f045fef62 @@ -798,5 +803,8 @@ PODFILE CHECKSUM: a8a81808e948d1103fdd28ef7fe16d5f045fef62 ======= PODFILE CHECKSUM: dd4d6510a5580d20adac6c8a8dad97a0bc7d6508 >>>>>>> d31ec1795 (updates) +======= +PODFILE CHECKSUM: a8a81808e948d1103fdd28ef7fe16d5f045fef62 +>>>>>>> 12ff0b995 (updates) -COCOAPODS: 1.12.0 +COCOAPODS: 1.11.3 diff --git a/ios/StatusIm.xcodeproj/project.pbxproj b/ios/StatusIm.xcodeproj/project.pbxproj index 9cf4f27bbc..656da54dbf 100644 --- a/ios/StatusIm.xcodeproj/project.pbxproj +++ b/ios/StatusIm.xcodeproj/project.pbxproj @@ -1,13 +1,14 @@ // !$*UTF8*$! { - archiveVersion = 1; - classes = { - }; - objectVersion = 52; - objects = { + archiveVersion = 1; + classes = { + }; + objectVersion = 52; + objects = { /* Begin PBXBuildFile section */ <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD 00E356F31AD99517003FC87E /* StatusImTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* StatusImTests.m */; }; 09B7B3FF4CFA16C028BA0B05 /* libPods-Status-StatusIm-StatusImTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EC21589D612F7787EA45C863 /* libPods-Status-StatusIm-StatusImTests.a */; }; @@ -76,6 +77,8 @@ D99C50E5E18942A39C8DDF61 /* Inter-BoldItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = B321D25F4493470980039457 /* Inter-BoldItalic.otf */; }; <<<<<<< HEAD ======= +======= +>>>>>>> 12ff0b995 (updates) 00E356F31AD99517003FC87E /* StatusImTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* StatusImTests.m */; }; 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; @@ -124,56 +127,60 @@ D99C50E5E18942A39C8DDF61 /* Inter-BoldItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = B321D25F4493470980039457 /* Inter-BoldItalic.otf */; }; E9C92E7783C7FB91C9616112 /* libPods-Status-StatusImPR.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 57CBBEA420F440D344DD99E5 /* libPods-Status-StatusImPR.a */; }; F51761A0F4D1FAE41A72435A /* libPods-Status-StatusIm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 928CC6D1D5BCCF9D3BC60D6A /* libPods-Status-StatusIm.a */; }; +<<<<<<< HEAD >>>>>>> 1ae28d67c (updates) ======= E9C92E7783C7FB91C9616112 /* libPods-Status-StatusImPR.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 57CBBEA420F440D344DD99E5 /* libPods-Status-StatusImPR.a */; }; F51761A0F4D1FAE41A72435A /* libPods-Status-StatusIm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 928CC6D1D5BCCF9D3BC60D6A /* libPods-Status-StatusIm.a */; }; >>>>>>> 082e83dd1 (updates) +======= +>>>>>>> 12ff0b995 (updates) /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 13B07F861A680F5B00A75B9A; - remoteInfo = StatusIm; - }; - 9EC013781E06FB1900155B5C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 9EC0135C1E06FB1900155B5C /* RCTWKWebView.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 0974579A1D2A440A000D9368; - remoteInfo = RCTWKWebView; - }; + 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 13B07F861A680F5B00A75B9A; + remoteInfo = StatusIm; + }; + 9EC013781E06FB1900155B5C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 9EC0135C1E06FB1900155B5C /* RCTWKWebView.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0974579A1D2A440A000D9368; + remoteInfo = RCTWKWebView; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 20B6B6891D92C42700CC5C6A /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 3AAD2AD624A3A60E0075D594 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; + 20B6B6891D92C42700CC5C6A /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 3AAD2AD624A3A60E0075D594 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= >>>>>>> 082e83dd1 (updates) 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; @@ -502,6 +509,8 @@ productType = "com.apple.product-type.application"; }; ======= +======= +>>>>>>> 12ff0b995 (updates) 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; 00E356EE1AD99517003FC87E /* StatusImTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StatusImTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -549,192 +558,195 @@ C6B1215047604CD59A4C74D6 /* Inter-MediumItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-MediumItalic.otf"; path = "../resources/fonts/Inter-MediumItalic.otf"; sourceTree = ""; }; CD4A2C27D6D5473184DC1F7E /* Inter-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Bold.otf"; path = "../resources/fonts/Inter-Bold.otf"; sourceTree = ""; }; CE4E31B21D8695250033ED64 /* Statusgo.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Statusgo.xcframework; path = "../modules/react-native-status/ios/RCTStatus/Statusgo.xcframework"; sourceTree = ""; }; +<<<<<<< HEAD ======= >>>>>>> 082e83dd1 (updates) +======= +>>>>>>> 12ff0b995 (updates) /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 00E356EB1AD99517003FC87E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - BFF6343F5A1F0F5FFFC8D020 /* libPods-Status-StatusIm-StatusImTests.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - B24FC7FF1DE7195F00D694FF /* MessageUI.framework in Frameworks */, - B24FC7FD1DE7195700D694FF /* Social.framework in Frameworks */, - CE4E31B31D8695250033ED64 /* Statusgo.xcframework in Frameworks */, - 25DC9C9DC25846BD8D084888 /* libc++.tbd in Frameworks */, - BA68A2377A20496EA737000D /* libz.tbd in Frameworks */, - F51761A0F4D1FAE41A72435A /* libPods-Status-StatusIm.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3AAD2ABF24A3A60E0075D594 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 3A8F8EAA24A4D31600BF206D /* GameKit.framework in Frameworks */, - 3AAD2AC024A3A60E0075D594 /* MessageUI.framework in Frameworks */, - 3AAD2AC124A3A60E0075D594 /* Social.framework in Frameworks */, - 3AAD2AC224A3A60E0075D594 /* Statusgo.xcframework in Frameworks */, - 3AAD2AC524A3A60E0075D594 /* libc++.tbd in Frameworks */, - 3AAD2AC624A3A60E0075D594 /* libz.tbd in Frameworks */, - E9C92E7783C7FB91C9616112 /* libPods-Status-StatusImPR.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 00E356EB1AD99517003FC87E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BFF6343F5A1F0F5FFFC8D020 /* libPods-Status-StatusIm-StatusImTests.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B24FC7FF1DE7195F00D694FF /* MessageUI.framework in Frameworks */, + B24FC7FD1DE7195700D694FF /* Social.framework in Frameworks */, + CE4E31B31D8695250033ED64 /* Statusgo.xcframework in Frameworks */, + 25DC9C9DC25846BD8D084888 /* libc++.tbd in Frameworks */, + BA68A2377A20496EA737000D /* libz.tbd in Frameworks */, + F51761A0F4D1FAE41A72435A /* libPods-Status-StatusIm.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3AAD2ABF24A3A60E0075D594 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3A8F8EAA24A4D31600BF206D /* GameKit.framework in Frameworks */, + 3AAD2AC024A3A60E0075D594 /* MessageUI.framework in Frameworks */, + 3AAD2AC124A3A60E0075D594 /* Social.framework in Frameworks */, + 3AAD2AC224A3A60E0075D594 /* Statusgo.xcframework in Frameworks */, + 3AAD2AC524A3A60E0075D594 /* libc++.tbd in Frameworks */, + 3AAD2AC624A3A60E0075D594 /* libz.tbd in Frameworks */, + E9C92E7783C7FB91C9616112 /* libPods-Status-StatusImPR.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 00E356EF1AD99517003FC87E /* StatusImTests */ = { - isa = PBXGroup; - children = ( - 00E356F21AD99517003FC87E /* StatusImTests.m */, - 00E356F01AD99517003FC87E /* Supporting Files */, - ); - path = StatusImTests; - sourceTree = ""; - }; - 00E356F01AD99517003FC87E /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 00E356F11AD99517003FC87E /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 13B07FAE1A68108700A75B9A /* StatusIm */ = { - isa = PBXGroup; - children = ( - C14C5F9229C0ADB5005C58A7 /* launch-icon.png */, - C14C5F9029C0AD9C005C58A7 /* launch-icon@2x.png */, - C14C5F8C29C0A149005C58A7 /* launch-icon@3x.png */, - 922C4CA61F4D5F8B0033C753 /* StatusIm.entitlements */, - B2F2D1BB1D9D531B00B7B453 /* Images.xcassets */, - 008F07F21AC5B25A0029DE68 /* main.jsbundle */, - 13B07FAF1A68108700A75B9A /* AppDelegate.h */, - 13B07FB01A68108700A75B9A /* AppDelegate.m */, - 13B07FB61A68108700A75B9A /* Info.plist */, - 13B07FB71A68108700A75B9A /* main.m */, - 3AB1C3AD245C043900098F67 /* StatusIm-Bridging-Header.h */, - 3A2626CE245C3F2200D5F94B /* Dummy.swift */, - ); - name = StatusIm; - sourceTree = ""; - }; - 1E7837547A9A40E18AD63CF3 /* Resources */ = { - isa = PBXGroup; - children = ( - 74B758FB20D7C00B003343C3 /* launch-image-universal.storyboard */, - CD4A2C27D6D5473184DC1F7E /* Inter-Bold.otf */, - B321D25F4493470980039457 /* Inter-BoldItalic.otf */, - B07176ACDAA1422E8F0A3D6B /* Inter-Italic.otf */, - B2A38FC3D3954DE7B2B171F8 /* Inter-Medium.otf */, - C6B1215047604CD59A4C74D6 /* Inter-MediumItalic.otf */, - 1426DF592BA248FC81D955CB /* Inter-Regular.otf */, - 693A62DB37BC4CD5A30E5C96 /* Inter-SemiBold.otf */, - A4F2BBE8D4DD4140A6CCAC39 /* Inter-SemiBoldItalic.otf */, - 9C76AF5A418D4D65A4CAD1D9 /* InterStatus-Regular.otf */, - 715D8131290BE850006F5C88 /* UbuntuMono-Regular.ttf */, - ); - name = Resources; - sourceTree = ""; - }; - 3AAD2AB624A3A5F10075D594 /* StatusImPR */ = { - isa = PBXGroup; - children = ( - 3A6406FB24A3ADF90046ED37 /* Info.plist */, - ); - path = StatusImPR; - sourceTree = ""; - }; - 832341AE1AAA6A7D00B99B32 /* Libraries */ = { - isa = PBXGroup; - children = ( - 9EC0135C1E06FB1900155B5C /* RCTWKWebView.xcodeproj */, - ); - name = Libraries; - sourceTree = ""; - }; - 83CBB9F61A601CBA00E9B192 = { - isa = PBXGroup; - children = ( - 65F6941825780A4F00A45E76 /* Bridge.swift */, - 3AAD2AB624A3A5F10075D594 /* StatusImPR */, - 13B07FAE1A68108700A75B9A /* StatusIm */, - 832341AE1AAA6A7D00B99B32 /* Libraries */, - 00E356EF1AD99517003FC87E /* StatusImTests */, - 83CBBA001A601CBA00E9B192 /* Products */, - A97BA941B2FB44B4B66EE6D3 /* Frameworks */, - 1E7837547A9A40E18AD63CF3 /* Resources */, - 65F6941725780A4E00A45E76 /* StatusImTests-Bridging-Header.h */, - D0D5C8D06825D33BA2D2121E /* Pods */, - ); - indentWidth = 2; - sourceTree = ""; - tabWidth = 2; - usesTabs = 0; - }; - 83CBBA001A601CBA00E9B192 /* Products */ = { - isa = PBXGroup; - children = ( - 13B07F961A680F5B00A75B9A /* StatusIm.app */, - 00E356EE1AD99517003FC87E /* StatusImTests.xctest */, - 3AAD2ADC24A3A60E0075D594 /* Status PR.app */, - ); - name = Products; - sourceTree = ""; - }; - 9EC0135D1E06FB1900155B5C /* Products */ = { - isa = PBXGroup; - children = ( - 9EC013791E06FB1900155B5C /* libRCTWKWebView.a */, - ); - name = Products; - sourceTree = ""; - }; - A97BA941B2FB44B4B66EE6D3 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 65F693BD2578002500A45E76 /* CoreNFC.framework */, - 65F693BF2578003600A45E76 /* CoreNFC.framework */, - 3A8F8EA924A4D31600BF206D /* GameKit.framework */, - 4C16DE0B1F89508700AA10DB /* JavaScriptCore.framework */, - B24FC7FE1DE7195F00D694FF /* MessageUI.framework */, - B24FC7FC1DE7195700D694FF /* Social.framework */, - CE4E31B21D8695250033ED64 /* Statusgo.xcframework */, - 8B9A886A2CB448B1ABA0EB62 /* libc++.tbd */, - 4E586E1B0E544F64AA9F5BD1 /* libz.tbd */, - 928CC6D1D5BCCF9D3BC60D6A /* libPods-Status-StatusIm.a */, - A4B974811E312E44D5BBE9EC /* libPods-Status-StatusIm-StatusImTests.a */, - 57CBBEA420F440D344DD99E5 /* libPods-Status-StatusImPR.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - D0D5C8D06825D33BA2D2121E /* Pods */ = { - isa = PBXGroup; - children = ( - 564309A78329EB657677709C /* Pods-Status-StatusIm.debug.xcconfig */, - 5F30F922E4B02AB10F6CB65E /* Pods-Status-StatusIm.release.xcconfig */, - 43341A7CBCE457435677CC51 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */, - 70ACC04C7CF0A6C6421A805D /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */, - 8D3CFDC9666FBD03D1AA059A /* Pods-Status-StatusImPR.debug.xcconfig */, - 8B3C115CD813729DE4735219 /* Pods-Status-StatusImPR.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; + 00E356EF1AD99517003FC87E /* StatusImTests */ = { + isa = PBXGroup; + children = ( + 00E356F21AD99517003FC87E /* StatusImTests.m */, + 00E356F01AD99517003FC87E /* Supporting Files */, + ); + path = StatusImTests; + sourceTree = ""; + }; + 00E356F01AD99517003FC87E /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 00E356F11AD99517003FC87E /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 13B07FAE1A68108700A75B9A /* StatusIm */ = { + isa = PBXGroup; + children = ( + 922C4CA61F4D5F8B0033C753 /* StatusIm.entitlements */, + B2F2D1BB1D9D531B00B7B453 /* Images.xcassets */, + 008F07F21AC5B25A0029DE68 /* main.jsbundle */, + 13B07FAF1A68108700A75B9A /* AppDelegate.h */, + 13B07FB01A68108700A75B9A /* AppDelegate.m */, + 13B07FB61A68108700A75B9A /* Info.plist */, + 13B07FB71A68108700A75B9A /* main.m */, + 3AB1C3AD245C043900098F67 /* StatusIm-Bridging-Header.h */, + 3A2626CE245C3F2200D5F94B /* Dummy.swift */, + ); + name = StatusIm; + sourceTree = ""; + }; + 1E7837547A9A40E18AD63CF3 /* Resources */ = { + isa = PBXGroup; + children = ( + 74B758FB20D7C00B003343C3 /* launch-image-universal.storyboard */, + CD4A2C27D6D5473184DC1F7E /* Inter-Bold.otf */, + B321D25F4493470980039457 /* Inter-BoldItalic.otf */, + B07176ACDAA1422E8F0A3D6B /* Inter-Italic.otf */, + B2A38FC3D3954DE7B2B171F8 /* Inter-Medium.otf */, + C6B1215047604CD59A4C74D6 /* Inter-MediumItalic.otf */, + 1426DF592BA248FC81D955CB /* Inter-Regular.otf */, + 693A62DB37BC4CD5A30E5C96 /* Inter-SemiBold.otf */, + A4F2BBE8D4DD4140A6CCAC39 /* Inter-SemiBoldItalic.otf */, + 9C76AF5A418D4D65A4CAD1D9 /* InterStatus-Regular.otf */, + 715D8131290BE850006F5C88 /* UbuntuMono-Regular.ttf */, + ); + name = Resources; + sourceTree = ""; + }; + 3AAD2AB624A3A5F10075D594 /* StatusImPR */ = { + isa = PBXGroup; + children = ( + 3A6406FB24A3ADF90046ED37 /* Info.plist */, + ); + path = StatusImPR; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + 9EC0135C1E06FB1900155B5C /* RCTWKWebView.xcodeproj */, + ); + name = Libraries; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 65F6941825780A4F00A45E76 /* Bridge.swift */, + 3AAD2AB624A3A5F10075D594 /* StatusImPR */, + 13B07FAE1A68108700A75B9A /* StatusIm */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 00E356EF1AD99517003FC87E /* StatusImTests */, + 83CBBA001A601CBA00E9B192 /* Products */, + A97BA941B2FB44B4B66EE6D3 /* Frameworks */, + 1E7837547A9A40E18AD63CF3 /* Resources */, + 65F6941725780A4E00A45E76 /* StatusImTests-Bridging-Header.h */, + D0D5C8D06825D33BA2D2121E /* Pods */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* StatusIm.app */, + 00E356EE1AD99517003FC87E /* StatusImTests.xctest */, + 3AAD2ADC24A3A60E0075D594 /* Status PR.app */, + ); + name = Products; + sourceTree = ""; + }; + 9EC0135D1E06FB1900155B5C /* Products */ = { + isa = PBXGroup; + children = ( + 9EC013791E06FB1900155B5C /* libRCTWKWebView.a */, + ); + name = Products; + sourceTree = ""; + }; + A97BA941B2FB44B4B66EE6D3 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 65F693BD2578002500A45E76 /* CoreNFC.framework */, + 65F693BF2578003600A45E76 /* CoreNFC.framework */, + 3A8F8EA924A4D31600BF206D /* GameKit.framework */, + 4C16DE0B1F89508700AA10DB /* JavaScriptCore.framework */, + B24FC7FE1DE7195F00D694FF /* MessageUI.framework */, + B24FC7FC1DE7195700D694FF /* Social.framework */, + CE4E31B21D8695250033ED64 /* Statusgo.xcframework */, + 8B9A886A2CB448B1ABA0EB62 /* libc++.tbd */, + 4E586E1B0E544F64AA9F5BD1 /* libz.tbd */, + 928CC6D1D5BCCF9D3BC60D6A /* libPods-Status-StatusIm.a */, + A4B974811E312E44D5BBE9EC /* libPods-Status-StatusIm-StatusImTests.a */, + 57CBBEA420F440D344DD99E5 /* libPods-Status-StatusImPR.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + D0D5C8D06825D33BA2D2121E /* Pods */ = { + isa = PBXGroup; + children = ( + 564309A78329EB657677709C /* Pods-Status-StatusIm.debug.xcconfig */, + 5F30F922E4B02AB10F6CB65E /* Pods-Status-StatusIm.release.xcconfig */, + 43341A7CBCE457435677CC51 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */, + 70ACC04C7CF0A6C6421A805D /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */, + 8D3CFDC9666FBD03D1AA059A /* Pods-Status-StatusImPR.debug.xcconfig */, + 8B3C115CD813729DE4735219 /* Pods-Status-StatusImPR.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> 12ff0b995 (updates) 00E356ED1AD99517003FC87E /* StatusImTests */ = { isa = PBXNativeTarget; buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "StatusImTests" */; @@ -799,6 +811,7 @@ productReference = 3AAD2ADC24A3A60E0075D594 /* Status PR.app */; productType = "com.apple.product-type.application"; }; +<<<<<<< HEAD >>>>>>> 1ae28d67c (updates) ======= 00E356ED1AD99517003FC87E /* StatusImTests */ = { @@ -866,139 +879,128 @@ productType = "com.apple.product-type.application"; }; >>>>>>> 082e83dd1 (updates) +======= +>>>>>>> 12ff0b995 (updates) /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 83CBB9F71A601CBA00E9B192 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1140; - ORGANIZATIONNAME = Status; - TargetAttributes = { - 00E356ED1AD99517003FC87E = { - CreatedOnToolsVersion = 6.2; - DevelopmentTeam = 8B5X2M6H2Y; - ProvisioningStyle = Manual; - TestTargetID = 13B07F861A680F5B00A75B9A; - }; - 13B07F861A680F5B00A75B9A = { - DevelopmentTeam = 8B5X2M6H2Y; - LastSwiftMigration = 1140; - ProvisioningStyle = Manual; - SystemCapabilities = { - com.apple.BackgroundModes = { - enabled = 1; - }; - com.apple.Keychain = { - enabled = 1; - }; - com.apple.Push = { - enabled = 1; - }; - com.apple.SafariKeychain = { - enabled = 1; - }; - }; - }; - 3AAD2AB924A3A60E0075D594 = { - DevelopmentTeam = 8B5X2M6H2Y; - ProvisioningStyle = Manual; - }; - }; - }; - buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "StatusIm" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 83CBB9F61A601CBA00E9B192; - productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 9EC0135D1E06FB1900155B5C /* Products */; - ProjectRef = 9EC0135C1E06FB1900155B5C /* RCTWKWebView.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 13B07F861A680F5B00A75B9A /* StatusIm */, - 00E356ED1AD99517003FC87E /* StatusImTests */, - 3AAD2AB924A3A60E0075D594 /* StatusImPR */, - ); - }; + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1140; + ORGANIZATIONNAME = Status; + TargetAttributes = { + 00E356ED1AD99517003FC87E = { + CreatedOnToolsVersion = 6.2; + TestTargetID = 13B07F861A680F5B00A75B9A; + }; + 13B07F861A680F5B00A75B9A = { + LastSwiftMigration = 1140; + SystemCapabilities = { + com.apple.BackgroundModes = { + enabled = 1; + }; + com.apple.Keychain = { + enabled = 1; + }; + com.apple.Push = { + enabled = 1; + }; + com.apple.SafariKeychain = { + enabled = 1; + }; + }; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "StatusIm" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 9EC0135D1E06FB1900155B5C /* Products */; + ProjectRef = 9EC0135C1E06FB1900155B5C /* RCTWKWebView.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* StatusIm */, + 00E356ED1AD99517003FC87E /* StatusImTests */, + 3AAD2AB924A3A60E0075D594 /* StatusImPR */, + ); + }; /* End PBXProject section */ /* Begin PBXReferenceProxy section */ - 9EC013791E06FB1900155B5C /* libRCTWKWebView.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTWKWebView.a; - remoteRef = 9EC013781E06FB1900155B5C /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; + 9EC013791E06FB1900155B5C /* libRCTWKWebView.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTWKWebView.a; + remoteRef = 9EC013781E06FB1900155B5C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; /* End PBXReferenceProxy section */ /* Begin PBXResourcesBuildPhase section */ - 00E356EC1AD99517003FC87E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8E1A680F5B00A75B9A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C14C5F9329C0ADB5005C58A7 /* launch-icon.png in Resources */, - 74B758FC20D7C00B003343C3 /* launch-image-universal.storyboard in Resources */, - 715D8132290BE850006F5C88 /* UbuntuMono-Regular.ttf in Resources */, - C14C5F9129C0AD9C005C58A7 /* launch-icon@2x.png in Resources */, - B2F2D1BC1D9D531B00B7B453 /* Images.xcassets in Resources */, - D84616FB563A48EBB1678699 /* Inter-Bold.otf in Resources */, - D99C50E5E18942A39C8DDF61 /* Inter-BoldItalic.otf in Resources */, - 3ABC7AF8245FF85900612C45 /* InterStatus-Regular.otf in Resources */, - 393D26E3080B443A998F4A2F /* Inter-Italic.otf in Resources */, - D1786306E0184916B11F4C37 /* Inter-Medium.otf in Resources */, - 57C854A7993C47A3B1AECD32 /* Inter-MediumItalic.otf in Resources */, - 70ADBB5ECF934DCF8A0E4919 /* Inter-Regular.otf in Resources */, - 3870E1E692E24133A80B07DE /* Inter-SemiBold.otf in Resources */, - 8391E8E0E93C41A98AAA6631 /* Inter-SemiBoldItalic.otf in Resources */, - C14C5F8D29C0A149005C58A7 /* launch-icon@3x.png in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3AAD2AC924A3A60E0075D594 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3AAD2ACA24A3A60E0075D594 /* launch-image-universal.storyboard in Resources */, - 715D8133290BE850006F5C88 /* UbuntuMono-Regular.ttf in Resources */, - 3AAD2ACB24A3A60E0075D594 /* Images.xcassets in Resources */, - 3AAD2ACC24A3A60E0075D594 /* Inter-Bold.otf in Resources */, - 3AAD2ACD24A3A60E0075D594 /* Inter-BoldItalic.otf in Resources */, - C1715FFA29C0BCE10088FA8B /* launch-icon@2x.png in Resources */, - 3AAD2ACE24A3A60E0075D594 /* InterStatus-Regular.otf in Resources */, - 3AAD2ACF24A3A60E0075D594 /* Inter-Italic.otf in Resources */, - 3AAD2AD024A3A60E0075D594 /* Inter-Medium.otf in Resources */, - 3AAD2AD124A3A60E0075D594 /* Inter-MediumItalic.otf in Resources */, - 3AAD2AD224A3A60E0075D594 /* Inter-Regular.otf in Resources */, - C1715FFC29C0BCE80088FA8B /* launch-icon.png in Resources */, - 3AAD2AD324A3A60E0075D594 /* Inter-SemiBold.otf in Resources */, - 3AAD2AD424A3A60E0075D594 /* Inter-SemiBoldItalic.otf in Resources */, - C1715FFB29C0BCE50088FA8B /* launch-icon@3x.png in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 00E356EC1AD99517003FC87E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74B758FC20D7C00B003343C3 /* launch-image-universal.storyboard in Resources */, + 715D8132290BE850006F5C88 /* UbuntuMono-Regular.ttf in Resources */, + B2F2D1BC1D9D531B00B7B453 /* Images.xcassets in Resources */, + D84616FB563A48EBB1678699 /* Inter-Bold.otf in Resources */, + D99C50E5E18942A39C8DDF61 /* Inter-BoldItalic.otf in Resources */, + 3ABC7AF8245FF85900612C45 /* InterStatus-Regular.otf in Resources */, + 393D26E3080B443A998F4A2F /* Inter-Italic.otf in Resources */, + D1786306E0184916B11F4C37 /* Inter-Medium.otf in Resources */, + 57C854A7993C47A3B1AECD32 /* Inter-MediumItalic.otf in Resources */, + 70ADBB5ECF934DCF8A0E4919 /* Inter-Regular.otf in Resources */, + 3870E1E692E24133A80B07DE /* Inter-SemiBold.otf in Resources */, + 8391E8E0E93C41A98AAA6631 /* Inter-SemiBoldItalic.otf in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3AAD2AC924A3A60E0075D594 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3AAD2ACA24A3A60E0075D594 /* launch-image-universal.storyboard in Resources */, + 715D8133290BE850006F5C88 /* UbuntuMono-Regular.ttf in Resources */, + 3AAD2ACB24A3A60E0075D594 /* Images.xcassets in Resources */, + 3AAD2ACC24A3A60E0075D594 /* Inter-Bold.otf in Resources */, + 3AAD2ACD24A3A60E0075D594 /* Inter-BoldItalic.otf in Resources */, + 3AAD2ACE24A3A60E0075D594 /* InterStatus-Regular.otf in Resources */, + 3AAD2ACF24A3A60E0075D594 /* Inter-Italic.otf in Resources */, + 3AAD2AD024A3A60E0075D594 /* Inter-Medium.otf in Resources */, + 3AAD2AD124A3A60E0075D594 /* Inter-MediumItalic.otf in Resources */, + 3AAD2AD224A3A60E0075D594 /* Inter-Regular.otf in Resources */, + 3AAD2AD324A3A60E0075D594 /* Inter-SemiBold.otf in Resources */, + 3AAD2AD424A3A60E0075D594 /* Inter-SemiBoldItalic.otf in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD ======= >>>>>>> 082e83dd1 (updates) 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { @@ -1266,6 +1268,8 @@ showEnvVarsInLog = 0; }; ======= +======= +>>>>>>> 12ff0b995 (updates) 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1454,6 +1458,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-resources.sh\"\n"; showEnvVarsInLog = 0; }; +<<<<<<< HEAD >>>>>>> 1ae28d67c (updates) ======= shellPath = "/usr/bin/env sh"; @@ -1461,51 +1466,54 @@ showEnvVarsInLog = 0; }; >>>>>>> 082e83dd1 (updates) +======= +>>>>>>> 12ff0b995 (updates) /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 00E356EA1AD99517003FC87E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 65F6941A25780A4F00A45E76 /* Bridge.swift in Sources */, - 00E356F31AD99517003FC87E /* StatusImTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F871A680F5B00A75B9A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 65F6941925780A4F00A45E76 /* Bridge.swift in Sources */, - 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, - 3A2626CF245C3F2200D5F94B /* Dummy.swift in Sources */, - 13B07FC11A68108700A75B9A /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3AAD2ABB24A3A60E0075D594 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 65F6941B25780A4F00A45E76 /* Bridge.swift in Sources */, - 3AAD2ABC24A3A60E0075D594 /* AppDelegate.m in Sources */, - 3AAD2ABD24A3A60E0075D594 /* Dummy.swift in Sources */, - 3AAD2ABE24A3A60E0075D594 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 00E356EA1AD99517003FC87E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 65F6941A25780A4F00A45E76 /* Bridge.swift in Sources */, + 00E356F31AD99517003FC87E /* StatusImTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 65F6941925780A4F00A45E76 /* Bridge.swift in Sources */, + 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, + 3A2626CF245C3F2200D5F94B /* Dummy.swift in Sources */, + 13B07FC11A68108700A75B9A /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3AAD2ABB24A3A60E0075D594 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 65F6941B25780A4F00A45E76 /* Bridge.swift in Sources */, + 3AAD2ABC24A3A60E0075D594 /* AppDelegate.m in Sources */, + 3AAD2ABD24A3A60E0075D594 /* Dummy.swift in Sources */, + 3AAD2ABE24A3A60E0075D594 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 13B07F861A680F5B00A75B9A /* StatusIm */; - targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; - }; + 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 13B07F861A680F5B00A75B9A /* StatusIm */; + targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ +<<<<<<< HEAD 00E356F61AD99517003FC87E /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 6D32AC40F159AF0551D2D2BF /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */; @@ -2006,46 +2014,541 @@ }; name = Release; }; +======= + 00E356F61AD99517003FC87E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 43341A7CBCE457435677CC51 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_ID_SUFFIX = .debug; + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 8B5X2M6H2Y; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = StatusImTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = im.status.ethereum; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "StatusImTests-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/StatusIm.app/StatusIm"; + }; + name = Debug; + }; + 00E356F71AD99517003FC87E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 70ACC04C7CF0A6C6421A805D /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_ID_SUFFIX = ""; + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = 8B5X2M6H2Y; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + INFOPLIST_FILE = StatusImTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = im.status.ethereum; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "StatusImTests-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/StatusIm.app/StatusIm"; + }; + name = Release; + }; + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 564309A78329EB657677709C /* Pods-Status-StatusIm.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon$(BUNDLE_ID_SUFFIX)"; + BUNDLE_ID_SUFFIX = .debug; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = StatusIm/StatusIm.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CUSTOM_PRODUCT_NAME = "Status Debug"; + DEAD_CODE_STRIPPING = YES; + DEVELOPMENT_TEAM = 8B5X2M6H2Y; + EXCLUDED_ARCHS = ""; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + FRAMEWORK_SEARCH_PATHS = ( + "$(PROJECT_DIR)/../modules/react-native-status/ios/RCTStatus", + "$(inherited)", + "$(PROJECT_DIR)/Pods/**", + "$(PROJECT_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "COCOAPODS=1", + "$(inherited)", + "SQLITE_HAS_CODEC=1", + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/../node_modules/react-native/React/**", + "$(SRCROOT)/../node_modules/react-native-camera/ios", + "$(SRCROOT)/../node_modules/react-native-fs/**", + "$(SRCROOT)/../node_modules/react-native-languages/RNLanguages", + "$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**", + "$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer", + "$(SRCROOT)/../node_modules/react-native-lottie-splash-screen/ios", + "$(SRCROOT)/../node_modules/react-native-config/ios/**", + "$(SRCROOT)/../node_modules/react-native-webview/ios", + "$(SRCROOT)/../node_modules/react-native/Libraries/LinkingIOS", + ); + INFOPLIST_FILE = StatusIm/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-lc++", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = im.status.ethereum; + PRODUCT_NAME = StatusIm; + PROVISIONING_PROFILE = "9da75626-9594-43d9-a827-0f6d43c28f54"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "StatusIm-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VALID_ARCHS = "x86_64 arm64"; + "VALID_ARCHS[sdk=iphonesimulator*]" = "x86_64 "; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5F30F922E4B02AB10F6CB65E /* Pods-Status-StatusIm.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon$(BUNDLE_ID_SUFFIX)"; + BUNDLE_ID_SUFFIX = ""; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = StatusIm/StatusIm.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CUSTOM_PRODUCT_NAME = Status; + DEAD_CODE_STRIPPING = YES; + DEVELOPMENT_TEAM = 8B5X2M6H2Y; + EXCLUDED_ARCHS = ""; + FRAMEWORK_SEARCH_PATHS = ( + "$(PROJECT_DIR)/../modules/react-native-status/ios/RCTStatus", + "$(inherited)", + "$(PROJECT_DIR)/Pods/**", + "$(PROJECT_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/../node_modules/react-native/React/**", + "$(SRCROOT)/../node_modules/react-native-camera/ios", + "$(SRCROOT)/../node_modules/react-native-webview/ios", + "$(SRCROOT)/../node_modules/react-native-fs/**", + "$(SRCROOT)/../node_modules/react-native-languages/RNLanguages", + "$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**", + "$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer", + "$(SRCROOT)/../node_modules/react-native-lottie-splash-screen/ios", + "$(SRCROOT)/../node_modules/react-native-config/ios/**", + "$(SRCROOT)/../node_modules/react-native/Libraries/LinkingIOS", + ); + INFOPLIST_FILE = StatusIm/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-lc++", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = im.status.ethereum; + PRODUCT_NAME = StatusIm; + PROVISIONING_PROFILE = "e2202b12-7a66-4ff7-af3c-a52e35f32dc1"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "StatusIm-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VALID_ARCHS = arm64; + }; + name = Release; + }; + 3AAD2ADA24A3A60E0075D594 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8D3CFDC9666FBD03D1AA059A /* Pods-Status-StatusImPR.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon$(BUNDLE_ID_SUFFIX)"; + BUNDLE_ID_SUFFIX = .debug; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = StatusImPR/StatusImPR.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CUSTOM_PRODUCT_NAME = "Status Debug"; + DEAD_CODE_STRIPPING = YES; + DEVELOPMENT_TEAM = 8B5X2M6H2Y; + FRAMEWORK_SEARCH_PATHS = ( + "$(PROJECT_DIR)/../modules/react-native-status/ios/RCTStatus", + "$(inherited)", + "$(PROJECT_DIR)/Pods/**", + "$(PROJECT_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "COCOAPODS=1", + "$(inherited)", + "SQLITE_HAS_CODEC=1", + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/../node_modules/react-native/React/**", + "$(SRCROOT)/../node_modules/react-native-camera/ios", + "$(SRCROOT)/../node_modules/react-native-fs/**", + "$(SRCROOT)/../node_modules/react-native-languages/RNLanguages", + "$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**", + "$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer", + "$(SRCROOT)/../node_modules/react-native-lottie-splash-screen/ios", + "$(SRCROOT)/../node_modules/react-native-config/ios/**", + "$(SRCROOT)/../node_modules/react-native-webview/ios", + "$(SRCROOT)/../node_modules/react-native/Libraries/LinkingIOS", + ); + INFOPLIST_FILE = StatusImPR/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-lc++", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = im.status.ethereum.pr; + PRODUCT_NAME = "Status PR"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "StatusIm-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VALID_ARCHS = arm64; + }; + name = Debug; + }; + 3AAD2ADB24A3A60E0075D594 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8B3C115CD813729DE4735219 /* Pods-Status-StatusImPR.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIconPR$(BUNDLE_ID_SUFFIX)"; + BUNDLE_ID_SUFFIX = ""; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = StatusImPR/StatusImPR.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CUSTOM_PRODUCT_NAME = Status; + DEAD_CODE_STRIPPING = YES; + DEVELOPMENT_TEAM = 8B5X2M6H2Y; + FRAMEWORK_SEARCH_PATHS = ( + "$(PROJECT_DIR)/../modules/react-native-status/ios/RCTStatus", + "$(inherited)", + "$(PROJECT_DIR)/Pods/**", + "$(PROJECT_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/../node_modules/react-native/React/**", + "$(SRCROOT)/../node_modules/react-native-camera/ios", + "$(SRCROOT)/../node_modules/react-native-webview/ios", + "$(SRCROOT)/../node_modules/react-native-fs/**", + "$(SRCROOT)/../node_modules/react-native-languages/RNLanguages", + "$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**", + "$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer", + "$(SRCROOT)/../node_modules/react-native-lottie-splash-screen/ios", + "$(SRCROOT)/../node_modules/react-native-config/ios/**", + "$(SRCROOT)/../node_modules/react-native/Libraries/LinkingIOS", + ); + INFOPLIST_FILE = StatusImPR/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-lc++", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = im.status.ethereum.pr; + PRODUCT_NAME = "Status PR"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "StatusIm-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + VALID_ARCHS = arm64; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Manual; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = 8B5X2M6H2Y; + ENABLE_BITCODE = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + EXCLUDED_ARCHS = ""; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "FB_SONARKIT_ENABLED=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/../node_modules/react-native/React/**", + "$(SRCROOT)/../node_modules/react-native-camera/ios", + "$(SRCROOT)/../node_modules/react-native-webview/ios", + "$(SRCROOT)/../node_modules/react-native-fs/**", + "$(SRCROOT)/../node_modules/react-native-languages/RNLanguages", + "$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**", + "$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer", + "$(SRCROOT)/../node_modules/react-native-lottie-splash-screen/ios/**", + ); + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LIBRARY_SEARCH_PATHS = ( + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = NO; + SDKROOT = iphoneos; + VALID_ARCHS = arm64; + "VALID_ARCHS[sdk=iphonesimulator*]" = x86_64; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + CODE_SIGN_STYLE = Manual; + COPY_PHASE_STRIP = YES; + DEVELOPMENT_TEAM = 8B5X2M6H2Y; + ENABLE_BITCODE = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + EXCLUDED_ARCHS = ""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/../node_modules/react-native/React/**", + "$(SRCROOT)/../node_modules/react-native-camera/ios", + "$(SRCROOT)/../node_modules/react-native-webview/ios", + "$(SRCROOT)/../node_modules/react-native-fs/**", + "$(SRCROOT)/../node_modules/react-native-languages/RNLanguages", + "$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**", + "$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer", + "$(SRCROOT)/../node_modules/react-native-lottie-splash-screen/ios/**", + ); + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LIBRARY_SEARCH_PATHS = ( + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = NO; + ONLY_ACTIVE_ARCH = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + VALID_ARCHS = arm64; + }; + name = Release; + }; +>>>>>>> 12ff0b995 (updates) /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "StatusImTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00E356F61AD99517003FC87E /* Debug */, - 00E356F71AD99517003FC87E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "StatusIm" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 13B07F941A680F5B00A75B9A /* Debug */, - 13B07F951A680F5B00A75B9A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3AAD2AD924A3A60E0075D594 /* Build configuration list for PBXNativeTarget "StatusImPR" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3AAD2ADA24A3A60E0075D594 /* Debug */, - 3AAD2ADB24A3A60E0075D594 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "StatusIm" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 83CBBA201A601CBA00E9B192 /* Debug */, - 83CBBA211A601CBA00E9B192 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; + 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "StatusImTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 00E356F61AD99517003FC87E /* Debug */, + 00E356F71AD99517003FC87E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "StatusIm" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3AAD2AD924A3A60E0075D594 /* Build configuration list for PBXNativeTarget "StatusImPR" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3AAD2ADA24A3A60E0075D594 /* Debug */, + 3AAD2ADB24A3A60E0075D594 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "StatusIm" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ - }; - rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; } diff --git a/src/status_im2/contexts/chat/messages/bottom_sheet_composer/actions/style.cljs b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/actions/style.cljs new file mode 100644 index 0000000000..5ce869fb2e --- /dev/null +++ b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/actions/style.cljs @@ -0,0 +1,11 @@ +(ns status-im2.contexts.chat.messages.bottom-sheet-composer.actions.style + (:require [status-im2.contexts.chat.messages.bottom-sheet-composer.constants :as c])) + + +(defn actions-container + [] + {:height c/actions-container-height + :justify-content :space-between + :align-items :center + :z-index 2 + :flex-direction :row}) diff --git a/src/status_im2/contexts/chat/messages/bottom_sheet_composer/actions/view.cljs b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/actions/view.cljs new file mode 100644 index 0000000000..a16364a996 --- /dev/null +++ b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/actions/view.cljs @@ -0,0 +1,133 @@ +(ns status-im2.contexts.chat.messages.bottom-sheet-composer.actions.view + (:require + [quo2.core :as quo] + [quo2.foundations.colors :as colors] + [react-native.background-timer :as background-timer] + [react-native.core :as rn] + [react-native.permissions :as permissions] + [react-native.reanimated :as reanimated] + [reagent.core :as reagent] + [status-im2.common.alert.events :as alert] + [status-im2.contexts.chat.messages.bottom-sheet-composer.constants :as c] + [status-im2.contexts.chat.messages.list.view :as messages.list] + [utils.i18n :as i18n] + [utils.re-frame :as rf] + [status-im2.contexts.chat.messages.bottom-sheet-composer.actions.style :as style])) + + +;;; CONTROLS +(defn send-button + [input-ref text-value images? window-height + {:keys [height saved-height last-height opacity background-y container-opacity]}] + [:f> + (fn [] + (let [btn-opacity (reanimated/use-shared-value 0) + z-index (reagent/atom 0)] + [:f> + (fn [] + (rn/use-effect (fn [] + (if (or (not-empty @text-value) images?) + (when-not (= @z-index 1) + (reset! z-index 1) + (js/setTimeout #(reanimated/animate btn-opacity 1) 50)) + (when-not (= @z-index 0) + (reanimated/animate btn-opacity 0) + (js/setTimeout #(reset! z-index 0) 300)))) + [@text-value]) + [reanimated/view + {:style (reanimated/apply-animations-to-style + {:opacity btn-opacity} + {:position :absolute + :right 0 + :z-index @z-index + :background-color (colors/theme-colors colors/white colors/neutral-95)})} + [quo/button + {:icon true + :size 32 + :accessibility-label :send-message-button + :on-press (fn [] + (reanimated/animate height c/input-height) + (reanimated/set-shared-value saved-height c/input-height) + (reanimated/set-shared-value last-height c/input-height) + (reanimated/animate opacity 0) + (js/setTimeout #(reanimated/animate container-opacity 0.7) 300) + (js/setTimeout #(reanimated/set-shared-value background-y + (- window-height)) + 300) + (rf/dispatch [:chat.ui/send-current-message]) + (rf/dispatch [:chat.ui/set-input-maximized false]) + (rf/dispatch [:chat.ui/set-input-content-height c/input-height]) + (reset! text-value "") + (.clear ^js @input-ref) + (messages.list/scroll-to-bottom))} + :i/arrow-up]])]))]) + +(defn audio-button + [] + [quo/button + {:on-press #(js/alert "to be added") + :icon true + :type :outline + :size 32} + :i/audio]) +(defn camera-button + [] + [quo/button + {:on-press #(js/alert "to be implemented") + :icon true + :type :outline + :size 32 + :style {:margin-right 12}} + :i/camera]) +(defn image-button + [insets height] + [quo/button + {:on-press (fn [] + (permissions/request-permissions + {:permissions [:read-external-storage :write-external-storage] + :on-allowed (fn [] + (rf/dispatch [:chat.ui/set-input-content-height + (reanimated/get-shared-value height)]) + (rf/dispatch [:open-modal :photo-selector {:insets insets}])) + :on-denied (fn [] + (background-timer/set-timeout + #(alert/show-popup (i18n/label :t/error) + (i18n/label + :t/external-storage-denied)) + 50))})) + :icon true + :type :outline + :size 32 + :style {:margin-right 12}} + :i/image]) + +(defn reaction-button + [] + [quo/button + {:on-press #(js/alert "to be implemented") + :icon true + :type :outline + :size 32 + :style {:margin-right 12}} + :i/reaction]) + +(defn format-button + [] + [quo/button + {:on-press #(js/alert "to be implemented") + :icon true + :type :outline + :size 32} + :i/format]) + +(defn view + [input-ref text-value images? {:keys [height] :as animations} + window-height insets] + [rn/view {:style (style/actions-container)} + [rn/view {:style {:flex-direction :row}} + [camera-button] + [image-button insets height] + [reaction-button] + [format-button]] + [send-button input-ref text-value images? window-height animations] + [audio-button]]) diff --git a/src/status_im2/contexts/chat/messages/bottom_sheet_composer/constants.cljs b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/constants.cljs index 1418092e9b..24f746e3a6 100644 --- a/src/status_im2/contexts/chat/messages/bottom_sheet_composer/constants.cljs +++ b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/constants.cljs @@ -5,7 +5,7 @@ (def ^:const handle-container-height 20) -(def ^:const input-height (if platform/ios? 32 32)) +(def ^:const input-height (if platform/ios? 32 42)) (def ^:const actions-container-height 56) diff --git a/src/status_im2/contexts/chat/messages/bottom_sheet_composer/keyboard.cljs b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/keyboard.cljs new file mode 100644 index 0000000000..bcc2f45d34 --- /dev/null +++ b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/keyboard.cljs @@ -0,0 +1,72 @@ +(ns status-im2.contexts.chat.messages.bottom-sheet-composer.keyboard + (:require [oops.core :as oops] + [react-native.async-storage :as async-storage] + [react-native.core :as rn] + [react-native.platform :as platform] + [react-native.reanimated :as reanimated] + [status-im2.contexts.chat.messages.bottom-sheet-composer.utils :as utils])) + +(defn get-kb-height + [curr-height default-height] + (if (and default-height (< curr-height default-height)) + default-height + curr-height)) + +(defn store-kb-height + [{:keys [kb-default-height]} keyboard-height] + (when (and (not @kb-default-height) (pos? keyboard-height)) + (async-storage/set-item :kb-default-height keyboard-height))) + +(defn handle-emoji-kb-ios + [e + {:keys [emoji-kb-extra-height]} + {:keys [text-value]} + {:keys [height saved-height]} + {:keys [max-height]}] + (let [start-h (oops/oget e "startCoordinates.height") + end-h (oops/oget e "endCoordinates.height") + diff (- end-h start-h) + max (- max-height diff) + curr-text @text-value] + (if (> (reanimated/get-shared-value height) max) + (do + (reanimated/set-shared-value height (- (reanimated/get-shared-value height) diff)) + (reanimated/set-shared-value saved-height (- (reanimated/get-shared-value saved-height) diff)) + (reset! text-value (str @text-value " ")) + (js/setTimeout #(reset! text-value curr-text) 0) + (reset! emoji-kb-extra-height diff)) + (when @emoji-kb-extra-height + (reanimated/set-shared-value height + (+ (reanimated/get-shared-value height) @emoji-kb-extra-height)) + (reanimated/set-shared-value saved-height + (+ (reanimated/get-shared-value saved-height) + @emoji-kb-extra-height)) + (reset! emoji-kb-extra-height nil))))) + +(defn handle-kb-hide-android + [{:keys [input-ref]} + {:keys [opacity height saved-height background-y]} + {:keys [window-height lines]}] + (when platform/android? + (let [min-height (utils/get-min-height lines)] + (.blur ^js @input-ref) + (reanimated/animate opacity 0) + (js/setTimeout (fn [] + (reanimated/animate height min-height) + (reanimated/set-shared-value saved-height min-height) + (reanimated/set-shared-value background-y (- window-height))) + 100)))) + +(defn add-kb-listeners + [{:keys [keyboard-show-listener keyboard-frame-listener keyboard-hide-listener] :as props} + state animations dimensions keyboard-height] + (reset! keyboard-show-listener (.addListener rn/keyboard + "keyboardDidShow" + #(store-kb-height state keyboard-height))) + (reset! keyboard-frame-listener (.addListener + rn/keyboard + "keyboardWillChangeFrame" + #(handle-emoji-kb-ios % props state animations dimensions))) + (reset! keyboard-hide-listener (.addListener rn/keyboard + "keyboardDidHide" + #(handle-kb-hide-android props animations dimensions)))) diff --git a/src/status_im2/contexts/chat/messages/bottom_sheet_composer/style.cljs b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/style.cljs index d163475e8d..557cc3fc47 100644 --- a/src/status_im2/contexts/chat/messages/bottom_sheet_composer/style.cljs +++ b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/style.cljs @@ -70,14 +70,6 @@ :overflow :hidden})) -(defn actions-container - [] - {:height c/actions-container-height - :justify-content :space-between - :align-items :center - :z-index 2 - :flex-direction :row}) - (defn background [opacity background-y window-height] (reanimated/apply-animations-to-style diff --git a/src/status_im2/contexts/chat/messages/bottom_sheet_composer/sub_view.cljs b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/sub_view.cljs new file mode 100644 index 0000000000..bd3acd3677 --- /dev/null +++ b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/sub_view.cljs @@ -0,0 +1,35 @@ +(ns status-im2.contexts.chat.messages.bottom-sheet-composer.sub-view + (:require + [react-native.blur :as blur] + [react-native.core :as rn] + [react-native.linear-gradient :as linear-gradient] + [react-native.reanimated :as reanimated] + [status-im2.contexts.chat.messages.bottom-sheet-composer.style :as style])) + +(defn bar + [] + [rn/view {:style (style/bar-container)} + [rn/view {:style (style/bar)}]]) + +(defn blur-view + [layout-height] + [:f> + (fn [] + [reanimated/view {:style (style/blur-container layout-height)} + [blur/view style/blur-view]])]) + +(defn gradients + [{:keys [input-ref]} + {:keys [gradient-z-index text-value focused?]} + {:keys [gradient-opacity]} + {:keys [lines]}] + [:f> + (fn [] + [:<> + [reanimated/linear-gradient (style/top-gradient gradient-opacity @gradient-z-index)] + (when (and (not-empty @text-value) (not @focused?) (> lines 2)) + [rn/touchable-without-feedback + {:on-press #(.focus ^js @input-ref)} + [linear-gradient/linear-gradient (style/bottom-gradient)]])])]) + + diff --git a/src/status_im2/contexts/chat/messages/bottom_sheet_composer/test.cljs b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/test.cljs deleted file mode 100644 index 6f6691b805..0000000000 --- a/src/status_im2/contexts/chat/messages/bottom_sheet_composer/test.cljs +++ /dev/null @@ -1,2 +0,0 @@ -(ns status-im2.contexts.chat.messages.bottom-sheet-composer.test) - diff --git a/src/status_im2/contexts/chat/messages/bottom_sheet_composer/utils.cljs b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/utils.cljs new file mode 100644 index 0000000000..eb5502558e --- /dev/null +++ b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/utils.cljs @@ -0,0 +1,56 @@ +(ns status-im2.contexts.chat.messages.bottom-sheet-composer.utils + (:require + [react-native.platform :as platform] + [react-native.reanimated :as reanimated] + [status-im2.contexts.chat.messages.bottom-sheet-composer.constants :as c])) + +(defn bounded-val + [f min max] + (Math/max min (Math/min f max))) + +(defn get-min-height + [lines] + (if (> lines 1) c/multiline-minimized-height c/input-height)) + +(defn calc-reopen-height + [text-value min-height content-height saved-height] + (if (empty? @text-value) + min-height + (Math/min @content-height (reanimated/get-shared-value saved-height)))) + +(defn should-update-height + [content-size height max-height] + (let [diff (Math/abs (- content-size (reanimated/get-shared-value height)))] + (and (not= (reanimated/get-shared-value height) max-height) + (> diff c/content-change-threshold)))) + +(defn should-show-top-gradient + [y lines max-lines gradient-opacity focused?] + (and + (> y c/line-height) + (>= lines max-lines) + (= (reanimated/get-shared-value gradient-opacity) 0) + @focused?)) + +(defn should-hide-top-gradient + [y gradient-opacity] + (and + (<= y c/line-height) + (= (reanimated/get-shared-value gradient-opacity) 1))) + +(defn calc-lines + [height] + (let [lines (Math/round (/ height c/line-height))] + (if platform/ios? lines (dec lines)))) + +(defn calc-max-height + [window-height margin-top kb-height images] + (let [max-height + (- window-height margin-top kb-height c/handle-container-height c/actions-container-height)] + (if (seq images) + (- max-height c/images-container-height) + max-height))) + +(defn empty-input? + [input-text images] + (and (nil? input-text) (not (seq images)))) diff --git a/src/status_im2/contexts/chat/messages/bottom_sheet_composer/view.cljs b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/view.cljs index 207ebfa1d6..938e72de0e 100644 --- a/src/status_im2/contexts/chat/messages/bottom_sheet_composer/view.cljs +++ b/src/status_im2/contexts/chat/messages/bottom_sheet_composer/view.cljs @@ -1,157 +1,24 @@ (ns status-im2.contexts.chat.messages.bottom-sheet-composer.view (:require - [quo2.core :as quo] [quo2.foundations.colors :as colors] - [react-native.background-timer :as background-timer] - [react-native.blur :as blur] [react-native.core :as rn] [react-native.gesture :as gesture] [react-native.hooks :as hooks] - [react-native.linear-gradient :as linear-gradient] - [react-native.permissions :as permissions] [react-native.platform :as platform] [react-native.reanimated :as reanimated] [oops.core :as oops] [react-native.safe-area :as safe-area] [reagent.core :as reagent] - [status-im2.common.alert.events :as alert] - [status-im2.contexts.chat.messages.list.view :as messages.list] [utils.i18n :as i18n] [status-im2.contexts.chat.messages.bottom-sheet-composer.style :as style] [status-im2.contexts.chat.messages.bottom-sheet-composer.images.view :as images] [react-native.async-storage :as async-storage] [utils.re-frame :as rf] - [status-im2.contexts.chat.messages.bottom-sheet-composer.constants :as c])) - -;;; CONTROLS -(defn send-button - [input-ref text-value images? window-height - {:keys [height saved-height last-height opacity background-y container-opacity]}] - [:f> - (fn [] - (let [btn-opacity (reanimated/use-shared-value 0) - z-index (reagent/atom 0)] - - [:f> - (fn [] - (rn/use-effect (fn [] - (if (or (not-empty @text-value) images?) - (when-not (= @z-index 1) - (reset! z-index 1) - (js/setTimeout #(reanimated/animate btn-opacity 1) 50)) - (when-not (= @z-index 0) - (reanimated/animate btn-opacity 0) - (js/setTimeout #(reset! z-index 0) 300)))) - [@text-value]) - [reanimated/view - {:style (reanimated/apply-animations-to-style - {:opacity btn-opacity} - {:position :absolute - :right 0 - :z-index @z-index - :background-color (colors/theme-colors colors/white colors/neutral-90)})} - [quo/button - {:icon true - :size 32 - :accessibility-label :send-message-button - :on-press (fn [] - (reanimated/animate height c/input-height) - (reanimated/set-shared-value saved-height c/input-height) - (reanimated/set-shared-value last-height c/input-height) - (reanimated/animate opacity 0) - (js/setTimeout #(reanimated/animate container-opacity 0.7) 300) - (js/setTimeout #(reanimated/set-shared-value background-y - (- window-height)) - 300) - (rf/dispatch [:chat.ui/send-current-message]) - (rf/dispatch [:chat.ui/set-input-maximized false]) - (reset! text-value "") - (.clear ^js @input-ref) - (messages.list/scroll-to-bottom))} - :i/arrow-up]])]))]) - -(defn audio-button - [] - [quo/button - {:on-press #(js/alert "to be added") - :icon true - :type :outline - :size 32} - :i/audio]) -(defn camera-button - [] - [quo/button - {:on-press #(js/alert "to be implemented") - :icon true - :type :outline - :size 32 - :style {:margin-right 12}} - :i/camera]) -(defn image-button - [insets height] - [quo/button - {:on-press (fn [] - (permissions/request-permissions - {:permissions [:read-external-storage :write-external-storage] - :on-allowed (fn [] - (rf/dispatch [:chat.ui/set-input-content-height - (reanimated/get-shared-value height)]) - (rf/dispatch [:open-modal :photo-selector {:insets insets}])) - :on-denied (fn [] - (background-timer/set-timeout - #(alert/show-popup (i18n/label :t/error) - (i18n/label - :t/external-storage-denied)) - 50))})) - :icon true - :type :outline - :size 32 - :style {:margin-right 12}} - :i/image]) - -(defn reaction-button - [] - [quo/button - {:on-press #(js/alert "to be implemented") - :icon true - :type :outline - :size 32 - :style {:margin-right 12}} - :i/reaction]) - -(defn format-button - [] - [quo/button - {:on-press #(js/alert "to be implemented") - :icon true - :type :outline - :size 32} - :i/format]) - -(defn actions - [input-ref text-value images? {:keys [height saved-height opacity background-y] :as animations} - window-height insets] - [rn/view {:style (style/actions-container)} - [rn/view {:style {:flex-direction :row}} - [camera-button] - [image-button insets height] - [reaction-button] - [format-button]] - [send-button input-ref text-value images? window-height animations] - [audio-button]]) - -(defn bar - [] - [rn/view {:style (style/bar-container)} - [rn/view {:style (style/bar)}]]) - -(defn get-min-height - [lines] - (if (> lines 1) c/multiline-minimized-height c/input-height)) - -(defn bounded-val - [f min max] - (Math/max min (Math/min f max))) + [status-im2.contexts.chat.messages.bottom-sheet-composer.utils :as utils] + [status-im2.contexts.chat.messages.bottom-sheet-composer.constants :as c] + [status-im2.contexts.chat.messages.bottom-sheet-composer.actions.view :as actions] + [status-im2.contexts.chat.messages.bottom-sheet-composer.keyboard :as kb] + [status-im2.contexts.chat.messages.bottom-sheet-composer.sub-view :as sub-view])) (defn set-opacity [e opacity translation expanding? min-height max-height new-height saved-height] @@ -200,7 +67,7 @@ (defn drag-gesture [{:keys [input-ref] :as props} {:keys [gesture-enabled?] :as state} - {:keys [height saved-height last-height opacity background-y] :as animations} + {:keys [height saved-height last-height opacity background-y container-opacity] :as animations} {:keys [max-height lines] :as dimensions} keyboard-shown] (let [expanding? (atom true) @@ -212,6 +79,7 @@ (if-not keyboard-shown (do ; focus and end (when (< (oops/oget e "velocityY") c/velocity-threshold) + (reanimated/animate container-opacity 1) (reanimated/set-shared-value last-height max-height)) (.focus ^js @input-ref) (reset! gesture-enabled? false)) @@ -220,10 +88,10 @@ (reset! expanding? (neg? (oops/oget e "velocityY"))))))) (gesture/on-update (fn [e] (let [translation (oops/oget e "translationY") - min-height (get-min-height lines) + min-height (utils/get-min-height lines) new-height (+ (- translation) (reanimated/get-shared-value saved-height)) - new-height (bounded-val new-height min-height max-height)] + new-height (utils/bounded-val new-height min-height max-height)] (when keyboard-shown (reanimated/set-shared-value height new-height) (set-opacity e @@ -284,11 +152,6 @@ (clj->js {:selection {:start @saved-cursor-position :end @saved-cursor-position}}))) (handle-refocus-emoji-kb-ios props animations dimensions)) -(defn calc-reopen-height - [text-value min-height content-height saved-height] - (if (empty? @text-value) - min-height - (Math/min @content-height (reanimated/get-shared-value saved-height)))) (defn handle-blur [{:keys [text-value focused? lock-selection? cursor-position saved-cursor-position gradient-z-index @@ -296,8 +159,8 @@ {:keys [height saved-height last-height gradient-opacity container-opacity opacity background-y]} {:keys [lines content-height max-height window-height]} images] - (let [min-height (get-min-height lines) - reopen-height (calc-reopen-height text-value min-height content-height saved-height)] + (let [min-height (utils/get-min-height lines) + reopen-height (utils/calc-reopen-height text-value min-height content-height saved-height)] (reset! focused? false) (reanimated/set-shared-value last-height reopen-height) (reanimated/animate height min-height) @@ -313,12 +176,6 @@ (when (not= reopen-height max-height) (reset! maximized? false)))) -(defn should-update-height - [content-size height max-height] - (let [diff (Math/abs (- content-size (reanimated/get-shared-value height)))] - (and (not= (reanimated/get-shared-value height) max-height) - (> diff c/content-change-threshold)))) - (defn handle-content-size-change [e {:keys [maximized?]} @@ -327,9 +184,9 @@ keyboard-shown] (when keyboard-shown (let [content-size (+ (oops/oget e "nativeEvent.contentSize.height") c/extra-content-offset) - new-height (bounded-val content-size c/input-height max-height)] + new-height (utils/bounded-val content-size c/input-height max-height)] (reset! content-height content-size) - (when (should-update-height content-size height max-height) + (when (utils/should-update-height content-size height max-height) (reanimated/animate height new-height) (reanimated/set-shared-value saved-height new-height)) (when (= new-height max-height) @@ -344,30 +201,16 @@ (js/setTimeout #(reanimated/set-shared-value background-y (- window-height)) 300))) (rf/dispatch [:chat.ui/set-input-content-height new-height])))) -(defn should-show-top-gradient - [y lines max-lines gradient-opacity focused?] - (and - (> y c/line-height) - (>= lines max-lines) - (= (reanimated/get-shared-value gradient-opacity) 0) - @focused?)) - -(defn should-hide-top-gradient - [y gradient-opacity] - (and - (<= y c/line-height) - (= (reanimated/get-shared-value gradient-opacity) 1))) - (defn handle-scroll [e {:keys [gradient-z-index focused?]} {:keys [gradient-opacity]} {:keys [lines max-lines]}] (let [y (oops/oget e "nativeEvent.contentOffset.y")] - (when (should-show-top-gradient y lines max-lines gradient-opacity focused?) + (when (utils/should-show-top-gradient y lines max-lines gradient-opacity focused?) (reset! gradient-z-index 1) (js/setTimeout #(reanimated/animate gradient-opacity 1) 0)) - (when (should-hide-top-gradient y gradient-opacity) + (when (utils/should-hide-top-gradient y gradient-opacity) (reanimated/animate gradient-opacity 0) (js/setTimeout #(reset! gradient-z-index 0) 300)))) @@ -387,46 +230,6 @@ (when-not @lock-selection? (reset! cursor-position (oops/oget e "nativeEvent.selection.end")))) -(defn handle-emoji-kb-ios - [e - {:keys [emoji-kb-extra-height]} - {:keys [text-value]} - {:keys [height saved-height]} - {:keys [max-height]}] - (let [start-h (oops/oget e "startCoordinates.height") - end-h (oops/oget e "endCoordinates.height") - diff (- end-h start-h) - max (- max-height diff) - curr-text @text-value] - (if (> (reanimated/get-shared-value height) max) - (do - (reanimated/set-shared-value height (- (reanimated/get-shared-value height) diff)) - (reanimated/set-shared-value saved-height (- (reanimated/get-shared-value saved-height) diff)) - (reset! text-value (str @text-value " ")) - (js/setTimeout #(reset! text-value curr-text) 0) - (reset! emoji-kb-extra-height diff)) - (when @emoji-kb-extra-height - (reanimated/set-shared-value height - (+ (reanimated/get-shared-value height) @emoji-kb-extra-height)) - (reanimated/set-shared-value saved-height - (+ (reanimated/get-shared-value saved-height) - @emoji-kb-extra-height)) - (reset! emoji-kb-extra-height nil))))) - -(defn handle-kb-hide-android - [{:keys [input-ref]} - {:keys [opacity height saved-height background-y]} - {:keys [window-height lines]}] - (when platform/android? - (let [min-height (get-min-height lines)] - (.blur ^js @input-ref) - (reanimated/animate opacity 0) - (js/setTimeout (fn [] - (reanimated/animate height min-height) - (reanimated/set-shared-value saved-height min-height) - (reanimated/set-shared-value background-y (- window-height))) - 100)))) - (defn handle-layout [e {:keys [lock-layout?]} @@ -445,50 +248,18 @@ (when input-maximized? (reset! maximized? true))) -(defn store-kb-height - [{:keys [kb-default-height]} keyboard-height] - (when (and (not @kb-default-height) (pos? keyboard-height)) - (async-storage/set-item :kb-default-height keyboard-height))) -(defn add-kb-listeners - [{:keys [keyboard-show-listener keyboard-frame-listener keyboard-hide-listener] :as props} - state animations dimensions keyboard-height] - (reset! keyboard-show-listener (.addListener rn/keyboard - "keyboardDidShow" - #(store-kb-height state keyboard-height))) - (reset! keyboard-frame-listener (.addListener - rn/keyboard - "keyboardWillChangeFrame" - #(handle-emoji-kb-ios % props state animations dimensions))) - (reset! keyboard-hide-listener (.addListener rn/keyboard - "keyboardDidHide" - #(handle-kb-hide-android props animations dimensions)))) - (defn component-will-unmount [{:keys [keyboard-show-listener keyboard-hide-listener keyboard-frame-listener]}] (.remove ^js @keyboard-show-listener) (.remove ^js @keyboard-hide-listener) (.remove ^js @keyboard-frame-listener)) -(defn gradient-components - [{:keys [input-ref]} - {:keys [gradient-z-index text-value focused?]} - {:keys [gradient-opacity]} - {:keys [lines]}] - [:f> - (fn [] - [:<> - [reanimated/linear-gradient (style/top-gradient gradient-opacity @gradient-z-index)] - (when (and (not-empty @text-value) (not @focused?) (> lines 2)) - [rn/touchable-without-feedback - {:on-press #(.focus ^js @input-ref)} - [linear-gradient/linear-gradient (style/bottom-gradient)]])])]) - (defn use-effect [props {:keys [lock-layout? kb-default-height maximized? text-value] :as state} {:keys [height saved-height container-opacity opacity background-y] :as animations} {:keys [max-height] :as dimensions} - {:keys [input-content-height input-text] :as chat-input} + {:keys [input-content-height] :as chat-input} keyboard-height images?] (rn/use-effect (fn [] @@ -496,7 +267,7 @@ (reanimated/animate height max-height) (reanimated/set-shared-value saved-height max-height)) (handle-reenter-screen state dimensions chat-input) - (when (nil? input-text) + (when-not @lock-layout? (js/setTimeout #(reset! lock-layout? true) 500)) (when-not @kb-default-height (async-storage/get-item :kb-default-height @@ -508,32 +279,12 @@ (reanimated/animate container-opacity 1)) (when (and (empty? @text-value) (not images?) (not @maximized?)) (reanimated/animate-delay container-opacity 0.7 200)) - (add-kb-listeners props state animations dimensions keyboard-height) + (kb/add-kb-listeners props state animations dimensions keyboard-height) #(component-will-unmount props)) [max-height])) -(defn get-kb-height - [curr-height default-height] - (if (and default-height (< curr-height default-height)) - default-height - curr-height)) - -(defn calc-lines - [height] - (let [lines (Math/round (/ height c/line-height))] - (if platform/ios? lines (dec lines)))) - -(defn calc-max-height - [window-height margin-top kb-height images] - (let [max-height - (- window-height margin-top kb-height c/handle-container-height c/actions-container-height)] - (if (seq images) - (- max-height c/images-container-height) - max-height))) - ;;; MAIN (defn sheet - ;; safe-area consumer insets makes incorrect values on Android [insets window-height layout-height opacity background-y] [:f> (fn [] @@ -562,23 +313,23 @@ content-height (reagent/atom (or input-content-height c/input-height)) {:keys [keyboard-shown keyboard-height]} (hooks/use-keyboard) - kb-height (get-kb-height keyboard-height - @(:kb-default-height state)) - max-height (calc-max-height window-height - margin-top - kb-height - images) - lines (calc-lines @content-height) - max-lines (calc-lines max-height) + kb-height (kb/get-kb-height keyboard-height + @(:kb-default-height state)) + max-height (utils/calc-max-height window-height + margin-top + kb-height + images) + lines (utils/calc-lines @content-height) + max-lines (utils/calc-lines max-height) initial-height (if (> lines 1) c/multiline-minimized-height c/input-height) animations {:gradient-opacity (reanimated/use-shared-value 0) :container-opacity (reanimated/use-shared-value - (if (and (nil? input-text) - (not (seq - images))) + (if (utils/empty-input? + input-text + images) 0.7 1)) :height (reanimated/use-shared-value @@ -586,7 +337,7 @@ :saved-height (reanimated/use-shared-value initial-height) :last-height (reanimated/use-shared-value - (bounded-val + (utils/bounded-val @content-height c/input-height max-height)) @@ -603,11 +354,10 @@ [reanimated/view {:style (style/sheet-container insets (:container-opacity animations)) :on-layout #(handle-layout % state layout-height)} - [bar] + [sub-view/bar] [reanimated/touchable-opacity {:active-opacity 1 - :on-press #(.focus ^js @(:input-ref props)) ;; for android when first entering - ;; screen + :on-press #(.focus ^js @(:input-ref props)) :style (style/input-container (:height animations) max-height)} [rn/text-input {:ref #(reset! (:input-ref props) %) @@ -629,19 +379,11 @@ :placeholder-text-color (colors/theme-colors colors/neutral-40 colors/neutral-50) :style (style/input @(:maximized? state) @(:saved-emoji-kb-extra-height props))}] - [gradient-components props state animations dimensions]] + [sub-view/gradients props state animations dimensions]] [images/images-list] - [actions (:input-ref props) (:text-value state) (seq images) animations window-height + [actions/view (:input-ref props) (:text-value state) (seq images) animations window-height insets]]]))]))]) - -(defn blur-view - [layout-height] - [:f> - (fn [] - [reanimated/view {:style (style/blur-container layout-height)} - [blur/view style/blur-view]])]) - (defn bottom-sheet-composer [] [:f> @@ -653,5 +395,5 @@ layout-height (reanimated/use-shared-value (+ c/composer-default-height (:bottom insets)))] [rn/view [reanimated/view {:style (style/background opacity background-y window-height)}] - [blur-view layout-height] + [sub-view/blur-view layout-height] [sheet insets window-height layout-height opacity background-y]]))])