diff --git a/ios/Podfile.lock b/ios/Podfile.lock index bff8e0799f40..7176ecd8453e 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -2360,7 +2360,7 @@ PODS: - RNGoogleSignin (10.0.1): - GoogleSignIn (~> 7.0) - React-Core - - RNLiveMarkdown (0.1.120): + - RNLiveMarkdown (0.1.143): - DoubleConversion - glog - hermes-engine @@ -2380,9 +2380,9 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNLiveMarkdown/common (= 0.1.120) + - RNLiveMarkdown/common (= 0.1.143) - Yoga - - RNLiveMarkdown/common (0.1.120): + - RNLiveMarkdown/common (0.1.143): - DoubleConversion - glog - hermes-engine @@ -3229,7 +3229,7 @@ SPEC CHECKSUMS: RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 RNGestureHandler: 8781e2529230a1bc3ea8d75e5c3cd071b6c6aed7 RNGoogleSignin: ccaa4a81582cf713eea562c5dd9dc1961a715fd0 - RNLiveMarkdown: cfc927fc0b1182e364237c72692e079107c6f5f1 + RNLiveMarkdown: e44918843c2638692348f39eafc275698baf0444 RNLocalize: d4b8af4e442d4bcca54e68fc687a2129b4d71a81 rnmapbox-maps: 460d6ff97ae49c7d5708c3212c6521697c36a0c4 RNPermissions: 0b1429b55af59d1d08b75a8be2459f65a8ac3f28 diff --git a/package-lock.json b/package-lock.json index d9763b6e1125..76e8dbd4c230 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "license": "MIT", "dependencies": { "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.120", + "@expensify/react-native-live-markdown": "0.1.143", "@expo/metro-runtime": "~3.2.3", "@formatjs/intl-datetimeformat": "^6.12.5", "@formatjs/intl-listformat": "^7.5.7", @@ -3569,9 +3569,9 @@ } }, "node_modules/@expensify/react-native-live-markdown": { - "version": "0.1.120", - "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.120.tgz", - "integrity": "sha512-MQ8/gPb2u8U1HPClwKhrf2sqjCpi56g5aEhonYOejMPd7kUKpV0nlccSJgy5UEwJFhtxL+cl7SgnXq8xJNwxng==", + "version": "0.1.143", + "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.143.tgz", + "integrity": "sha512-hZXYjKyTl/b2p7Ig9qhoB7cfVtTTcoE2cWvea8NJT3f5ZYckdyHDAgHI4pg0S0N68jP205Sk5pzqlltZUpZk5w==", "workspaces": [ "parser", "example", diff --git a/package.json b/package.json index ce3aa0839a32..05cf1632a354 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ }, "dependencies": { "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.120", + "@expensify/react-native-live-markdown": "0.1.143", "@expo/metro-runtime": "~3.2.3", "@formatjs/intl-datetimeformat": "^6.12.5", "@formatjs/intl-listformat": "^7.5.7", diff --git a/patches/@expensify+react-native-live-markdown+0.1.120+001+intial.patch b/patches/@expensify+react-native-live-markdown+0.1.120+001+intial.patch deleted file mode 100644 index 4e59d206268e..000000000000 --- a/patches/@expensify+react-native-live-markdown+0.1.120+001+intial.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/LiveMarkdownModule.java b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/LiveMarkdownModule.java -index ed1428b..80641ce 100644 ---- a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/LiveMarkdownModule.java -+++ b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/LiveMarkdownModule.java -@@ -1,7 +1,6 @@ - package com.expensify.livemarkdown; - - import com.facebook.react.bridge.ReactApplicationContext; --import com.facebook.react.bridge.UIManager; - import com.facebook.react.fabric.FabricUIManager; - import com.facebook.react.uimanager.UIManagerHelper; - import com.facebook.react.uimanager.common.UIManagerType; -diff --git a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/MarkdownUtils.java b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/MarkdownUtils.java -index 7711d8b..0000caa 100644 ---- a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/MarkdownUtils.java -+++ b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/MarkdownUtils.java -@@ -1,6 +1,5 @@ - package com.expensify.livemarkdown; - --import static com.facebook.infer.annotation.ThreadConfined.UI; - - import android.content.res.AssetManager; - import android.text.SpannableStringBuilder; -@@ -8,10 +7,7 @@ import android.text.Spanned; - - import androidx.annotation.NonNull; - --import com.facebook.infer.annotation.Assertions; --import com.facebook.infer.annotation.ThreadConfined; --import com.facebook.react.bridge.UiThreadUtil; --import com.facebook.react.views.text.CustomLineHeightSpan; -+import com.facebook.react.views.text.internal.span.CustomLineHeightSpan; - import com.facebook.soloader.SoLoader; - - import org.json.JSONArray; -diff --git a/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt b/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt -index f5dfedf..1609c60 100644 ---- a/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt -+++ b/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt -@@ -42,6 +42,8 @@ target_link_libraries( - ReactAndroid::rrc_textinput - ReactAndroid::react_render_textlayoutmanager - ReactAndroid::react_render_imagemanager -+ ReactAndroid::reactnativejni -+ ReactAndroid::mapbufferjni - fabricjni - fbjni - folly_runtime diff --git a/patches/@expensify+react-native-live-markdown+0.1.120+002+text-layout-manager.patch b/patches/@expensify+react-native-live-markdown+0.1.120+002+text-layout-manager.patch deleted file mode 100644 index 24f327649253..000000000000 --- a/patches/@expensify+react-native-live-markdown+0.1.120+002+text-layout-manager.patch +++ /dev/null @@ -1,102 +0,0 @@ -diff --git a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/CustomMountingManager.java b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/CustomMountingManager.java -index 1b4381b..7e3aebe 100644 ---- a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/CustomMountingManager.java -+++ b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/CustomMountingManager.java -@@ -13,7 +13,6 @@ import android.text.TextPaint; - import androidx.annotation.NonNull; - import androidx.annotation.Nullable; - --import com.facebook.common.logging.FLog; - import com.facebook.react.bridge.ReactContext; - import com.facebook.react.bridge.ReadableMap; - import com.facebook.react.common.mapbuffer.MapBuffer; -@@ -21,8 +20,8 @@ import com.facebook.react.fabric.mounting.MountingManager; - import com.facebook.react.uimanager.PixelUtil; - import com.facebook.react.uimanager.ViewManagerRegistry; - import com.facebook.react.views.text.TextAttributeProps; --import com.facebook.react.views.text.TextInlineViewPlaceholderSpan; --import com.facebook.react.views.text.TextLayoutManagerMapBuffer; -+import com.facebook.react.views.text.internal.span.TextInlineViewPlaceholderSpan; -+import com.facebook.react.views.text.TextLayoutManager; - import com.facebook.yoga.YogaMeasureMode; - import com.facebook.yoga.YogaMeasureOutput; - -@@ -63,7 +62,7 @@ public class CustomMountingManager extends MountingManager { - @Nullable float[] attachmentsPositions) { - - Spannable text = -- TextLayoutManagerMapBuffer.getOrCreateSpannableForText(context, attributedString, null); -+ TextLayoutManager.getOrCreateSpannableForText(context, attributedString, null); - - if (text == null) { - return 0; -@@ -71,14 +70,14 @@ public class CustomMountingManager extends MountingManager { - - int textBreakStrategy = - TextAttributeProps.getTextBreakStrategy( -- paragraphAttributes.getString(TextLayoutManagerMapBuffer.PA_KEY_TEXT_BREAK_STRATEGY)); -+ paragraphAttributes.getString(TextLayoutManager.PA_KEY_TEXT_BREAK_STRATEGY)); - boolean includeFontPadding = -- paragraphAttributes.contains(TextLayoutManagerMapBuffer.PA_KEY_INCLUDE_FONT_PADDING) -- ? paragraphAttributes.getBoolean(TextLayoutManagerMapBuffer.PA_KEY_INCLUDE_FONT_PADDING) -+ paragraphAttributes.contains(TextLayoutManager.PA_KEY_INCLUDE_FONT_PADDING) -+ ? paragraphAttributes.getBoolean(TextLayoutManager.PA_KEY_INCLUDE_FONT_PADDING) - : DEFAULT_INCLUDE_FONT_PADDING; - int hyphenationFrequency = - TextAttributeProps.getHyphenationFrequency( -- paragraphAttributes.getString(TextLayoutManagerMapBuffer.PA_KEY_HYPHENATION_FREQUENCY)); -+ paragraphAttributes.getString(TextLayoutManager.PA_KEY_HYPHENATION_FREQUENCY)); - - // StaticLayout returns wrong metrics for the last line if it's empty, add something to the - // last line so it's measured correctly -@@ -89,13 +88,15 @@ public class CustomMountingManager extends MountingManager { - text = sb; - } - -+ Layout.Alignment alignment = TextLayoutManager.getTextAlignment(attributedString, text); -+ - markdownUtils.applyMarkdownFormatting((SpannableStringBuilder)text); - - BoringLayout.Metrics boring = BoringLayout.isBoring(text, sTextPaintInstance); - -- Class mapBufferClass = TextLayoutManagerMapBuffer.class; -+ Class mapBufferClass = TextLayoutManager.class; - try { -- Method createLayoutMethod = mapBufferClass.getDeclaredMethod("createLayout", Spannable.class, BoringLayout.Metrics.class, float.class, YogaMeasureMode.class, boolean.class, int.class, int.class); -+ Method createLayoutMethod = mapBufferClass.getDeclaredMethod("createLayout", Spannable.class, BoringLayout.Metrics.class, float.class, YogaMeasureMode.class, boolean.class, int.class, int.class, Layout.Alignment.class); - createLayoutMethod.setAccessible(true); - - Layout layout = (Layout)createLayoutMethod.invoke( -@@ -106,11 +107,12 @@ public class CustomMountingManager extends MountingManager { - widthYogaMeasureMode, - includeFontPadding, - textBreakStrategy, -- hyphenationFrequency); -+ hyphenationFrequency, -+ alignment); - - int maximumNumberOfLines = -- paragraphAttributes.contains(TextLayoutManagerMapBuffer.PA_KEY_MAX_NUMBER_OF_LINES) -- ? paragraphAttributes.getInt(TextLayoutManagerMapBuffer.PA_KEY_MAX_NUMBER_OF_LINES) -+ paragraphAttributes.contains(TextLayoutManager.PA_KEY_MAX_NUMBER_OF_LINES) -+ ? paragraphAttributes.getInt(TextLayoutManager.PA_KEY_MAX_NUMBER_OF_LINES) - : UNSET; - - int calculatedLineCount = -diff --git a/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt b/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt -index 1609c60..1888eea 100644 ---- a/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt -+++ b/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/CMakeLists.txt -@@ -65,6 +65,12 @@ target_link_libraries( - yoga - android - log -+ mapbufferjni -+ reactnativejni -+ react_render_consistency -+ react_performance_timeline -+ react_render_observers_events -+ react_featureflags - ) - - target_compile_options( diff --git a/patches/@expensify+react-native-live-markdown+0.1.120+003+shadow-node.patch b/patches/@expensify+react-native-live-markdown+0.1.120+003+shadow-node.patch deleted file mode 100644 index d3ff41b29249..000000000000 --- a/patches/@expensify+react-native-live-markdown+0.1.120+003+shadow-node.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff --git a/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.cpp b/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.cpp -index 104363d..9240e9e 100644 ---- a/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.cpp -+++ b/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.cpp -@@ -11,7 +11,7 @@ namespace react { - extern const char MarkdownTextInputDecoratorViewComponentName[] = - "MarkdownTextInputDecoratorView"; - --const ShadowNodeFragment::Value -+const OwningShadowNodeFragment - MarkdownTextInputDecoratorShadowNode::updateFragmentState( - ShadowNodeFragment const &fragment, - ShadowNodeFamily::Shared const &family) { -@@ -24,12 +24,12 @@ MarkdownTextInputDecoratorShadowNode::updateFragmentState( - // propagated on every clone we need it to clear the reference in the registry - // when the view is removed from window it cannot be done in the destructor, - // as multiple shadow nodes for the same family may be created -- return ShadowNodeFragment::Value({ -+ return OwningShadowNodeFragment{ - .props = fragment.props, - .children = fragment.children, - .state = - std::make_shared(newStateData, *fragment.state), -- }); -+ }; - } - - } // namespace react -diff --git a/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.h b/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.h -index 294e0d3..597752c 100644 ---- a/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.h -+++ b/node_modules/@expensify/react-native-live-markdown/cpp/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.h -@@ -11,6 +11,20 @@ - namespace facebook { - namespace react { - -+struct OwningShadowNodeFragment { -+ Props::Shared props; -+ ShadowNode::SharedListOfShared children; -+ State::Shared state; -+ -+ operator ShadowNodeFragment() const { -+ return ShadowNodeFragment { -+ .props = props, -+ .children = children, -+ .state = state -+ }; -+ } -+}; -+ - JSI_EXPORT extern const char MarkdownTextInputDecoratorViewComponentName[]; - - class JSI_EXPORT MarkdownTextInputDecoratorShadowNode final -@@ -22,8 +36,7 @@ public: - MarkdownTextInputDecoratorShadowNode(ShadowNodeFragment const &fragment, - ShadowNodeFamily::Shared const &family, - ShadowNodeTraits traits) -- : ConcreteViewShadowNode(static_cast( -- updateFragmentState(fragment, family)), -+ : ConcreteViewShadowNode(updateFragmentState(fragment, family), - family, traits) {} - - MarkdownTextInputDecoratorShadowNode(ShadowNode const &sourceShadowNode, -@@ -37,7 +50,7 @@ public: - } - - private: -- static const ShadowNodeFragment::Value -+ static const OwningShadowNodeFragment - updateFragmentState(ShadowNodeFragment const &fragment, - ShadowNodeFamily::Shared const &family); - }; diff --git a/patches/@expensify+react-native-live-markdown+0.1.120+004+hybrid-app.patch b/patches/@expensify+react-native-live-markdown+0.1.120+004+hybrid-app.patch deleted file mode 100644 index 00f87066c9fa..000000000000 --- a/patches/@expensify+react-native-live-markdown+0.1.120+004+hybrid-app.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/node_modules/@expensify/react-native-live-markdown/RNLiveMarkdown.podspec b/node_modules/@expensify/react-native-live-markdown/RNLiveMarkdown.podspec -index b1620ad..b3ea39c 100644 ---- a/node_modules/@expensify/react-native-live-markdown/RNLiveMarkdown.podspec -+++ b/node_modules/@expensify/react-native-live-markdown/RNLiveMarkdown.podspec -@@ -23,10 +23,10 @@ Pod::Spec.new do |s| - install_modules_dependencies(s) - - if ENV['USE_FRAMEWORKS'] && ENV['RCT_NEW_ARCH_ENABLED'] -- add_dependency(s, "React-Fabric", :additional_framework_paths => [ -+ add_dependency(s, "React-FabricComponents", :additional_framework_paths => [ - "react/renderer/textlayoutmanager/platform/ios", -- "react/renderer/components/textinput/iostextinput", -- ]) -+ "react/renderer/components/textinput/platform/ios", -+ ]); - end - - s.subspec "common" do |ss|