Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
diff --git a/node_modules/@expensify/react-native-live-markdown/android/src/main/cpp/MarkdownParser.cpp b/node_modules/@expensify/react-native-live-markdown/android/src/main/cpp/MarkdownParser.cpp
index 4edd28e..c98baa7 100644
index 534e20c..007eb55 100644
--- a/node_modules/@expensify/react-native-live-markdown/android/src/main/cpp/MarkdownParser.cpp
+++ b/node_modules/@expensify/react-native-live-markdown/android/src/main/cpp/MarkdownParser.cpp
@@ -11,11 +11,15 @@ namespace livemarkdown {
Expand All @@ -18,10 +18,10 @@ index 4edd28e..c98baa7 100644
- const auto markdownWorklet = expensify::livemarkdown::getMarkdownWorklet(parserId);
-
const auto input = jsi::String::createFromUtf8(rt, text->toStdString());
const auto output = markdownRuntime->runGuarded(markdownWorklet, input);
const auto output = markdownRuntime->runSync(markdownWorklet, input);

diff --git a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/MarkdownParser.java b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/MarkdownParser.java
index 3e108db..260925b 100644
index d38fd02..1f56d0e 100644
--- a/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/MarkdownParser.java
+++ b/node_modules/@expensify/react-native-live-markdown/android/src/main/java/com/expensify/livemarkdown/MarkdownParser.java
@@ -1,6 +1,7 @@
Expand Down Expand Up @@ -72,7 +72,7 @@ index 1d73622..f506f5f 100644
withParserId:(nonnull NSNumber *)parserId
completion:(nullable void (^)(void))completion;
diff --git a/node_modules/@expensify/react-native-live-markdown/apple/MarkdownParser.mm b/node_modules/@expensify/react-native-live-markdown/apple/MarkdownParser.mm
index 89bb209..3c438f7 100644
index 28d8ea0..7b14ced 100644
--- a/node_modules/@expensify/react-native-live-markdown/apple/MarkdownParser.mm
+++ b/node_modules/@expensify/react-native-live-markdown/apple/MarkdownParser.mm
@@ -171,13 +171,13 @@ - (void)drainPendingWarmups
Expand Down
2 changes: 1 addition & 1 deletion patches/@expensify/react-native-live-markdown/details.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# `@expensify/react-native-live-markdown` patches

### [@expensify+react-native-live-markdown+0.1.342+001+register-parser-worklet-in-insertion-effect.patch](@expensify+react-native-live-markdown+0.1.342+001+register-parser-worklet-in-insertion-effect.patch)
### [@expensify+react-native-live-markdown+0.1.343+001+register-parser-worklet-in-insertion-effect.patch](@expensify+react-native-live-markdown+0.1.343+001+register-parser-worklet-in-insertion-effect.patch)

- Reason: `MarkdownTextInput` registered its parser worklet during render (`useMemo`) and unregistered it in an effect cleanup. React runs that cleanup without unmounting the component under StrictMode and whenever a hidden `<Activity>` disconnects effects, so the native view kept a parser id that pointed at nothing and the input silently stopped formatting markdown. The patch moves the registration into `useInsertionEffect` in a new `useParserId` hook, chooses the id in JS (one per mounted input, a fresh one on every `parser` change) and turns the native registry into a plain map. A parse for an id with no registered worklet logs a warning and returns no ranges without caching them, so the next parse picks the parser up once it is registered. It carries the `src/`, `lib/` and native (`cpp/`, `apple/`, `android/`) parts of the upstream PR.
- Depends on: `react-native+0.86.0+044+run-insertion-effect-cleanup-in-hidden-subtree.patch`. Without it Fabric skips the insertion cleanup for an input removed while its `<Activity>` is hidden, and the worklet leaks in the native registry. Formatting stays correct either way because ids are never reused.
Expand Down
Loading