From 613996be48be560d3e6a331770eb06e580f91b23 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Fri, 17 Apr 2020 17:35:00 +0100 Subject: [PATCH 01/40] Implement mentions in Gutenberg --- Podfile | 2 +- Podfile.lock | 146 +++++++++--------- .../GutenbergMentionsViewController.swift | 122 +++++++++++++++ .../Gutenberg/GutenbergViewController.swift | 75 +++++++++ WordPress/WordPress.xcodeproj/project.pbxproj | 4 + 5 files changed, 275 insertions(+), 74 deletions(-) create mode 100644 WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift diff --git a/Podfile b/Podfile index b9283a5a3ebe..4bf9346c75f4 100644 --- a/Podfile +++ b/Podfile @@ -149,7 +149,7 @@ target 'WordPress' do ## Gutenberg (React Native) ## ===================== ## - gutenberg :tag => 'v1.26.0' + gutenberg :commit => 'ce88a8ae7052c3fff3292ee2b6382750c90fe7ee' ## Third party libraries ## ===================== diff --git a/Podfile.lock b/Podfile.lock index 772ef8d09474..ce37228aac5d 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -67,7 +67,7 @@ PODS: - "GoogleToolboxForMac/NSString+URLArguments (2.2.2)" - Gridicons (1.0.1) - GTMSessionFetcher/Core (1.3.1) - - Gutenberg (1.26.0): + - Gutenberg (1.25.0): - React (= 0.61.5) - React-CoreModules (= 0.61.5) - React-RCTImage (= 0.61.5) @@ -361,7 +361,7 @@ PODS: - React - RNSVG (9.13.6-gb): - React - - RNTAztecView (1.26.0): + - RNTAztecView (1.25.0): - React-Core - WordPress-Aztec-iOS (~> 1.17.1) - Sentry (4.5.0): @@ -429,15 +429,15 @@ DEPENDENCIES: - Charts (~> 3.2.2) - CocoaLumberjack (= 3.5.2) - Down (~> 0.6.6) - - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json`) - - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json`) - - Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json`) + - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json`) + - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json`) + - Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json`) - FormatterKit/TimeIntervalFormatter (= 1.8.2) - FSInteractiveMap (from `https://github.com/wordpress-mobile/FSInteractiveMap.git`, tag `0.2.0`) - Gifu (= 3.2.0) - - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json`) + - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json`) - Gridicons (~> 1.0.1) - - Gutenberg (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, tag `v1.26.0`) + - Gutenberg (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `ce88a8ae7052c3fff3292ee2b6382750c90fe7ee`) - JTAppleCalendar (~> 8.0.2) - MediaEditor (~> 1.0.1) - MRProgress (= 0.8.3) @@ -447,34 +447,34 @@ DEPENDENCIES: - OCMock (= 3.4.3) - OHHTTPStubs (= 6.1.0) - OHHTTPStubs/Swift (= 6.1.0) - - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json`) - - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json`) + - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json`) + - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json`) - Reachability (= 3.2) - - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json`) - - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json`) - - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json`) - - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json`) - - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json`) - - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json`) - - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json`) - - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) - - react-native-linear-gradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json`) - - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json`) - - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json`) - - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json`) - - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json`) - - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json`) - - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json`) - - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json`) - - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json`) - - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json`) - - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json`) - - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json`) - - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json`) - - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json`) - - ReactNativeDarkMode (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json`) - - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json`) - - RNTAztecView (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, tag `v1.26.0`) + - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json`) + - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json`) + - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json`) + - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json`) + - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json`) + - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json`) + - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json`) + - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) + - react-native-linear-gradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json`) + - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json`) + - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json`) + - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json`) + - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json`) + - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json`) + - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json`) + - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json`) + - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json`) + - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json`) + - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json`) + - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json`) + - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json`) + - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json`) + - ReactNativeDarkMode (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json`) + - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json`) + - RNTAztecView (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `ce88a8ae7052c3fff3292ee2b6382750c90fe7ee`) - SimulatorStatusMagic - Starscream (= 3.0.6) - SVProgressHUD (= 2.2.5) @@ -485,7 +485,7 @@ DEPENDENCIES: - WordPressShared (~> 1.8.16) - WordPressUI (~> 1.5.3-beta.1) - WPMediaPicker (~> 1.6.1) - - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json`) + - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json`) - ZendeskSupportSDK (= 5.0.0) - ZIPFoundation (~> 0.9.8) @@ -545,87 +545,87 @@ SPEC REPOS: EXTERNAL SOURCES: FBLazyVector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json FBReactNativeSpec: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json Folly: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 glog: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json Gutenberg: + :commit: ce88a8ae7052c3fff3292ee2b6382750c90fe7ee :git: http://github.com/wordpress-mobile/gutenberg-mobile/ - :tag: v1.26.0 RCTRequired: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json RCTTypeSafety: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json React: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json React-Core: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json React-CoreModules: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json React-cxxreact: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json React-jsi: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json React-jsiexecutor: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json React-jsinspector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json react-native-keyboard-aware-scroll-view: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json react-native-linear-gradient: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json react-native-safe-area: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json react-native-slider: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json react-native-video: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json React-RCTActionSheet: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json React-RCTAnimation: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json React-RCTBlob: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json React-RCTImage: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json React-RCTLinking: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json React-RCTNetwork: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json React-RCTSettings: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json React-RCTText: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json React-RCTVibration: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json ReactCommon: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json ReactNativeDarkMode: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json RNSVG: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json RNTAztecView: + :commit: ce88a8ae7052c3fff3292ee2b6382750c90fe7ee :git: http://github.com/wordpress-mobile/gutenberg-mobile/ - :tag: v1.26.0 Yoga: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.26.0/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json CHECKOUT OPTIONS: FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 Gutenberg: + :commit: ce88a8ae7052c3fff3292ee2b6382750c90fe7ee :git: http://github.com/wordpress-mobile/gutenberg-mobile/ - :tag: v1.26.0 RNTAztecView: + :commit: ce88a8ae7052c3fff3292ee2b6382750c90fe7ee :git: http://github.com/wordpress-mobile/gutenberg-mobile/ - :tag: v1.26.0 SPEC CHECKSUMS: 1PasswordExtension: f97cc80ae58053c331b2b6dc8843ba7103b33794 @@ -650,7 +650,7 @@ SPEC CHECKSUMS: GoogleToolboxForMac: 800648f8b3127618c1b59c7f97684427630c5ea3 Gridicons: 8e19276b20bb15d1fda1d4d0db96d066d170135b GTMSessionFetcher: cea130bbfe5a7edc8d06d3f0d17288c32ffe9925 - Gutenberg: 26ae066818c65566ac0d8ce51cfc8a20b66db55c + Gutenberg: 401db7abdfa9411d767f9a7d77fbaa57a53f85cf JTAppleCalendar: 932cadea40b1051beab10f67843451d48ba16c99 lottie-ios: 85ce835dd8c53e02509f20729fc7d6a4e6645a0a MediaEditor: 7296cd01d7a0548fb2bc909aa72153b376a56a61 @@ -687,7 +687,7 @@ SPEC CHECKSUMS: ReactCommon: 48926fc48fcd7c8a629860049ffba9c23b4005dc ReactNativeDarkMode: f61376360c5d983907e5c316e8e1c853a8c2f348 RNSVG: 68a534a5db06dcbdaebfd5079349191598caef7b - RNTAztecView: 65e1984620590339bb1bcced6f5e914cba8df2f5 + RNTAztecView: 3fb0f122cea9b3bcf502da8380de5cd552d43585 Sentry: ab6c209f23700d1460691dbc90e19ed0a05d496b SimulatorStatusMagic: 28d4a9d1a500ac7cea0b2b5a43c1c6ddb40ba56c Sodium: 63c0ca312a932e6da481689537d4b35568841bdc @@ -714,6 +714,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: a87ab1e4badace92c75eb11dc77ede1e995b2adc ZIPFoundation: 249fa8890597086cd536bb2df5c9804d84e122b0 -PODFILE CHECKSUM: 61b6726442abda57851554ace7951222138702d8 +PODFILE CHECKSUM: d63a72b67ffe3d56fc96cf55c609f8a4ffbec302 COCOAPODS: 1.8.4 diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift new file mode 100644 index 000000000000..9aea0281b506 --- /dev/null +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -0,0 +1,122 @@ +import Foundation +import UIKit + +public class GutenbergMentionsViewController: UIViewController { + + public lazy var searchView: UITextField = { + let textField = UITextField(frame: CGRect.zero) + textField.placeholder = "Search users..." + textField.text = "@" + textField.clearButtonMode = .whileEditing + textField.translatesAutoresizingMaskIntoConstraints = false + textField.delegate = self + return textField + }() + + public lazy var suggestionsView: SuggestionsTableView = { + let suggestionsView = SuggestionsTableView() + suggestionsView.enabled = true + suggestionsView.showSuggestions(forWord: "@") + suggestionsView.suggestionsDelegate = self + suggestionsView.translatesAutoresizingMaskIntoConstraints = false + suggestionsView.siteID = siteID + suggestionsView.useTransparentHeader = true + return suggestionsView + }() + + deinit { + } + + private let siteID: NSNumber + public var onCompletion: ((Result) -> Void)? + + public init(siteID: NSNumber) { + self.siteID = siteID + super.init(nibName: nil, bundle: nil) + } + + public override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { + self.siteID = 0 + super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override public func viewDidLoad() { + view.translatesAutoresizingMaskIntoConstraints = false + view.backgroundColor = .clear + + let margin = CGFloat(10) + view.addSubview(searchView) + searchView.becomeFirstResponder() + NSLayoutConstraint.activate([ + searchView.leadingAnchor.constraint(equalTo: view.safeLeadingAnchor, constant: margin), + searchView.trailingAnchor.constraint(equalTo: view.safeTrailingAnchor, constant: -margin), + searchView.bottomAnchor.constraint(equalTo: view.safeBottomAnchor), + searchView.heightAnchor.constraint(equalToConstant: 44.0) + ]) + + view.addSubview(suggestionsView) + NSLayoutConstraint.activate([ + suggestionsView.leadingAnchor.constraint(equalTo: view.safeLeadingAnchor, constant: margin), + suggestionsView.trailingAnchor.constraint(equalTo: view.safeTrailingAnchor, constant: -margin), + suggestionsView.bottomAnchor.constraint(equalTo: searchView.topAnchor), + suggestionsView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), + ]) + + view.setNeedsUpdateConstraints() + } + + override public func viewDidAppear(_ animated: Bool) { + suggestionsView.showSuggestions(forWord: "@") + } +} + +extension GutenbergMentionsViewController: UITextFieldDelegate { + + public func textFieldDidEndEditing(_ textField: UITextField) { + guard let text = textField.text else { + return + } + suggestionsView.showSuggestions(forWord: text) + } + + public func textFieldShouldClear(_ textField: UITextField) -> Bool { + onCompletion?(.failure(NSError(domain:"Mention", code: 1, userInfo: nil))) + return true + } + + public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { + guard let nsString = textField.text as NSString? else { + return true + } + let searchWord = nsString.replacingCharacters(in: range, with: string) + if searchWord.hasPrefix("@") { + suggestionsView.showSuggestions(forWord: searchWord) + } else { + onCompletion?(.failure(NSError(domain:"Mention", code: 1, userInfo: nil))) + } + return true + } +} + +extension GutenbergMentionsViewController: SuggestionsTableViewDelegate { + + public func suggestionsTableView(_ suggestionsTableView: SuggestionsTableView, didSelectSuggestion suggestion: String?, forSearchText text: String) { + suggestionsTableView.showSuggestions(forWord: String()) + if let suggestion = suggestion { + onCompletion?(.success(suggestion)) + } + } + + public func suggestionsTableView(_ suggestionsTableView: SuggestionsTableView, didChangeTableBounds bounds: CGRect) { + + } + + public func suggestionsTableViewMaxDisplayedRows(_ suggestionsTableView: SuggestionsTableView) -> Int { + return 3 + } + +} diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift index cb96490fe411..81f6809cbf8e 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift @@ -251,6 +251,7 @@ class GutenbergViewController: UIViewController, PostEditor { } deinit { + tearDownKeyboardObservers() removeObservers(fromPost: post) gutenberg.invalidate() attachmentDelegate.cancelAllPendingMediaRequests() @@ -260,6 +261,7 @@ class GutenbergViewController: UIViewController, PostEditor { override func viewDidLoad() { super.viewDidLoad() + setupKeyboardObservers() WPFontManager.loadNotoFontFamily() createRevisionOfPost(loadAutosaveRevision: loadAutosaveRevision) setupGutenbergView() @@ -277,6 +279,35 @@ class GutenbergViewController: UIViewController, PostEditor { // MARK: - Functions + private var keyboardShowObserver: Any? + private var keyboardHideObserver: Any? + private var keyboardFrame = CGRect.zero + private var mentionsBottomConstraint: NSLayoutConstraint? + + private func setupKeyboardObservers() { + keyboardShowObserver = NotificationCenter.default.addObserver(forName: UIResponder.keyboardDidShowNotification, object: nil, queue: .main) { (notification) in + if let keyboardRect = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect { + self.keyboardFrame = keyboardRect + self.updateConstraintsToAvoidKeyboard(frame: keyboardRect) + } + } + keyboardHideObserver = NotificationCenter.default.addObserver(forName: UIResponder.keyboardDidShowNotification, object: nil, queue: .main) { (notification) in + if let keyboardRect = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect { + self.keyboardFrame = keyboardRect + self.updateConstraintsToAvoidKeyboard(frame: keyboardRect) + } + } + } + + private func tearDownKeyboardObservers() { + if let keyboardShowObserver = keyboardShowObserver { + NotificationCenter.default.removeObserver(keyboardShowObserver) + } + if let keyboardHideObserver = keyboardHideObserver { + NotificationCenter.default.removeObserver(keyboardHideObserver) + } + } + private func configureNavigationBar() { navigationController?.navigationBar.isTranslucent = false navigationController?.navigationBar.accessibilityIdentifier = "Gutenberg Editor Navigation Bar" @@ -605,6 +636,50 @@ extension GutenbergViewController: GutenbergBridgeDelegate { controller.modalPresentationStyle = .overCurrentContext self.present(controller, animated: true) } + + func updateConstraintsToAvoidKeyboard(frame: CGRect) { + keyboardFrame = frame + let blockToolbarSize = CGFloat(44.0) + guard let mentionsBottomConstraint = mentionsBottomConstraint else { + return + } + print("Keyboard height:\(frame.height) safe bottom:\(self.view.safeAreaInsets.bottom)") + if keyboardFrame.height < 5 { + mentionsBottomConstraint.constant = -blockToolbarSize - self.view.safeAreaInsets.bottom + } else if UIDevice.current.userInterfaceIdiom == .phone && keyboardFrame.height >= 5 && keyboardFrame.height < 100 { + mentionsBottomConstraint.constant = -self.keyboardFrame.height + } + else { + mentionsBottomConstraint.constant = -self.keyboardFrame.height - blockToolbarSize + } + } + + func gutenbergDidRequestMention(callback: @escaping (Swift.Result) -> Void) { + guard let siteID = self.post.blog.dotComID else { + callback(.failure(NSError(domain:"MentionError", code: 1, userInfo:nil))) + return + } + DispatchQueue.main.async { + let mentionsController = GutenbergMentionsViewController(siteID: siteID) + mentionsController.onCompletion = { (result) in + callback(result) + mentionsController.view.removeFromSuperview() + mentionsController.removeFromParent() + } + self.addChild(mentionsController) + self.view.addSubview(mentionsController.view) + let mentionsBottomConstraint = mentionsController.view.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant:0) + NSLayoutConstraint.activate([ + mentionsController.view.leadingAnchor.constraint(equalTo: self.view.safeLeadingAnchor, constant: 0), + mentionsController.view.trailingAnchor.constraint(equalTo: self.view.safeTrailingAnchor, constant: 0), + mentionsBottomConstraint, + mentionsController.view.topAnchor.constraint(equalTo: self.view.safeTopAnchor) + ]) + self.mentionsBottomConstraint = mentionsBottomConstraint + self.updateConstraintsToAvoidKeyboard(frame: self.keyboardFrame) + mentionsController.didMove(toParent: self) + } + } } // MARK: - GutenbergBridgeDataSource diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index e3477b3fb531..5fa1dc0aa91d 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -2157,6 +2157,7 @@ FF37F90922385CA000AFA3DB /* RELEASE-NOTES.txt in Resources */ = {isa = PBXBuildFile; fileRef = FF37F90822385C9F00AFA3DB /* RELEASE-NOTES.txt */; }; FF4258501BA092EE00580C68 /* RelatedPostsSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FF42584F1BA092EE00580C68 /* RelatedPostsSettingsViewController.m */; }; FF4C069F206560E500E0B2BC /* MediaThumbnailCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4C069E206560E500E0B2BC /* MediaThumbnailCoordinator.swift */; }; + FF4DEAD62448FFC900ACA032 /* GutenbergMentionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4DEAD52448FFC900ACA032 /* GutenbergMentionsViewController.swift */; }; FF5371631FDFF64F00619A3F /* MediaService.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF5371621FDFF64F00619A3F /* MediaService.swift */; }; FF54D4641D6F3FA900A0DC4D /* GutenbergSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF54D4631D6F3FA900A0DC4D /* GutenbergSettings.swift */; }; FF619DD51C75246900903B65 /* CLPlacemark+Formatting.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF619DD41C75246900903B65 /* CLPlacemark+Formatting.swift */; }; @@ -4723,6 +4724,7 @@ FF42584E1BA092EE00580C68 /* RelatedPostsSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RelatedPostsSettingsViewController.h; sourceTree = ""; }; FF42584F1BA092EE00580C68 /* RelatedPostsSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RelatedPostsSettingsViewController.m; sourceTree = ""; }; FF4C069E206560E500E0B2BC /* MediaThumbnailCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaThumbnailCoordinator.swift; sourceTree = ""; }; + FF4DEAD52448FFC900ACA032 /* GutenbergMentionsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GutenbergMentionsViewController.swift; sourceTree = ""; }; FF5371621FDFF64F00619A3F /* MediaService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaService.swift; sourceTree = ""; }; FF54D4631D6F3FA900A0DC4D /* GutenbergSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GutenbergSettings.swift; sourceTree = ""; }; FF619DD41C75246900903B65 /* CLPlacemark+Formatting.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CLPlacemark+Formatting.swift"; sourceTree = ""; }; @@ -7043,6 +7045,7 @@ 912347182213484300BD9F97 /* GutenbergViewController+InformativeDialog.swift */, 912347752216E27200BD9F97 /* GutenbergViewController+Localization.swift */, FFC02B82222687BF00E64FDE /* GutenbergImageLoader.swift */, + FF4DEAD52448FFC900ACA032 /* GutenbergMentionsViewController.swift */, 7E407122237163C3003627FA /* Utils */, ); path = Gutenberg; @@ -12044,6 +12047,7 @@ B54346961C6A707D0010B3AD /* LanguageViewController.swift in Sources */, 43D74AD020F906EE004AD934 /* InlineEditableNameValueCell.swift in Sources */, 4089C51122371B120031CE78 /* TodayStatsRecordValue+CoreDataProperties.swift in Sources */, + FF4DEAD62448FFC900ACA032 /* GutenbergMentionsViewController.swift in Sources */, F928EDA3226140620030D451 /* WPCrashLoggingProvider.swift in Sources */, D8A3A5B3206A49BF00992576 /* StockPhotosMedia.swift in Sources */, 176BB87F20D0068500751DCE /* FancyAlertViewController+SavedPosts.swift in Sources */, From 22300e0fa981d93b29ef1ded3174f571ebc76f7d Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Fri, 17 Apr 2020 17:35:22 +0100 Subject: [PATCH 02/40] Fix reload of suggestions to remember current search. --- .../Classes/ViewRelated/Suggestions/SuggestionsTableView.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m index c232a6c76dd7..171fb6204f56 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m @@ -302,7 +302,8 @@ - (void)suggestionListUpdated:(NSNotification *)notification // only reload if the suggestion list is updated for the current site if (self.siteID && [notification.object isEqualToNumber:self.siteID]) { self.suggestions = [[SuggestionService sharedInstance] suggestionsForSiteID:self.siteID]; - [self showSuggestionsForWord:self.searchText]; + NSString * text = [NSString stringWithFormat:@"@%@", self.searchText]; + [self showSuggestionsForWord:text]; } } From b97105355b2a4c64e4f72a7e399c72f8ea3b6e8f Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Fri, 17 Apr 2020 17:59:55 +0100 Subject: [PATCH 03/40] Make text field overlap block toolbar. --- .../Gutenberg/GutenbergMentionsViewController.swift | 1 + .../Gutenberg/GutenbergViewController.swift | 12 +++++------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index 9aea0281b506..1c00b4e86d9e 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -10,6 +10,7 @@ public class GutenbergMentionsViewController: UIViewController { textField.clearButtonMode = .whileEditing textField.translatesAutoresizingMaskIntoConstraints = false textField.delegate = self + textField.backgroundColor = UIColor.basicBackground return textField }() diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift index 81f6809cbf8e..def90c689c34 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift @@ -639,21 +639,19 @@ extension GutenbergViewController: GutenbergBridgeDelegate { func updateConstraintsToAvoidKeyboard(frame: CGRect) { keyboardFrame = frame - let blockToolbarSize = CGFloat(44.0) + let minimumKeyboardHeight = CGFloat(100) guard let mentionsBottomConstraint = mentionsBottomConstraint else { return } print("Keyboard height:\(frame.height) safe bottom:\(self.view.safeAreaInsets.bottom)") - if keyboardFrame.height < 5 { - mentionsBottomConstraint.constant = -blockToolbarSize - self.view.safeAreaInsets.bottom - } else if UIDevice.current.userInterfaceIdiom == .phone && keyboardFrame.height >= 5 && keyboardFrame.height < 100 { - mentionsBottomConstraint.constant = -self.keyboardFrame.height + if keyboardFrame.height < minimumKeyboardHeight { + mentionsBottomConstraint.constant = -self.view.safeAreaInsets.bottom } else { - mentionsBottomConstraint.constant = -self.keyboardFrame.height - blockToolbarSize + mentionsBottomConstraint.constant = -self.keyboardFrame.height } } - + func gutenbergDidRequestMention(callback: @escaping (Swift.Result) -> Void) { guard let siteID = self.post.blog.dotComID else { callback(.failure(NSError(domain:"MentionError", code: 1, userInfo:nil))) From eeab8945613fdc937a2fa653499cc63f29b9b001 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Fri, 17 Apr 2020 18:00:17 +0100 Subject: [PATCH 04/40] Reactive block text view after mention is done. --- .../ViewRelated/Gutenberg/GutenbergViewController.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift index def90c689c34..f312818a1607 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift @@ -283,6 +283,7 @@ class GutenbergViewController: UIViewController, PostEditor { private var keyboardHideObserver: Any? private var keyboardFrame = CGRect.zero private var mentionsBottomConstraint: NSLayoutConstraint? + private var previousFirstResponder: UIView? private func setupKeyboardObservers() { keyboardShowObserver = NotificationCenter.default.addObserver(forName: UIResponder.keyboardDidShowNotification, object: nil, queue: .main) { (notification) in @@ -658,11 +659,15 @@ extension GutenbergViewController: GutenbergBridgeDelegate { return } DispatchQueue.main.async { + self.previousFirstResponder = self.view.findFirstResponder() let mentionsController = GutenbergMentionsViewController(siteID: siteID) mentionsController.onCompletion = { (result) in callback(result) mentionsController.view.removeFromSuperview() mentionsController.removeFromParent() + if let previousFirstResponder = self.previousFirstResponder { + previousFirstResponder.becomeFirstResponder() + } } self.addChild(mentionsController) self.view.addSubview(mentionsController.view) From d8bcfc43067a41e110f86ebe6fcca16ee1216a32 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Fri, 17 Apr 2020 18:06:36 +0100 Subject: [PATCH 05/40] Refactor code to separate function when dispatching to main thread. --- .../Gutenberg/GutenbergViewController.swift | 55 ++++++++++--------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift index f312818a1607..6c876e87c7d1 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift @@ -652,36 +652,41 @@ extension GutenbergViewController: GutenbergBridgeDelegate { mentionsBottomConstraint.constant = -self.keyboardFrame.height } } - - func gutenbergDidRequestMention(callback: @escaping (Swift.Result) -> Void) { - guard let siteID = self.post.blog.dotComID else { + + private func mentionShow(callback: @escaping (Swift.Result) -> Void) { + guard let siteID = post.blog.dotComID else { callback(.failure(NSError(domain:"MentionError", code: 1, userInfo:nil))) return } - DispatchQueue.main.async { - self.previousFirstResponder = self.view.findFirstResponder() - let mentionsController = GutenbergMentionsViewController(siteID: siteID) - mentionsController.onCompletion = { (result) in - callback(result) - mentionsController.view.removeFromSuperview() - mentionsController.removeFromParent() - if let previousFirstResponder = self.previousFirstResponder { - previousFirstResponder.becomeFirstResponder() - } + + previousFirstResponder = view.findFirstResponder() + let mentionsController = GutenbergMentionsViewController(siteID: siteID) + mentionsController.onCompletion = { (result) in + callback(result) + mentionsController.view.removeFromSuperview() + mentionsController.removeFromParent() + if let previousFirstResponder = self.previousFirstResponder { + previousFirstResponder.becomeFirstResponder() } - self.addChild(mentionsController) - self.view.addSubview(mentionsController.view) - let mentionsBottomConstraint = mentionsController.view.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant:0) - NSLayoutConstraint.activate([ - mentionsController.view.leadingAnchor.constraint(equalTo: self.view.safeLeadingAnchor, constant: 0), - mentionsController.view.trailingAnchor.constraint(equalTo: self.view.safeTrailingAnchor, constant: 0), - mentionsBottomConstraint, - mentionsController.view.topAnchor.constraint(equalTo: self.view.safeTopAnchor) - ]) - self.mentionsBottomConstraint = mentionsBottomConstraint - self.updateConstraintsToAvoidKeyboard(frame: self.keyboardFrame) - mentionsController.didMove(toParent: self) } + addChild(mentionsController) + view.addSubview(mentionsController.view) + let mentionsBottomConstraint = mentionsController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant:0) + NSLayoutConstraint.activate([ + mentionsController.view.leadingAnchor.constraint(equalTo: view.safeLeadingAnchor, constant: 0), + mentionsController.view.trailingAnchor.constraint(equalTo: view.safeTrailingAnchor, constant: 0), + mentionsBottomConstraint, + mentionsController.view.topAnchor.constraint(equalTo: view.safeTopAnchor) + ]) + self.mentionsBottomConstraint = mentionsBottomConstraint + updateConstraintsToAvoidKeyboard(frame: keyboardFrame) + mentionsController.didMove(toParent: self) + } + + func gutenbergDidRequestMention(callback: @escaping (Swift.Result) -> Void) { + DispatchQueue.main.async(execute: { [weak self] in + self?.mentionShow(callback: callback) + }) } } From a0295808b31371a603a6f2c31d3f01278eeb679f Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Fri, 17 Apr 2020 18:41:13 +0100 Subject: [PATCH 06/40] Do a full width overlap view for search bar. --- .../GutenbergMentionsViewController.swift | 20 ++++++++++++++++--- .../Gutenberg/GutenbergViewController.swift | 4 ++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index 1c00b4e86d9e..f71fdf332f3a 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -3,14 +3,20 @@ import UIKit public class GutenbergMentionsViewController: UIViewController { + public lazy var backgroundView: UIView = { + let view = UIView(frame: .zero) + view.backgroundColor = .basicBackground + view.translatesAutoresizingMaskIntoConstraints = false + return view + }() + public lazy var searchView: UITextField = { let textField = UITextField(frame: CGRect.zero) textField.placeholder = "Search users..." textField.text = "@" textField.clearButtonMode = .whileEditing textField.translatesAutoresizingMaskIntoConstraints = false - textField.delegate = self - textField.backgroundColor = UIColor.basicBackground + textField.delegate = self return textField }() @@ -49,6 +55,14 @@ public class GutenbergMentionsViewController: UIViewController { view.translatesAutoresizingMaskIntoConstraints = false view.backgroundColor = .clear + view.addSubview(backgroundView) + NSLayoutConstraint.activate([ + backgroundView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + backgroundView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + backgroundView.bottomAnchor.constraint(equalTo: view.safeBottomAnchor), + backgroundView.heightAnchor.constraint(equalToConstant: 50.0) + ]) + let margin = CGFloat(10) view.addSubview(searchView) searchView.becomeFirstResponder() @@ -56,7 +70,7 @@ public class GutenbergMentionsViewController: UIViewController { searchView.leadingAnchor.constraint(equalTo: view.safeLeadingAnchor, constant: margin), searchView.trailingAnchor.constraint(equalTo: view.safeTrailingAnchor, constant: -margin), searchView.bottomAnchor.constraint(equalTo: view.safeBottomAnchor), - searchView.heightAnchor.constraint(equalToConstant: 44.0) + searchView.heightAnchor.constraint(equalToConstant: 50.0) ]) view.addSubview(suggestionsView) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift index 6c876e87c7d1..58e7f4f29bfd 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift @@ -640,11 +640,11 @@ extension GutenbergViewController: GutenbergBridgeDelegate { func updateConstraintsToAvoidKeyboard(frame: CGRect) { keyboardFrame = frame - let minimumKeyboardHeight = CGFloat(100) + let minimumKeyboardHeight = CGFloat(50) guard let mentionsBottomConstraint = mentionsBottomConstraint else { return } - print("Keyboard height:\(frame.height) safe bottom:\(self.view.safeAreaInsets.bottom)") + if keyboardFrame.height < minimumKeyboardHeight { mentionsBottomConstraint.constant = -self.view.safeAreaInsets.bottom } From 2d7ac2995e0533576ad2b669b679989087d8de1b Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Sat, 18 Apr 2020 15:58:55 +0100 Subject: [PATCH 07/40] Update release notes for mentions. --- RELEASE-NOTES.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 60563abe3418..89746da2650d 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,3 +1,7 @@ +14.8 +----- +* Block Editor: Mentions insertion are now available for WP.com and Jetpack sites. + 14.7 ----- * Classic Editor: Fixed action sheet position for additional Media sources picker on iPad From 9a737008c89c78a9929082365e87a5da3235b153 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Sat, 18 Apr 2020 16:33:04 +0100 Subject: [PATCH 08/40] Fix lint errors --- .../Gutenberg/GutenbergMentionsViewController.swift | 9 ++++++--- .../ViewRelated/Gutenberg/GutenbergViewController.swift | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index f71fdf332f3a..6a819bce9398 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -16,7 +16,7 @@ public class GutenbergMentionsViewController: UIViewController { textField.text = "@" textField.clearButtonMode = .whileEditing textField.translatesAutoresizingMaskIntoConstraints = false - textField.delegate = self + textField.delegate = self return textField }() @@ -99,7 +99,7 @@ extension GutenbergMentionsViewController: UITextFieldDelegate { } public func textFieldShouldClear(_ textField: UITextField) -> Bool { - onCompletion?(.failure(NSError(domain:"Mention", code: 1, userInfo: nil))) + onCompletion?(.failure(NSError(domain: "Mention", code: 1, userInfo: nil))) return true } @@ -111,7 +111,10 @@ extension GutenbergMentionsViewController: UITextFieldDelegate { if searchWord.hasPrefix("@") { suggestionsView.showSuggestions(forWord: searchWord) } else { - onCompletion?(.failure(NSError(domain:"Mention", code: 1, userInfo: nil))) + onCompletion?(.failure(NSError(domain: "Mention", code: 1, userInfo: nil))) + } + return true + } } return true } diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift index 58e7f4f29bfd..5418c6e46eb8 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift @@ -655,7 +655,7 @@ extension GutenbergViewController: GutenbergBridgeDelegate { private func mentionShow(callback: @escaping (Swift.Result) -> Void) { guard let siteID = post.blog.dotComID else { - callback(.failure(NSError(domain:"MentionError", code: 1, userInfo:nil))) + callback(.failure(NSError(domain: "MentionError", code: 1, userInfo: nil))) return } @@ -671,7 +671,7 @@ extension GutenbergViewController: GutenbergBridgeDelegate { } addChild(mentionsController) view.addSubview(mentionsController.view) - let mentionsBottomConstraint = mentionsController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant:0) + let mentionsBottomConstraint = mentionsController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0) NSLayoutConstraint.activate([ mentionsController.view.leadingAnchor.constraint(equalTo: view.safeLeadingAnchor, constant: 0), mentionsController.view.trailingAnchor.constraint(equalTo: view.safeTrailingAnchor, constant: 0), From 1d486aa80003f6b19bbeb7bc64aa189b98dcb312 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Sat, 18 Apr 2020 16:34:01 +0100 Subject: [PATCH 09/40] Insert suggestions on return if only one is available. --- .../Gutenberg/GutenbergMentionsViewController.swift | 4 ++++ .../ViewRelated/Suggestions/SuggestionsTableView.h | 5 +++++ .../ViewRelated/Suggestions/SuggestionsTableView.m | 12 ++++++++++++ 3 files changed, 21 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index 6a819bce9398..c175cbbd3686 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -115,6 +115,10 @@ extension GutenbergMentionsViewController: UITextFieldDelegate { } return true } + + public func textFieldShouldReturn(_ textField: UITextField) -> Bool { + if suggestionsView.numberOfSuggestions() == 1 { + suggestionsView.selectSuggestion(atPosition: 0) } return true } diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h index 028e66bac8eb..f388f4c8a2ec 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h @@ -27,6 +27,11 @@ - (BOOL)showSuggestionsForWord:(nonnull NSString *)word; - (void)hideSuggestions; + +- (NSInteger)numberOfSuggestions; + +- (void)selectSuggestionAtPosition:(NSInteger)position; + @end @protocol SuggestionsTableViewDelegate diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m index 171fb6204f56..bc6571e62c82 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m @@ -233,6 +233,18 @@ - (void)hideSuggestions [self showSuggestionsForWord:@""]; } +- (NSInteger)numberOfSuggestions { + return self.suggestions.count; +} + +- (void)selectSuggestionAtPosition:(NSInteger)position { + if ([self.suggestions count] == 0) { + return; + } + [self tableView:self.tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:position inSection:0]]; +} + + #pragma mark - UITableViewDataSource methods - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView From 6ba77c2f67cf0040e03d313a5ee5a1068c7e1052 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Sat, 18 Apr 2020 16:43:16 +0100 Subject: [PATCH 10/40] Update project packages --- WordPress/WordPress.xcodeproj/project.pbxproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 5fa1dc0aa91d..f61bf17a95e4 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -1026,9 +1026,7 @@ 83418AAA11C9FA6E00ACF00C /* Comment.m in Sources */ = {isa = PBXBuildFile; fileRef = 83418AA911C9FA6E00ACF00C /* Comment.m */; }; 834CE7341256D0DE0046A4A3 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 834CE7331256D0DE0046A4A3 /* CFNetwork.framework */; }; 8350E49611D2C71E00A7B073 /* Media.m in Sources */ = {isa = PBXBuildFile; fileRef = 8350E49511D2C71E00A7B073 /* Media.m */; }; - 8355D67E11D13EAD00A61362 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8355D67D11D13EAD00A61362 /* MobileCoreServices.framework */; }; 8355D7D911D260AA00A61362 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8355D7D811D260AA00A61362 /* CoreData.framework */; }; - 835E2403126E66E50085940B /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 835E2402126E66E50085940B /* AssetsLibrary.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 8370D10A11FA499A009D650F /* WPTableViewActivityCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8370D10911FA499A009D650F /* WPTableViewActivityCell.m */; }; 83F3E26011275E07004CD686 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83F3E25F11275E07004CD686 /* MapKit.framework */; }; 83F3E2D311276371004CD686 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83F3E2D211276371004CD686 /* CoreLocation.framework */; }; @@ -2158,6 +2156,7 @@ FF4258501BA092EE00580C68 /* RelatedPostsSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FF42584F1BA092EE00580C68 /* RelatedPostsSettingsViewController.m */; }; FF4C069F206560E500E0B2BC /* MediaThumbnailCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4C069E206560E500E0B2BC /* MediaThumbnailCoordinator.swift */; }; FF4DEAD62448FFC900ACA032 /* GutenbergMentionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4DEAD52448FFC900ACA032 /* GutenbergMentionsViewController.swift */; }; + FF4DEAD8244B56E300ACA032 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FF4DEAD7244B56E200ACA032 /* CoreServices.framework */; }; FF5371631FDFF64F00619A3F /* MediaService.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF5371621FDFF64F00619A3F /* MediaService.swift */; }; FF54D4641D6F3FA900A0DC4D /* GutenbergSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF54D4631D6F3FA900A0DC4D /* GutenbergSettings.swift */; }; FF619DD51C75246900903B65 /* CLPlacemark+Formatting.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF619DD41C75246900903B65 /* CLPlacemark+Formatting.swift */; }; @@ -4725,6 +4724,7 @@ FF42584F1BA092EE00580C68 /* RelatedPostsSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RelatedPostsSettingsViewController.m; sourceTree = ""; }; FF4C069E206560E500E0B2BC /* MediaThumbnailCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaThumbnailCoordinator.swift; sourceTree = ""; }; FF4DEAD52448FFC900ACA032 /* GutenbergMentionsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GutenbergMentionsViewController.swift; sourceTree = ""; }; + FF4DEAD7244B56E200ACA032 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = System/Library/Frameworks/CoreServices.framework; sourceTree = SDKROOT; }; FF5371621FDFF64F00619A3F /* MediaService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaService.swift; sourceTree = ""; }; FF54D4631D6F3FA900A0DC4D /* GutenbergSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GutenbergSettings.swift; sourceTree = ""; }; FF619DD41C75246900903B65 /* CLPlacemark+Formatting.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CLPlacemark+Formatting.swift"; sourceTree = ""; }; @@ -4800,7 +4800,6 @@ FF75933B1BE2423800814D3B /* Photos.framework in Frameworks */, 93E5285619A77BAC003A1A9C /* NotificationCenter.framework in Frameworks */, 93A3F7DE1843F6F00082FEEA /* CoreTelephony.framework in Frameworks */, - 8355D67E11D13EAD00A61362 /* MobileCoreServices.framework in Frameworks */, A01C542E0E24E88400D411F2 /* SystemConfiguration.framework in Frameworks */, 374CB16215B93C0800DD0EBC /* AudioToolbox.framework in Frameworks */, E10B3655158F2D7800419A93 /* CoreGraphics.framework in Frameworks */, @@ -4815,7 +4814,6 @@ 83F3E2D311276371004CD686 /* CoreLocation.framework in Frameworks */, 8355D7D911D260AA00A61362 /* CoreData.framework in Frameworks */, 834CE7341256D0DE0046A4A3 /* CFNetwork.framework in Frameworks */, - 835E2403126E66E50085940B /* AssetsLibrary.framework in Frameworks */, 83043E55126FA31400EC9953 /* MessageUI.framework in Frameworks */, FD3D6D2C1349F5D30061136A /* ImageIO.framework in Frameworks */, B5AA54D51A8E7510003BDD12 /* WebKit.framework in Frameworks */, @@ -4824,6 +4822,7 @@ FD21397F13128C5300099582 /* libiconv.dylib in Frameworks */, E19DF741141F7BDD000002F3 /* libz.dylib in Frameworks */, 1D36FCB53C05724865D41F7A /* Pods_WordPress.framework in Frameworks */, + FF4DEAD8244B56E300ACA032 /* CoreServices.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -5494,6 +5493,7 @@ 29B97323FDCFA39411CA2CEA /* Frameworks */ = { isa = PBXGroup; children = ( + FF4DEAD7244B56E200ACA032 /* CoreServices.framework */, 9884B145236225230021D8E9 /* WordPressUI.framework */, 9884B143236224F80021D8E9 /* WordPressUI.framework */, 98E58A432361019300E5534B /* Pods_WordPressTodayWidget.framework */, From c8f9f96e33b76b17dd502f81c1aad2ff4a86e7e2 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Sat, 18 Apr 2020 16:45:09 +0100 Subject: [PATCH 11/40] Refactor mention trigger string to a constant --- .../Gutenberg/GutenbergMentionsViewController.swift | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index c175cbbd3686..92e9f1a9a871 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -3,6 +3,8 @@ import UIKit public class GutenbergMentionsViewController: UIViewController { + static let mentionTriggerText = String("@") + public lazy var backgroundView: UIView = { let view = UIView(frame: .zero) view.backgroundColor = .basicBackground @@ -13,7 +15,7 @@ public class GutenbergMentionsViewController: UIViewController { public lazy var searchView: UITextField = { let textField = UITextField(frame: CGRect.zero) textField.placeholder = "Search users..." - textField.text = "@" + textField.text = Self.mentionTriggerText textField.clearButtonMode = .whileEditing textField.translatesAutoresizingMaskIntoConstraints = false textField.delegate = self @@ -23,7 +25,7 @@ public class GutenbergMentionsViewController: UIViewController { public lazy var suggestionsView: SuggestionsTableView = { let suggestionsView = SuggestionsTableView() suggestionsView.enabled = true - suggestionsView.showSuggestions(forWord: "@") + suggestionsView.showSuggestions(forWord: Self.mentionTriggerText) suggestionsView.suggestionsDelegate = self suggestionsView.translatesAutoresizingMaskIntoConstraints = false suggestionsView.siteID = siteID @@ -85,7 +87,7 @@ public class GutenbergMentionsViewController: UIViewController { } override public func viewDidAppear(_ animated: Bool) { - suggestionsView.showSuggestions(forWord: "@") + suggestionsView.showSuggestions(forWord: Self.mentionTriggerText) } } @@ -108,7 +110,7 @@ extension GutenbergMentionsViewController: UITextFieldDelegate { return true } let searchWord = nsString.replacingCharacters(in: range, with: string) - if searchWord.hasPrefix("@") { + if searchWord.hasPrefix(Self.mentionTriggerText) { suggestionsView.showSuggestions(forWord: searchWord) } else { onCompletion?(.failure(NSError(domain: "Mention", code: 1, userInfo: nil))) From 1f3c3b4d3a5f6439c5432a16aba38a1bfc3b0545 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Sat, 18 Apr 2020 16:50:43 +0100 Subject: [PATCH 12/40] Refactor error building for mention cancelation. --- .../Gutenberg/GutenbergMentionsViewController.swift | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index 92e9f1a9a871..3d540b0537f4 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -101,7 +101,7 @@ extension GutenbergMentionsViewController: UITextFieldDelegate { } public func textFieldShouldClear(_ textField: UITextField) -> Bool { - onCompletion?(.failure(NSError(domain: "Mention", code: 1, userInfo: nil))) + onCompletion?(.failure(buildErrorForCancelation())) return true } @@ -113,7 +113,7 @@ extension GutenbergMentionsViewController: UITextFieldDelegate { if searchWord.hasPrefix(Self.mentionTriggerText) { suggestionsView.showSuggestions(forWord: searchWord) } else { - onCompletion?(.failure(NSError(domain: "Mention", code: 1, userInfo: nil))) + onCompletion?(.failure(buildErrorForCancelation())) } return true } @@ -144,3 +144,10 @@ extension GutenbergMentionsViewController: SuggestionsTableViewDelegate { } } + +extension GutenbergMentionsViewController { + + private func buildErrorForCancelation() -> NSError { + return NSError(domain: "MentionErrorDomain", code:1, userInfo: nil); + } +} From 4ca0e3b738bee8bbf758bb35f9915fde2100d409 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Sat, 18 Apr 2020 16:51:00 +0100 Subject: [PATCH 13/40] Localize placeholder for mentions. --- .../ViewRelated/Gutenberg/GutenbergMentionsViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index 3d540b0537f4..e10a33b8a3cd 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -14,7 +14,7 @@ public class GutenbergMentionsViewController: UIViewController { public lazy var searchView: UITextField = { let textField = UITextField(frame: CGRect.zero) - textField.placeholder = "Search users..." + textField.placeholder = NSLocalizedString("Search users...", comment: "Placeholder message when showing mentions search field") textField.text = Self.mentionTriggerText textField.clearButtonMode = .whileEditing textField.translatesAutoresizingMaskIntoConstraints = false From 5bbf34f2a35dee500912b3096e5e64b11173f916 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Sat, 18 Apr 2020 17:22:33 +0100 Subject: [PATCH 14/40] Refactor error handling to specific mention error type. --- .../GutenbergMentionsViewController.swift | 25 ++++++++++++++++--- .../Gutenberg/GutenbergViewController.swift | 18 ++++++++----- 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index e10a33b8a3cd..3949defd3ca5 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -33,9 +33,6 @@ public class GutenbergMentionsViewController: UIViewController { return suggestionsView }() - deinit { - } - private let siteID: NSNumber public var onCompletion: ((Result) -> Void)? @@ -147,7 +144,27 @@ extension GutenbergMentionsViewController: SuggestionsTableViewDelegate { extension GutenbergMentionsViewController { + enum MentionError: CustomNSError { + case canceled + case notAvailable + + static var errorDomain: String = "MentionErrorDomain" + + var errorCode: Int { + switch self { + case .canceled: + return 1 + case .notAvailable: + return 2 + } + } + + var errorUserInfo: [String: Any] { + return [:] + } + } + private func buildErrorForCancelation() -> NSError { - return NSError(domain: "MentionErrorDomain", code:1, userInfo: nil); + return MentionError.canceled as NSError } } diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift index 5418c6e46eb8..5bf62e2e89e8 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift @@ -653,9 +653,20 @@ extension GutenbergViewController: GutenbergBridgeDelegate { } } + func gutenbergDidRequestMention(callback: @escaping (Swift.Result) -> Void) { + DispatchQueue.main.async(execute: { [weak self] in + self?.mentionShow(callback: callback) + }) + } +} + +// MARK: - Mention implementation + +extension GutenbergViewController { + private func mentionShow(callback: @escaping (Swift.Result) -> Void) { guard let siteID = post.blog.dotComID else { - callback(.failure(NSError(domain: "MentionError", code: 1, userInfo: nil))) + callback(.failure(GutenbergMentionsViewController.MentionError.notAvailable as NSError)) return } @@ -683,11 +694,6 @@ extension GutenbergViewController: GutenbergBridgeDelegate { mentionsController.didMove(toParent: self) } - func gutenbergDidRequestMention(callback: @escaping (Swift.Result) -> Void) { - DispatchQueue.main.async(execute: { [weak self] in - self?.mentionShow(callback: callback) - }) - } } // MARK: - GutenbergBridgeDataSource From 3274249270ebf81abde19e63fd0ad5b005c2ff32 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Tue, 21 Apr 2020 22:08:01 +0100 Subject: [PATCH 15/40] Remove unnecessary code. --- .../Gutenberg/GutenbergMentionsViewController.swift | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index 3949defd3ca5..736122a4a4b2 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -41,11 +41,6 @@ public class GutenbergMentionsViewController: UIViewController { super.init(nibName: nil, bundle: nil) } - public override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { - self.siteID = 0 - super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) - } - required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } @@ -90,13 +85,6 @@ public class GutenbergMentionsViewController: UIViewController { extension GutenbergMentionsViewController: UITextFieldDelegate { - public func textFieldDidEndEditing(_ textField: UITextField) { - guard let text = textField.text else { - return - } - suggestionsView.showSuggestions(forWord: text) - } - public func textFieldShouldClear(_ textField: UITextField) -> Bool { onCompletion?(.failure(buildErrorForCancelation())) return true @@ -126,7 +114,6 @@ extension GutenbergMentionsViewController: UITextFieldDelegate { extension GutenbergMentionsViewController: SuggestionsTableViewDelegate { public func suggestionsTableView(_ suggestionsTableView: SuggestionsTableView, didSelectSuggestion suggestion: String?, forSearchText text: String) { - suggestionsTableView.showSuggestions(forWord: String()) if let suggestion = suggestion { onCompletion?(.success(suggestion)) } From c464f5e80e68cd266efb7ec15ee76124a85e675a Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Tue, 21 Apr 2020 22:11:58 +0100 Subject: [PATCH 16/40] Use the correct array for suggestions counting. --- .../Classes/ViewRelated/Suggestions/SuggestionsTableView.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m index bc6571e62c82..8c5463a76446 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m @@ -234,7 +234,7 @@ - (void)hideSuggestions } - (NSInteger)numberOfSuggestions { - return self.suggestions.count; + return self.searchResults.count; } - (void)selectSuggestionAtPosition:(NSInteger)position { From 49938fbbd1507b126ff7474fae70563d62e9fff0 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Tue, 21 Apr 2020 22:13:50 +0100 Subject: [PATCH 17/40] Add comment to explain the keyboard size issues. --- .../Classes/ViewRelated/Gutenberg/GutenbergViewController.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift index 5bf62e2e89e8..3d49646c6669 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift @@ -645,6 +645,8 @@ extension GutenbergViewController: GutenbergBridgeDelegate { return } + // There are cases where the keyboard is not visible, but the system instead of returning zero, returns a low number, for example: 0, 3, 69. + // So in those scenarios, we just need to take in account the safe area and ignore the keyboard all together. if keyboardFrame.height < minimumKeyboardHeight { mentionsBottomConstraint.constant = -self.view.safeAreaInsets.bottom } From 0eca5a2372b4f10b1d051b660307a0b60fcc3029 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Wed, 22 Apr 2020 00:00:48 +0100 Subject: [PATCH 18/40] Update GB reference. --- Podfile | 2 +- Podfile.lock | 146 +++++++++++++++++++++++++-------------------------- 2 files changed, 74 insertions(+), 74 deletions(-) diff --git a/Podfile b/Podfile index 4bf9346c75f4..550ff8660ee1 100644 --- a/Podfile +++ b/Podfile @@ -149,7 +149,7 @@ target 'WordPress' do ## Gutenberg (React Native) ## ===================== ## - gutenberg :commit => 'ce88a8ae7052c3fff3292ee2b6382750c90fe7ee' + gutenberg :commit => '58d372e11584e49b95c62109c1d694e85abca9ae' ## Third party libraries ## ===================== diff --git a/Podfile.lock b/Podfile.lock index ce37228aac5d..f61620cb21e0 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -67,7 +67,7 @@ PODS: - "GoogleToolboxForMac/NSString+URLArguments (2.2.2)" - Gridicons (1.0.1) - GTMSessionFetcher/Core (1.3.1) - - Gutenberg (1.25.0): + - Gutenberg (1.26.0): - React (= 0.61.5) - React-CoreModules (= 0.61.5) - React-RCTImage (= 0.61.5) @@ -361,7 +361,7 @@ PODS: - React - RNSVG (9.13.6-gb): - React - - RNTAztecView (1.25.0): + - RNTAztecView (1.26.0): - React-Core - WordPress-Aztec-iOS (~> 1.17.1) - Sentry (4.5.0): @@ -429,15 +429,15 @@ DEPENDENCIES: - Charts (~> 3.2.2) - CocoaLumberjack (= 3.5.2) - Down (~> 0.6.6) - - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json`) - - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json`) - - Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json`) + - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json`) + - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json`) + - Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json`) - FormatterKit/TimeIntervalFormatter (= 1.8.2) - FSInteractiveMap (from `https://github.com/wordpress-mobile/FSInteractiveMap.git`, tag `0.2.0`) - Gifu (= 3.2.0) - - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json`) + - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json`) - Gridicons (~> 1.0.1) - - Gutenberg (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `ce88a8ae7052c3fff3292ee2b6382750c90fe7ee`) + - Gutenberg (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `58d372e11584e49b95c62109c1d694e85abca9ae`) - JTAppleCalendar (~> 8.0.2) - MediaEditor (~> 1.0.1) - MRProgress (= 0.8.3) @@ -447,34 +447,34 @@ DEPENDENCIES: - OCMock (= 3.4.3) - OHHTTPStubs (= 6.1.0) - OHHTTPStubs/Swift (= 6.1.0) - - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json`) - - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json`) + - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json`) + - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json`) - Reachability (= 3.2) - - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json`) - - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json`) - - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json`) - - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json`) - - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json`) - - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json`) - - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json`) - - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) - - react-native-linear-gradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json`) - - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json`) - - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json`) - - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json`) - - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json`) - - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json`) - - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json`) - - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json`) - - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json`) - - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json`) - - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json`) - - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json`) - - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json`) - - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json`) - - ReactNativeDarkMode (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json`) - - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json`) - - RNTAztecView (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `ce88a8ae7052c3fff3292ee2b6382750c90fe7ee`) + - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json`) + - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json`) + - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json`) + - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json`) + - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json`) + - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json`) + - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json`) + - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) + - react-native-linear-gradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json`) + - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json`) + - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json`) + - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json`) + - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json`) + - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json`) + - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json`) + - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json`) + - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json`) + - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json`) + - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json`) + - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json`) + - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json`) + - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json`) + - ReactNativeDarkMode (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json`) + - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json`) + - RNTAztecView (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `58d372e11584e49b95c62109c1d694e85abca9ae`) - SimulatorStatusMagic - Starscream (= 3.0.6) - SVProgressHUD (= 2.2.5) @@ -485,7 +485,7 @@ DEPENDENCIES: - WordPressShared (~> 1.8.16) - WordPressUI (~> 1.5.3-beta.1) - WPMediaPicker (~> 1.6.1) - - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json`) + - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json`) - ZendeskSupportSDK (= 5.0.0) - ZIPFoundation (~> 0.9.8) @@ -545,86 +545,86 @@ SPEC REPOS: EXTERNAL SOURCES: FBLazyVector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json FBReactNativeSpec: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json Folly: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 glog: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json Gutenberg: - :commit: ce88a8ae7052c3fff3292ee2b6382750c90fe7ee + :commit: 58d372e11584e49b95c62109c1d694e85abca9ae :git: http://github.com/wordpress-mobile/gutenberg-mobile/ RCTRequired: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json RCTTypeSafety: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json React: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json React-Core: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json React-CoreModules: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json React-cxxreact: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json React-jsi: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json React-jsiexecutor: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json React-jsinspector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json react-native-keyboard-aware-scroll-view: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json react-native-linear-gradient: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json react-native-safe-area: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json react-native-slider: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json react-native-video: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json React-RCTActionSheet: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json React-RCTAnimation: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json React-RCTBlob: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json React-RCTImage: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json React-RCTLinking: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json React-RCTNetwork: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json React-RCTSettings: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json React-RCTText: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json React-RCTVibration: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json ReactCommon: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json ReactNativeDarkMode: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json RNSVG: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json RNTAztecView: - :commit: ce88a8ae7052c3fff3292ee2b6382750c90fe7ee + :commit: 58d372e11584e49b95c62109c1d694e85abca9ae :git: http://github.com/wordpress-mobile/gutenberg-mobile/ Yoga: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ce88a8ae7052c3fff3292ee2b6382750c90fe7ee/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json CHECKOUT OPTIONS: FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 Gutenberg: - :commit: ce88a8ae7052c3fff3292ee2b6382750c90fe7ee + :commit: 58d372e11584e49b95c62109c1d694e85abca9ae :git: http://github.com/wordpress-mobile/gutenberg-mobile/ RNTAztecView: - :commit: ce88a8ae7052c3fff3292ee2b6382750c90fe7ee + :commit: 58d372e11584e49b95c62109c1d694e85abca9ae :git: http://github.com/wordpress-mobile/gutenberg-mobile/ SPEC CHECKSUMS: @@ -650,7 +650,7 @@ SPEC CHECKSUMS: GoogleToolboxForMac: 800648f8b3127618c1b59c7f97684427630c5ea3 Gridicons: 8e19276b20bb15d1fda1d4d0db96d066d170135b GTMSessionFetcher: cea130bbfe5a7edc8d06d3f0d17288c32ffe9925 - Gutenberg: 401db7abdfa9411d767f9a7d77fbaa57a53f85cf + Gutenberg: 26ae066818c65566ac0d8ce51cfc8a20b66db55c JTAppleCalendar: 932cadea40b1051beab10f67843451d48ba16c99 lottie-ios: 85ce835dd8c53e02509f20729fc7d6a4e6645a0a MediaEditor: 7296cd01d7a0548fb2bc909aa72153b376a56a61 @@ -687,7 +687,7 @@ SPEC CHECKSUMS: ReactCommon: 48926fc48fcd7c8a629860049ffba9c23b4005dc ReactNativeDarkMode: f61376360c5d983907e5c316e8e1c853a8c2f348 RNSVG: 68a534a5db06dcbdaebfd5079349191598caef7b - RNTAztecView: 3fb0f122cea9b3bcf502da8380de5cd552d43585 + RNTAztecView: 65e1984620590339bb1bcced6f5e914cba8df2f5 Sentry: ab6c209f23700d1460691dbc90e19ed0a05d496b SimulatorStatusMagic: 28d4a9d1a500ac7cea0b2b5a43c1c6ddb40ba56c Sodium: 63c0ca312a932e6da481689537d4b35568841bdc @@ -714,6 +714,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: a87ab1e4badace92c75eb11dc77ede1e995b2adc ZIPFoundation: 249fa8890597086cd536bb2df5c9804d84e122b0 -PODFILE CHECKSUM: d63a72b67ffe3d56fc96cf55c609f8a4ffbec302 +PODFILE CHECKSUM: e951dc2bdd40ab67449181c0b61c116e66e910c4 COCOAPODS: 1.8.4 From aeff5648ceb4d2e70edd6286674aee2a55fd6d2c Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Wed, 22 Apr 2020 16:09:36 +0100 Subject: [PATCH 19/40] Fix suggestion cell image load on reuse. --- .../Classes/ViewRelated/Suggestions/SuggestionsTableView.m | 7 +++---- .../ViewRelated/Suggestions/SuggestionsTableViewCell.h | 1 + .../ViewRelated/Suggestions/SuggestionsTableViewCell.m | 5 +++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m index 8c5463a76446..f70a8c615ffc 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m @@ -274,20 +274,19 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N return cell; } - Suggestion *suggestion = [self.searchResults objectAtIndex:indexPath.row]; - + Suggestion *suggestion = [self.searchResults objectAtIndex:indexPath.row]; cell.usernameLabel.text = [NSString stringWithFormat:@"@%@", suggestion.userLogin]; cell.displayNameLabel.text = suggestion.displayName; cell.selectionStyle = UITableViewCellSelectionStyleDefault; cell.avatarImageView.image = [UIImage imageNamed:@"gravatar"]; - + cell.imageDownloadHash = suggestion.imageURL.hash; [self loadAvatarForSuggestion:suggestion success:^(UIImage *image) { if (indexPath.row >= self.searchResults.count) { return; } Suggestion *reloaded = [self.searchResults objectAtIndex:indexPath.row]; - if ([reloaded.imageURL isEqual:suggestion.imageURL] == false) { + if (cell.imageDownloadHash != reloaded.imageURL.hash) { return; } diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.h b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.h index a98da3db381b..c4abbe797de2 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.h +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.h @@ -7,5 +7,6 @@ extern NSInteger const SuggestionsTableViewCellAvatarSize; @property (nonatomic, strong) UILabel *usernameLabel; @property (nonatomic, strong) UILabel *displayNameLabel; @property (nonatomic, strong) UIImageView *avatarImageView; +@property (nonatomic, assign) NSUInteger imageDownloadHash; @end diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m index d7712abf054a..7ef5b7ace34a 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m @@ -18,6 +18,11 @@ - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSStr return self; } +- (void)prepareForReuse { + [super prepareForReuse]; + self.imageDownloadHash = 0; +} + - (void)setupUsernameLabel { _usernameLabel = [[UILabel alloc] init]; From 6b543ccc98729654e80f7c1f2e174dd8011c7676 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Wed, 22 Apr 2020 22:52:24 +0100 Subject: [PATCH 20/40] Don't animate suggestions view with the keyboard animations. --- .../Gutenberg/GutenbergMentionsViewController.swift | 1 + .../Classes/ViewRelated/Suggestions/SuggestionsTableView.h | 1 + .../Classes/ViewRelated/Suggestions/SuggestionsTableView.m | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index 736122a4a4b2..16887b07dcb9 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -24,6 +24,7 @@ public class GutenbergMentionsViewController: UIViewController { public lazy var suggestionsView: SuggestionsTableView = { let suggestionsView = SuggestionsTableView() + suggestionsView.animateWithKeyboard = false suggestionsView.enabled = true suggestionsView.showSuggestions(forWord: Self.mentionTriggerText) suggestionsView.suggestionsDelegate = self diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h index f388f4c8a2ec..691030b3e493 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h @@ -7,6 +7,7 @@ @property (nonatomic, nullable, weak) id suggestionsDelegate; @property (nonatomic, nullable, strong) NSNumber *siteID; @property (nonatomic) BOOL useTransparentHeader; +@property (nonatomic) BOOL animateWithKeyboard; - (nonnull instancetype)init; diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m index f70a8c615ffc..6cd2041b65cb 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m @@ -32,6 +32,7 @@ - (instancetype)init _enabled = YES; _searchResults = [[NSMutableArray alloc] init]; _useTransparentHeader = NO; + _animateWithKeyboard = YES; [self setupHeaderView]; [self setupTableView]; [self setupConstraints]; @@ -185,6 +186,10 @@ - (void)updateConstraints - (void)keyboardDidChangeFrame:(NSNotification *)notification { + if ( !self.animateWithKeyboard ) { + return; + } + NSDictionary *info = [notification userInfo]; NSTimeInterval animationDuration = [[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; From c7daecf2035661236c006f202e8b041fc017f874 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Wed, 22 Apr 2020 22:56:30 +0100 Subject: [PATCH 21/40] Reduce margins for suggestion table view. --- .../Gutenberg/GutenbergMentionsViewController.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index 16887b07dcb9..c3c851153436 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -70,8 +70,8 @@ public class GutenbergMentionsViewController: UIViewController { view.addSubview(suggestionsView) NSLayoutConstraint.activate([ - suggestionsView.leadingAnchor.constraint(equalTo: view.safeLeadingAnchor, constant: margin), - suggestionsView.trailingAnchor.constraint(equalTo: view.safeTrailingAnchor, constant: -margin), + suggestionsView.leadingAnchor.constraint(equalTo: view.safeLeadingAnchor, constant: 0), + suggestionsView.trailingAnchor.constraint(equalTo: view.safeTrailingAnchor, constant: 0), suggestionsView.bottomAnchor.constraint(equalTo: searchView.topAnchor), suggestionsView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), ]) From 47ff6d637db5b9ff27b7d5451f605d419ff1d90f Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Thu, 23 Apr 2020 00:04:26 +0100 Subject: [PATCH 22/40] Dismiss suggestion interface if tapped outside results or search. --- .../Gutenberg/GutenbergMentionsViewController.swift | 3 +++ .../Classes/ViewRelated/Suggestions/SuggestionsTableView.h | 5 +++++ .../Classes/ViewRelated/Suggestions/SuggestionsTableView.m | 6 ++++++ 3 files changed, 14 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index c3c851153436..6b75cfa6c9b0 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -128,6 +128,9 @@ extension GutenbergMentionsViewController: SuggestionsTableViewDelegate { return 3 } + public func suggestionsTableViewDidTapHeader(_ suggestionsTableView: SuggestionsTableView) { + onCompletion?(.failure(buildErrorForCancelation())) + } } extension GutenbergMentionsViewController { diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h index 691030b3e493..8f3b86f6575d 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h @@ -59,4 +59,9 @@ */ - (NSInteger)suggestionsTableViewMaxDisplayedRows:(nonnull SuggestionsTableView *)suggestionsTableView; +/// This method is called every the header view above the suggestion is tapped. +/// @param suggestionsTableView the suggestion view. +- (void)suggestionsTableViewDidTapHeader:(nonnull SuggestionsTableView *)suggestionsTableView; + + @end diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m index 6cd2041b65cb..7ac0e5e5cfda 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m @@ -64,6 +64,7 @@ - (void)setupHeaderView { _headerView = [[UIView alloc] init]; [_headerView setTranslatesAutoresizingMaskIntoConstraints:NO]; + [_headerView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapHeader)] ]; [self addSubview:_headerView]; _separatorView = [[UIView alloc] init]; @@ -249,6 +250,11 @@ - (void)selectSuggestionAtPosition:(NSInteger)position { [self tableView:self.tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:position inSection:0]]; } +- (void)didTapHeader { + if ([self.suggestionsDelegate respondsToSelector:@selector(suggestionsTableViewDidTapHeader:)]) { + [self.suggestionsDelegate suggestionsTableViewDidTapHeader:self]; + } +} #pragma mark - UITableViewDataSource methods From 1b37e937a0bef0c6a3fd2ca07abeeaf0d8dc0599 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Thu, 23 Apr 2020 15:57:05 +0100 Subject: [PATCH 23/40] Add separator view between search field and table of suggestions. --- .../GutenbergMentionsViewController.swift | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index 6b75cfa6c9b0..7de66cbbce06 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -9,6 +9,15 @@ public class GutenbergMentionsViewController: UIViewController { let view = UIView(frame: .zero) view.backgroundColor = .basicBackground view.translatesAutoresizingMaskIntoConstraints = false + + return view + }() + + public lazy var separatorView: UIView = { + let view = UIView(frame: .zero) + view.backgroundColor = UIColor.divider + view.translatesAutoresizingMaskIntoConstraints = false + view.backgroundColor = UIColor(light: UIColor.colorFromHex("e9eff3"), dark: UIColor.colorFromHex("2e2e2e")) return view }() @@ -50,12 +59,14 @@ public class GutenbergMentionsViewController: UIViewController { view.translatesAutoresizingMaskIntoConstraints = false view.backgroundColor = .clear + let toolbarSize = CGFloat(44) + view.addSubview(backgroundView) NSLayoutConstraint.activate([ backgroundView.leadingAnchor.constraint(equalTo: view.leadingAnchor), backgroundView.trailingAnchor.constraint(equalTo: view.trailingAnchor), backgroundView.bottomAnchor.constraint(equalTo: view.safeBottomAnchor), - backgroundView.heightAnchor.constraint(equalToConstant: 50.0) + backgroundView.heightAnchor.constraint(equalToConstant: toolbarSize) ]) let margin = CGFloat(10) @@ -65,7 +76,7 @@ public class GutenbergMentionsViewController: UIViewController { searchView.leadingAnchor.constraint(equalTo: view.safeLeadingAnchor, constant: margin), searchView.trailingAnchor.constraint(equalTo: view.safeTrailingAnchor, constant: -margin), searchView.bottomAnchor.constraint(equalTo: view.safeBottomAnchor), - searchView.heightAnchor.constraint(equalToConstant: 50.0) + searchView.heightAnchor.constraint(equalToConstant: toolbarSize) ]) view.addSubview(suggestionsView) @@ -76,6 +87,14 @@ public class GutenbergMentionsViewController: UIViewController { suggestionsView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), ]) + view.addSubview(separatorView) + NSLayoutConstraint.activate([ + separatorView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + separatorView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + separatorView.bottomAnchor.constraint(equalTo: backgroundView.topAnchor), + separatorView.heightAnchor.constraint(equalToConstant: 1.0) + ]) + view.setNeedsUpdateConstraints() } From aa44a252aad560cfd276342634903ae55d8608b5 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Thu, 23 Apr 2020 16:15:23 +0100 Subject: [PATCH 24/40] Make sure that at least half cell is show when there is more suggestions than the max visible. --- .../Classes/ViewRelated/Suggestions/SuggestionsTableView.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m index 7ac0e5e5cfda..a673ac24c35f 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m @@ -177,7 +177,7 @@ - (void)updateConstraints } if (self.searchResults.count > maxRows) { - self.heightConstraint.constant = maxRows * STVRowHeight; + self.heightConstraint.constant = (maxRows * STVRowHeight) + (STVRowHeight/2); } else { self.heightConstraint.constant = self.searchResults.count * STVRowHeight; } From 270d60ccfd7ef2e21a79c9bd6353fc302cf4aaaa Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Thu, 23 Apr 2020 21:38:57 +0100 Subject: [PATCH 25/40] Show loading cell while waiting for users to be fetched. --- .../ViewRelated/Suggestions/SuggestionsTableView.m | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m index a673ac24c35f..cc77233298b6 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m @@ -155,7 +155,7 @@ - (void)layoutSubviews { [super layoutSubviews]; NSUInteger suggestionCount = self.searchResults.count; - [self setHidden:(0 == suggestionCount)]; + [self setHidden:(self.suggestions!= nil) && (0 == suggestionCount)]; if ([self.suggestionsDelegate respondsToSelector:@selector(suggestionsTableView:didChangeTableBounds:)]) { [self.suggestionsDelegate suggestionsTableView:self didChangeTableBounds:self.tableView.bounds]; } @@ -176,8 +176,10 @@ - (void)updateConstraints maxRows = 1; } - if (self.searchResults.count > maxRows) { - self.heightConstraint.constant = (maxRows * STVRowHeight) + (STVRowHeight/2); + if (!self.suggestions) { + self.heightConstraint.constant = STVRowHeight; + } else if (self.searchResults.count > maxRows) { + self.heightConstraint.constant = (maxRows * STVRowHeight) + (STVRowHeight/2); } else { self.heightConstraint.constant = self.searchResults.count * STVRowHeight; } From b3fd98fbaedc7b5c1b5f32fc08560acc12e15928 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Thu, 23 Apr 2020 22:48:24 +0100 Subject: [PATCH 26/40] Allow configuration of show loading off suggestions. --- .../Gutenberg/GutenbergMentionsViewController.swift | 1 + .../Classes/ViewRelated/Suggestions/SuggestionsTableView.h | 1 + .../Classes/ViewRelated/Suggestions/SuggestionsTableView.m | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index 7de66cbbce06..2c6d31c72f20 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -35,6 +35,7 @@ public class GutenbergMentionsViewController: UIViewController { let suggestionsView = SuggestionsTableView() suggestionsView.animateWithKeyboard = false suggestionsView.enabled = true + suggestionsView.showLoading = true suggestionsView.showSuggestions(forWord: Self.mentionTriggerText) suggestionsView.suggestionsDelegate = self suggestionsView.translatesAutoresizingMaskIntoConstraints = false diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h index 8f3b86f6575d..830c60d7f501 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h @@ -8,6 +8,7 @@ @property (nonatomic, nullable, strong) NSNumber *siteID; @property (nonatomic) BOOL useTransparentHeader; @property (nonatomic) BOOL animateWithKeyboard; +@property (nonatomic) BOOL showLoading; - (nonnull instancetype)init; diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m index cc77233298b6..187c985a2aa6 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m @@ -33,6 +33,7 @@ - (instancetype)init _searchResults = [[NSMutableArray alloc] init]; _useTransparentHeader = NO; _animateWithKeyboard = YES; + _showLoading = NO; [self setupHeaderView]; [self setupTableView]; [self setupConstraints]; @@ -155,7 +156,8 @@ - (void)layoutSubviews { [super layoutSubviews]; NSUInteger suggestionCount = self.searchResults.count; - [self setHidden:(self.suggestions!= nil) && (0 == suggestionCount)]; + BOOL showTable = (self.showLoading && self.suggestions == nil) || (suggestionCount > 1); + [self setHidden:!showTable]; if ([self.suggestionsDelegate respondsToSelector:@selector(suggestionsTableView:didChangeTableBounds:)]) { [self.suggestionsDelegate suggestionsTableView:self didChangeTableBounds:self.tableView.bounds]; } From 8bbc640e8f513e185879885ebc306ea668c0af8b Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Thu, 23 Apr 2020 22:48:50 +0100 Subject: [PATCH 27/40] Proper save of the text that was used to search. --- .../ViewRelated/Suggestions/SuggestionsTableView.m | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m index 187c985a2aa6..fee175881518 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m @@ -219,10 +219,11 @@ - (BOOL)showSuggestionsForWord:(NSString *)word } if ([word hasPrefix:@"@"]) { - self.searchText = [word substringFromIndex:1]; - if (self.searchText.length > 0) { + self.searchText = word; + if (self.searchText.length > 1) { + NSString *searchQuery = [word substringFromIndex:1]; NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"(displayName contains[c] %@) OR (userLogin contains[c] %@)", - self.searchText, self.searchText]; + searchQuery, searchQuery]; self.searchResults = [[self.suggestions filteredArrayUsingPredicate:resultPredicate] mutableCopy]; } else { self.searchResults = [self.suggestions mutableCopy]; @@ -318,7 +319,7 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath Suggestion *suggestion = [self.searchResults objectAtIndex:indexPath.row]; [self.suggestionsDelegate suggestionsTableView:self didSelectSuggestion:suggestion.userLogin - forSearchText:self.searchText]; + forSearchText:[self.searchText substringFromIndex:1]]; } #pragma mark - Suggestion list management @@ -328,8 +329,7 @@ - (void)suggestionListUpdated:(NSNotification *)notification // only reload if the suggestion list is updated for the current site if (self.siteID && [notification.object isEqualToNumber:self.siteID]) { self.suggestions = [[SuggestionService sharedInstance] suggestionsForSiteID:self.siteID]; - NSString * text = [NSString stringWithFormat:@"@%@", self.searchText]; - [self showSuggestionsForWord:text]; + [self showSuggestionsForWord:self.searchText]; } } From be439053ae50a7736c0cf3dd69cc89efec7794c6 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Thu, 23 Apr 2020 23:59:11 +0100 Subject: [PATCH 28/40] Update GB reference. --- Podfile | 2 +- Podfile.lock | 138 +++++++++++++++++++++++++-------------------------- 2 files changed, 70 insertions(+), 70 deletions(-) diff --git a/Podfile b/Podfile index 9cd40dbb073a..cc06ee508341 100644 --- a/Podfile +++ b/Podfile @@ -148,7 +148,7 @@ target 'WordPress' do ## Gutenberg (React Native) ## ===================== ## - gutenberg :commit => '58d372e11584e49b95c62109c1d694e85abca9ae' + gutenberg :commit => '8eb2c1b73e3876b36d61628d3bea33051b6575af' ## Third party libraries ## ===================== diff --git a/Podfile.lock b/Podfile.lock index 9415e42aa84f..a366344b1806 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -429,15 +429,15 @@ DEPENDENCIES: - Charts (~> 3.2.2) - CocoaLumberjack (= 3.5.2) - Down (~> 0.6.6) - - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json`) - - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json`) - - Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json`) + - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json`) + - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json`) + - Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json`) - FormatterKit/TimeIntervalFormatter (= 1.8.2) - FSInteractiveMap (from `https://github.com/wordpress-mobile/FSInteractiveMap.git`, tag `0.2.0`) - Gifu (= 3.2.0) - - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json`) + - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json`) - Gridicons (~> 1.0.1) - - Gutenberg (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `58d372e11584e49b95c62109c1d694e85abca9ae`) + - Gutenberg (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `8eb2c1b73e3876b36d61628d3bea33051b6575af`) - JTAppleCalendar (~> 8.0.2) - MediaEditor (~> 1.0.1) - MRProgress (= 0.8.3) @@ -447,34 +447,34 @@ DEPENDENCIES: - OCMock (= 3.4.3) - OHHTTPStubs (= 6.1.0) - OHHTTPStubs/Swift (= 6.1.0) - - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json`) - - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json`) + - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json`) + - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json`) - Reachability (= 3.2) - - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json`) - - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json`) - - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json`) - - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json`) - - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json`) - - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json`) - - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json`) - - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) - - react-native-linear-gradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json`) - - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json`) - - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json`) - - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json`) - - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json`) - - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json`) - - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json`) - - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json`) - - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json`) - - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json`) - - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json`) - - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json`) - - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json`) - - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json`) - - ReactNativeDarkMode (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json`) - - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json`) - - RNTAztecView (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `58d372e11584e49b95c62109c1d694e85abca9ae`) + - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json`) + - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json`) + - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json`) + - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json`) + - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json`) + - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json`) + - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json`) + - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) + - react-native-linear-gradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json`) + - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json`) + - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json`) + - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json`) + - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json`) + - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json`) + - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json`) + - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json`) + - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json`) + - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json`) + - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json`) + - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json`) + - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json`) + - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json`) + - ReactNativeDarkMode (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json`) + - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json`) + - RNTAztecView (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `8eb2c1b73e3876b36d61628d3bea33051b6575af`) - SimulatorStatusMagic - Starscream (= 3.0.6) - SVProgressHUD (= 2.2.5) @@ -485,7 +485,7 @@ DEPENDENCIES: - WordPressShared (~> 1.8.16) - WordPressUI (~> 1.5.4-beta.2) - WPMediaPicker (~> 1.6.1) - - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json`) + - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json`) - ZendeskSupportSDK (= 5.0.0) - ZIPFoundation (~> 0.9.8) @@ -545,86 +545,86 @@ SPEC REPOS: EXTERNAL SOURCES: FBLazyVector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json FBReactNativeSpec: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json Folly: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 glog: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json Gutenberg: - :commit: 58d372e11584e49b95c62109c1d694e85abca9ae + :commit: 8eb2c1b73e3876b36d61628d3bea33051b6575af :git: http://github.com/wordpress-mobile/gutenberg-mobile/ RCTRequired: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json RCTTypeSafety: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json React: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json React-Core: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json React-CoreModules: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json React-cxxreact: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json React-jsi: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json React-jsiexecutor: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json React-jsinspector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json react-native-keyboard-aware-scroll-view: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json react-native-linear-gradient: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json react-native-safe-area: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json react-native-slider: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json react-native-video: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json React-RCTActionSheet: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json React-RCTAnimation: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json React-RCTBlob: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json React-RCTImage: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json React-RCTLinking: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json React-RCTNetwork: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json React-RCTSettings: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json React-RCTText: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json React-RCTVibration: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json ReactCommon: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json ReactNativeDarkMode: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json RNSVG: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json RNTAztecView: - :commit: 58d372e11584e49b95c62109c1d694e85abca9ae + :commit: 8eb2c1b73e3876b36d61628d3bea33051b6575af :git: http://github.com/wordpress-mobile/gutenberg-mobile/ Yoga: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/58d372e11584e49b95c62109c1d694e85abca9ae/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json CHECKOUT OPTIONS: FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 Gutenberg: - :commit: 58d372e11584e49b95c62109c1d694e85abca9ae + :commit: 8eb2c1b73e3876b36d61628d3bea33051b6575af :git: http://github.com/wordpress-mobile/gutenberg-mobile/ RNTAztecView: - :commit: 58d372e11584e49b95c62109c1d694e85abca9ae + :commit: 8eb2c1b73e3876b36d61628d3bea33051b6575af :git: http://github.com/wordpress-mobile/gutenberg-mobile/ SPEC CHECKSUMS: @@ -714,6 +714,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: a87ab1e4badace92c75eb11dc77ede1e995b2adc ZIPFoundation: 249fa8890597086cd536bb2df5c9804d84e122b0 -PODFILE CHECKSUM: 26399a5d7c8b709d1738ca882aeaccf69cc7177c +PODFILE CHECKSUM: 8352a66551874029e0579af38bb87103d808196b COCOAPODS: 1.8.4 From 0dfc8251f6a4bd3b9b64340085dafc9b89ab3819 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Thu, 23 Apr 2020 23:59:25 +0100 Subject: [PATCH 29/40] Show results when only 1 suggestion exists. --- .../Classes/ViewRelated/Suggestions/SuggestionsTableView.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m index fee175881518..b42213ee55b7 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m @@ -156,7 +156,7 @@ - (void)layoutSubviews { [super layoutSubviews]; NSUInteger suggestionCount = self.searchResults.count; - BOOL showTable = (self.showLoading && self.suggestions == nil) || (suggestionCount > 1); + BOOL showTable = (self.showLoading && self.suggestions == nil) || (suggestionCount > 0); [self setHidden:!showTable]; if ([self.suggestionsDelegate respondsToSelector:@selector(suggestionsTableView:didChangeTableBounds:)]) { [self.suggestionsDelegate suggestionsTableView:self didChangeTableBounds:self.tableView.bounds]; From f7d59d37984beaeb676c1c1aba5debf47de77681 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Fri, 24 Apr 2020 14:50:22 +0100 Subject: [PATCH 30/40] Update gutenberg version. --- Podfile | 4 +- Podfile.lock | 154 +++++++++--------- .../Gutenberg/GutenbergViewController.swift | 6 + 3 files changed, 85 insertions(+), 79 deletions(-) diff --git a/Podfile b/Podfile index cc06ee508341..196805513fb9 100644 --- a/Podfile +++ b/Podfile @@ -29,7 +29,7 @@ def aztec ## pod 'WordPress-Editor-iOS', :git => 'https://github.com/wordpress-mobile/AztecEditor-iOS.git', :commit => 'ba8524aba1332550efb05cad583a85ed3511beb5' ## pod 'WordPress-Editor-iOS', :git => 'https://github.com/wordpress-mobile/AztecEditor-iOS.git', :tag => '1.5.0.beta.1' ## pod 'WordPress-Editor-iOS', :path => '../AztecEditor-iOS' - pod 'WordPress-Editor-iOS', '~> 1.17.1' + pod 'WordPress-Editor-iOS', '~> 1.18.0' end def wordpress_ui @@ -148,7 +148,7 @@ target 'WordPress' do ## Gutenberg (React Native) ## ===================== ## - gutenberg :commit => '8eb2c1b73e3876b36d61628d3bea33051b6575af' + gutenberg :commit => '3ec3a90e79af3ab8226243f329a4220f0ce3abd7' ## Third party libraries ## ===================== diff --git a/Podfile.lock b/Podfile.lock index a366344b1806..c88e415c35db 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -363,7 +363,7 @@ PODS: - React - RNTAztecView (1.26.0): - React-Core - - WordPress-Aztec-iOS (~> 1.17.1) + - WordPress-Aztec-iOS (~> 1.18.0) - Sentry (4.5.0): - Sentry/Core (= 4.5.0) - Sentry/Core (4.5.0) @@ -373,9 +373,9 @@ PODS: - SVProgressHUD (2.2.5) - TOCropViewController (2.5.2) - UIDeviceIdentifier (1.4.0) - - WordPress-Aztec-iOS (1.17.1) - - WordPress-Editor-iOS (1.17.1): - - WordPress-Aztec-iOS (= 1.17.1) + - WordPress-Aztec-iOS (1.18.0) + - WordPress-Editor-iOS (1.18.0): + - WordPress-Aztec-iOS (= 1.18.0) - WordPressAuthenticator (1.13.0): - 1PasswordExtension (= 1.8.6) - Alamofire (= 4.8) @@ -429,15 +429,15 @@ DEPENDENCIES: - Charts (~> 3.2.2) - CocoaLumberjack (= 3.5.2) - Down (~> 0.6.6) - - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json`) - - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json`) - - Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json`) + - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json`) + - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json`) + - Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json`) - FormatterKit/TimeIntervalFormatter (= 1.8.2) - FSInteractiveMap (from `https://github.com/wordpress-mobile/FSInteractiveMap.git`, tag `0.2.0`) - Gifu (= 3.2.0) - - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json`) + - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json`) - Gridicons (~> 1.0.1) - - Gutenberg (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `8eb2c1b73e3876b36d61628d3bea33051b6575af`) + - Gutenberg (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `3ec3a90e79af3ab8226243f329a4220f0ce3abd7`) - JTAppleCalendar (~> 8.0.2) - MediaEditor (~> 1.0.1) - MRProgress (= 0.8.3) @@ -447,45 +447,45 @@ DEPENDENCIES: - OCMock (= 3.4.3) - OHHTTPStubs (= 6.1.0) - OHHTTPStubs/Swift (= 6.1.0) - - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json`) - - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json`) + - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json`) + - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json`) - Reachability (= 3.2) - - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json`) - - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json`) - - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json`) - - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json`) - - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json`) - - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json`) - - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json`) - - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) - - react-native-linear-gradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json`) - - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json`) - - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json`) - - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json`) - - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json`) - - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json`) - - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json`) - - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json`) - - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json`) - - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json`) - - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json`) - - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json`) - - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json`) - - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json`) - - ReactNativeDarkMode (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json`) - - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json`) - - RNTAztecView (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `8eb2c1b73e3876b36d61628d3bea33051b6575af`) + - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json`) + - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json`) + - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json`) + - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json`) + - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json`) + - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json`) + - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json`) + - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) + - react-native-linear-gradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json`) + - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json`) + - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json`) + - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json`) + - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json`) + - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json`) + - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json`) + - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json`) + - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json`) + - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json`) + - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json`) + - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json`) + - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json`) + - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json`) + - ReactNativeDarkMode (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json`) + - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json`) + - RNTAztecView (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `3ec3a90e79af3ab8226243f329a4220f0ce3abd7`) - SimulatorStatusMagic - Starscream (= 3.0.6) - SVProgressHUD (= 2.2.5) - - WordPress-Editor-iOS (~> 1.17.1) + - WordPress-Editor-iOS (~> 1.18.0) - WordPressAuthenticator (~> 1.13.0) - WordPressKit (~> 4.8.0) - WordPressMocks (~> 0.0.8) - WordPressShared (~> 1.8.16) - WordPressUI (~> 1.5.4-beta.2) - WPMediaPicker (~> 1.6.1) - - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json`) + - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json`) - ZendeskSupportSDK (= 5.0.0) - ZIPFoundation (~> 0.9.8) @@ -545,86 +545,86 @@ SPEC REPOS: EXTERNAL SOURCES: FBLazyVector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json FBReactNativeSpec: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json Folly: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 glog: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json Gutenberg: - :commit: 8eb2c1b73e3876b36d61628d3bea33051b6575af + :commit: 3ec3a90e79af3ab8226243f329a4220f0ce3abd7 :git: http://github.com/wordpress-mobile/gutenberg-mobile/ RCTRequired: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json RCTTypeSafety: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json React: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json React-Core: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json React-CoreModules: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json React-cxxreact: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json React-jsi: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json React-jsiexecutor: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json React-jsinspector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json react-native-keyboard-aware-scroll-view: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json react-native-linear-gradient: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json react-native-safe-area: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json react-native-slider: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json react-native-video: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json React-RCTActionSheet: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json React-RCTAnimation: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json React-RCTBlob: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json React-RCTImage: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json React-RCTLinking: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json React-RCTNetwork: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json React-RCTSettings: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json React-RCTText: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json React-RCTVibration: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json ReactCommon: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json ReactNativeDarkMode: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json RNSVG: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json RNTAztecView: - :commit: 8eb2c1b73e3876b36d61628d3bea33051b6575af + :commit: 3ec3a90e79af3ab8226243f329a4220f0ce3abd7 :git: http://github.com/wordpress-mobile/gutenberg-mobile/ Yoga: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/8eb2c1b73e3876b36d61628d3bea33051b6575af/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json CHECKOUT OPTIONS: FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 Gutenberg: - :commit: 8eb2c1b73e3876b36d61628d3bea33051b6575af + :commit: 3ec3a90e79af3ab8226243f329a4220f0ce3abd7 :git: http://github.com/wordpress-mobile/gutenberg-mobile/ RNTAztecView: - :commit: 8eb2c1b73e3876b36d61628d3bea33051b6575af + :commit: 3ec3a90e79af3ab8226243f329a4220f0ce3abd7 :git: http://github.com/wordpress-mobile/gutenberg-mobile/ SPEC CHECKSUMS: @@ -687,7 +687,7 @@ SPEC CHECKSUMS: ReactCommon: 48926fc48fcd7c8a629860049ffba9c23b4005dc ReactNativeDarkMode: f61376360c5d983907e5c316e8e1c853a8c2f348 RNSVG: 68a534a5db06dcbdaebfd5079349191598caef7b - RNTAztecView: 65e1984620590339bb1bcced6f5e914cba8df2f5 + RNTAztecView: db66aa89626b70a40c25f7bd06e7d7588fdf85db Sentry: ab6c209f23700d1460691dbc90e19ed0a05d496b SimulatorStatusMagic: 28d4a9d1a500ac7cea0b2b5a43c1c6ddb40ba56c Sodium: 63c0ca312a932e6da481689537d4b35568841bdc @@ -695,8 +695,8 @@ SPEC CHECKSUMS: SVProgressHUD: 1428aafac632c1f86f62aa4243ec12008d7a51d6 TOCropViewController: e9da34f484aedd4e5d5a8ab230ba217cfe16c729 UIDeviceIdentifier: 44f805037d21b94394821828f4fcaba34b38c2d0 - WordPress-Aztec-iOS: 319620514af963ca519bd83b96a2c0ebdf3a0f03 - WordPress-Editor-iOS: 497b55838ef0030cc6ca82eb92da84e661423521 + WordPress-Aztec-iOS: fae5d158879dfd6f36c8d0ff0cc111a0b8e36790 + WordPress-Editor-iOS: f8217e10cacf138d374d868b1395ffcb41d434f9 WordPressAuthenticator: ed1ea00ad8e04ff4dc086c7be6b77370b1738230 WordPressKit: 84045e236949248632a2c644149e5657733011bb WordPressMocks: b4064b99a073117bbc304abe82df78f2fbe60992 @@ -714,6 +714,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: a87ab1e4badace92c75eb11dc77ede1e995b2adc ZIPFoundation: 249fa8890597086cd536bb2df5c9804d84e122b0 -PODFILE CHECKSUM: 8352a66551874029e0579af38bb87103d808196b +PODFILE CHECKSUM: bdd1610a870c81caef72823cf83b6d0f58652f3c COCOAPODS: 1.8.4 diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift index 3d49646c6669..00358377113b 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift @@ -731,6 +731,12 @@ extension GutenbergViewController: GutenbergBridgeDataSource { .filesApp, ].compactMap { $0 } } + + func gutenbergCapabilities() -> [String: Bool]? { + return [ + "mentions": post.blog.isAccessibleThroughWPCom() + ] + } } // MARK: - PostEditorStateContextDelegate From c063199459af666302c0144c3c00b5142a404109 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Mon, 27 Apr 2020 16:31:47 +0100 Subject: [PATCH 31/40] Fix backspace being deleted. --- .../Gutenberg/GutenbergMentionsViewController.swift | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index 2c6d31c72f20..2e15b54e428f 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -119,7 +119,10 @@ extension GutenbergMentionsViewController: UITextFieldDelegate { if searchWord.hasPrefix(Self.mentionTriggerText) { suggestionsView.showSuggestions(forWord: searchWord) } else { - onCompletion?(.failure(buildErrorForCancelation())) + // We are dispatching this async to allow this delegate to finish and process the keypress before executing the cancelation. + DispatchQueue.main.async { + self.onCompletion?(.failure(self.buildErrorForCancelation())) + } } return true } From 4d66d121112ad16b99fe8692ee700c637eaccaf8 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Tue, 28 Apr 2020 13:46:56 +0100 Subject: [PATCH 32/40] Add comments for the new properties and methods --- .../Classes/ViewRelated/Suggestions/SuggestionsTableView.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h index 830c60d7f501..036249762061 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.h @@ -30,8 +30,11 @@ - (void)hideSuggestions; +/// Tells the number of suggestions available for the current search - (NSInteger)numberOfSuggestions; +/// Select the suggestion at a certain position and triggers the selection delegate +/// @param position the index to select - (void)selectSuggestionAtPosition:(NSInteger)position; @end From c845d98de9092d06e80a935aa8277e0c0f9cbbec Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Tue, 28 Apr 2020 15:55:28 +0100 Subject: [PATCH 33/40] Update GB reference. --- Podfile | 2 +- Podfile.lock | 138 +++++++++++++++++++++++++-------------------------- 2 files changed, 70 insertions(+), 70 deletions(-) diff --git a/Podfile b/Podfile index 196805513fb9..820b4cf0c11c 100644 --- a/Podfile +++ b/Podfile @@ -148,7 +148,7 @@ target 'WordPress' do ## Gutenberg (React Native) ## ===================== ## - gutenberg :commit => '3ec3a90e79af3ab8226243f329a4220f0ce3abd7' + gutenberg :commit => 'f145c1b7bc0c321e422a17f1e8d78cfc884d2b23' ## Third party libraries ## ===================== diff --git a/Podfile.lock b/Podfile.lock index c88e415c35db..f02962d6cee9 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -429,15 +429,15 @@ DEPENDENCIES: - Charts (~> 3.2.2) - CocoaLumberjack (= 3.5.2) - Down (~> 0.6.6) - - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json`) - - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json`) - - Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json`) + - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json`) + - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json`) + - Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json`) - FormatterKit/TimeIntervalFormatter (= 1.8.2) - FSInteractiveMap (from `https://github.com/wordpress-mobile/FSInteractiveMap.git`, tag `0.2.0`) - Gifu (= 3.2.0) - - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json`) + - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json`) - Gridicons (~> 1.0.1) - - Gutenberg (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `3ec3a90e79af3ab8226243f329a4220f0ce3abd7`) + - Gutenberg (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `f145c1b7bc0c321e422a17f1e8d78cfc884d2b23`) - JTAppleCalendar (~> 8.0.2) - MediaEditor (~> 1.0.1) - MRProgress (= 0.8.3) @@ -447,34 +447,34 @@ DEPENDENCIES: - OCMock (= 3.4.3) - OHHTTPStubs (= 6.1.0) - OHHTTPStubs/Swift (= 6.1.0) - - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json`) - - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json`) + - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json`) + - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json`) - Reachability (= 3.2) - - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json`) - - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json`) - - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json`) - - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json`) - - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json`) - - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json`) - - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json`) - - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) - - react-native-linear-gradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json`) - - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json`) - - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json`) - - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json`) - - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json`) - - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json`) - - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json`) - - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json`) - - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json`) - - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json`) - - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json`) - - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json`) - - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json`) - - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json`) - - ReactNativeDarkMode (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json`) - - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json`) - - RNTAztecView (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `3ec3a90e79af3ab8226243f329a4220f0ce3abd7`) + - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json`) + - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json`) + - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json`) + - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json`) + - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json`) + - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json`) + - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json`) + - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) + - react-native-linear-gradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json`) + - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json`) + - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json`) + - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json`) + - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json`) + - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json`) + - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json`) + - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json`) + - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json`) + - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json`) + - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json`) + - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json`) + - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json`) + - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json`) + - ReactNativeDarkMode (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json`) + - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json`) + - RNTAztecView (from `http://github.com/wordpress-mobile/gutenberg-mobile/`, commit `f145c1b7bc0c321e422a17f1e8d78cfc884d2b23`) - SimulatorStatusMagic - Starscream (= 3.0.6) - SVProgressHUD (= 2.2.5) @@ -485,7 +485,7 @@ DEPENDENCIES: - WordPressShared (~> 1.8.16) - WordPressUI (~> 1.5.4-beta.2) - WPMediaPicker (~> 1.6.1) - - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json`) + - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json`) - ZendeskSupportSDK (= 5.0.0) - ZIPFoundation (~> 0.9.8) @@ -545,86 +545,86 @@ SPEC REPOS: EXTERNAL SOURCES: FBLazyVector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/FBLazyVector.podspec.json FBReactNativeSpec: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/FBReactNativeSpec.podspec.json Folly: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/Folly.podspec.json FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 glog: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/glog.podspec.json Gutenberg: - :commit: 3ec3a90e79af3ab8226243f329a4220f0ce3abd7 + :commit: f145c1b7bc0c321e422a17f1e8d78cfc884d2b23 :git: http://github.com/wordpress-mobile/gutenberg-mobile/ RCTRequired: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/RCTRequired.podspec.json RCTTypeSafety: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/RCTTypeSafety.podspec.json React: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React.podspec.json React-Core: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-Core.podspec.json React-CoreModules: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-CoreModules.podspec.json React-cxxreact: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-cxxreact.podspec.json React-jsi: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-jsi.podspec.json React-jsiexecutor: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-jsiexecutor.podspec.json React-jsinspector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-jsinspector.podspec.json react-native-keyboard-aware-scroll-view: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json react-native-linear-gradient: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/react-native-linear-gradient.podspec.json react-native-safe-area: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/react-native-safe-area.podspec.json react-native-slider: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/react-native-slider.podspec.json react-native-video: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/react-native-video.podspec.json React-RCTActionSheet: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTActionSheet.podspec.json React-RCTAnimation: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTAnimation.podspec.json React-RCTBlob: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTBlob.podspec.json React-RCTImage: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTImage.podspec.json React-RCTLinking: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTLinking.podspec.json React-RCTNetwork: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTNetwork.podspec.json React-RCTSettings: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTSettings.podspec.json React-RCTText: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTText.podspec.json React-RCTVibration: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/React-RCTVibration.podspec.json ReactCommon: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/ReactCommon.podspec.json ReactNativeDarkMode: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/ReactNativeDarkMode.podspec.json RNSVG: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/RNSVG.podspec.json RNTAztecView: - :commit: 3ec3a90e79af3ab8226243f329a4220f0ce3abd7 + :commit: f145c1b7bc0c321e422a17f1e8d78cfc884d2b23 :git: http://github.com/wordpress-mobile/gutenberg-mobile/ Yoga: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/3ec3a90e79af3ab8226243f329a4220f0ce3abd7/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/f145c1b7bc0c321e422a17f1e8d78cfc884d2b23/react-native-gutenberg-bridge/third-party-podspecs/Yoga.podspec.json CHECKOUT OPTIONS: FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 Gutenberg: - :commit: 3ec3a90e79af3ab8226243f329a4220f0ce3abd7 + :commit: f145c1b7bc0c321e422a17f1e8d78cfc884d2b23 :git: http://github.com/wordpress-mobile/gutenberg-mobile/ RNTAztecView: - :commit: 3ec3a90e79af3ab8226243f329a4220f0ce3abd7 + :commit: f145c1b7bc0c321e422a17f1e8d78cfc884d2b23 :git: http://github.com/wordpress-mobile/gutenberg-mobile/ SPEC CHECKSUMS: @@ -714,6 +714,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: a87ab1e4badace92c75eb11dc77ede1e995b2adc ZIPFoundation: 249fa8890597086cd536bb2df5c9804d84e122b0 -PODFILE CHECKSUM: bdd1610a870c81caef72823cf83b6d0f58652f3c +PODFILE CHECKSUM: 4bd4660ad520f7e55115f6663b9bedd671739fc9 COCOAPODS: 1.8.4 From 527c662be66712e1ec63e2f731204f8d665403d6 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Wed, 29 Apr 2020 10:57:20 +0100 Subject: [PATCH 34/40] Use list foreground color for the suggestions table. --- .../Gutenberg/GutenbergMentionsViewController.swift | 4 ++-- .../ViewRelated/Suggestions/SuggestionsTableViewCell.m | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index 2e15b54e428f..3305127ba4b0 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -7,9 +7,8 @@ public class GutenbergMentionsViewController: UIViewController { public lazy var backgroundView: UIView = { let view = UIView(frame: .zero) - view.backgroundColor = .basicBackground + view.backgroundColor = .listForeground view.translatesAutoresizingMaskIntoConstraints = false - return view }() @@ -28,6 +27,7 @@ public class GutenbergMentionsViewController: UIViewController { textField.clearButtonMode = .whileEditing textField.translatesAutoresizingMaskIntoConstraints = false textField.delegate = self + textField.textColor = .text return textField }() diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m index 7ef5b7ace34a..cb33c7aab371 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m @@ -14,6 +14,7 @@ - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSStr [self setupDisplayNameLabel]; [self setupAvatarImageView]; [self setupConstraints]; + self.backgroundColor = [UIColor murielListForeground]; } return self; } From f1a572ecf43b63146a83efd1825f2140787a4c88 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Thu, 7 May 2020 22:10:34 +0100 Subject: [PATCH 35/40] Make background semi-transparent. --- .../ViewRelated/Gutenberg/GutenbergMentionsViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index 3305127ba4b0..f982ddb0a5a5 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -40,7 +40,7 @@ public class GutenbergMentionsViewController: UIViewController { suggestionsView.suggestionsDelegate = self suggestionsView.translatesAutoresizingMaskIntoConstraints = false suggestionsView.siteID = siteID - suggestionsView.useTransparentHeader = true + suggestionsView.useTransparentHeader = false return suggestionsView }() From 16505193419e6bf5d1ec61d560fccbc733715dfb Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Mon, 11 May 2020 23:23:54 +0100 Subject: [PATCH 36/40] Make suggestion header smoke color adapt to traits. --- .../Classes/Categories/WPStyleGuide+Suggestions.m | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/Categories/WPStyleGuide+Suggestions.m b/WordPress/Classes/Categories/WPStyleGuide+Suggestions.m index 656c5374fc0b..41591cca125d 100644 --- a/WordPress/Classes/Categories/WPStyleGuide+Suggestions.m +++ b/WordPress/Classes/Categories/WPStyleGuide+Suggestions.m @@ -3,8 +3,18 @@ @implementation WPStyleGuide (Suggestions) + (UIColor *)suggestionsHeaderSmoke -{ - return [UIColor colorWithRed:0. green:0. blue:0. alpha:0.3]; +{ + if (@available(iOS 13.0, *)) { + return [UIColor colorWithDynamicProvider:^(UITraitCollection *traitCollection) { + if (traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) { + return [UIColor colorWithRed:0. green:0. blue:0. alpha:0.7]; + } else { + return [UIColor colorWithRed:0. green:0. blue:0. alpha:0.3]; + } + }]; + } else { + return [UIColor colorWithRed:0. green:0. blue:0. alpha:0.3]; + } } + (UIColor *)suggestionsSeparatorSmoke From e12f871d145c0eea05d92f878a85090d2653aa3b Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Thu, 14 May 2020 17:48:57 +0100 Subject: [PATCH 37/40] Set max visible cells to 7. --- .../ViewRelated/Gutenberg/GutenbergMentionsViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift index f982ddb0a5a5..0e1996a5d8bb 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergMentionsViewController.swift @@ -148,7 +148,7 @@ extension GutenbergMentionsViewController: SuggestionsTableViewDelegate { } public func suggestionsTableViewMaxDisplayedRows(_ suggestionsTableView: SuggestionsTableView) -> Int { - return 3 + return 7 } public func suggestionsTableViewDidTapHeader(_ suggestionsTableView: SuggestionsTableView) { From e56e488f52def7620f82618299d2b3ebe386507f Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Thu, 14 May 2020 17:49:20 +0100 Subject: [PATCH 38/40] Show 0.4 % of next cell if available. --- .../Classes/ViewRelated/Suggestions/SuggestionsTableView.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m index b42213ee55b7..c90e15aeafac 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m @@ -181,7 +181,7 @@ - (void)updateConstraints if (!self.suggestions) { self.heightConstraint.constant = STVRowHeight; } else if (self.searchResults.count > maxRows) { - self.heightConstraint.constant = (maxRows * STVRowHeight) + (STVRowHeight/2); + self.heightConstraint.constant = (maxRows * STVRowHeight) + (STVRowHeight*0.4); } else { self.heightConstraint.constant = self.searchResults.count * STVRowHeight; } From 563cf28581b746f2a4e486dc3b2a0544fbf3fe3d Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Thu, 14 May 2020 17:49:41 +0100 Subject: [PATCH 39/40] Update colors and size of text labels. --- .../ViewRelated/Suggestions/SuggestionsTableViewCell.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m index cb33c7aab371..51821c9a4a8d 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m @@ -2,7 +2,7 @@ #import #import "WordPress-Swift.h" -NSInteger const SuggestionsTableViewCellAvatarSize = 23; +NSInteger const SuggestionsTableViewCellAvatarSize = 24; @implementation SuggestionsTableViewCell @@ -28,7 +28,7 @@ - (void)setupUsernameLabel { _usernameLabel = [[UILabel alloc] init]; [_usernameLabel setTextColor:[UIColor murielPrimary]]; - [_usernameLabel setFont:[WPFontManager systemRegularFontOfSize:14.0]]; + [_usernameLabel setFont:[WPFontManager systemRegularFontOfSize:17.0]]; [_usernameLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; [self.contentView addSubview:_usernameLabel]; } @@ -36,7 +36,7 @@ - (void)setupUsernameLabel - (void)setupDisplayNameLabel { _displayNameLabel = [[UILabel alloc] init]; - [_displayNameLabel setTextColor:[WPStyleGuide allTAllShadeGrey]]; + [_displayNameLabel setTextColor:[UIColor murielTextSubtle]]; [_displayNameLabel setFont:[WPFontManager systemRegularFontOfSize:14.0]]; [_displayNameLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; _displayNameLabel.textAlignment = NSTextAlignmentRight; From 5beafbd1eb5511cd4ea5e01ce12f0d1161fba959 Mon Sep 17 00:00:00 2001 From: Sergio Estevao Date: Wed, 20 May 2020 00:13:48 +0100 Subject: [PATCH 40/40] Fix separator view color between the header and the tableview. When the header is clear use a color for separator, when the header is translucent make it clear to avoid a blurry edge. --- .../Classes/ViewRelated/Suggestions/SuggestionsTableView.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m index c90e15aeafac..b09e2ca47c10 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableView.m @@ -55,8 +55,10 @@ - (void)updateHeaderStyles { if (_useTransparentHeader) { [self.headerView setBackgroundColor: [UIColor clearColor]]; + [self.separatorView setBackgroundColor: [WPStyleGuide suggestionsSeparatorSmoke]]; } else { [self.headerView setBackgroundColor: [WPStyleGuide suggestionsHeaderSmoke]]; + [self.separatorView setBackgroundColor: [UIColor clearColor]]; } } @@ -181,7 +183,7 @@ - (void)updateConstraints if (!self.suggestions) { self.heightConstraint.constant = STVRowHeight; } else if (self.searchResults.count > maxRows) { - self.heightConstraint.constant = (maxRows * STVRowHeight) + (STVRowHeight*0.4); + self.heightConstraint.constant = ceilf((maxRows * STVRowHeight) + (STVRowHeight*0.4)); } else { self.heightConstraint.constant = self.searchResults.count * STVRowHeight; }