Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support custom parsing logic (pass worklet as parser prop) #439

Open
wants to merge 155 commits into
base: main
Choose a base branch
from

Conversation

tomekzaw
Copy link
Collaborator

@tomekzaw tomekzaw commented Jul 25, 2024

Details

This PR removes separate JS bundle with ExpensiMark logic and allows for customizing MarkdownTextInput formatting logic via parser property. Parser needs to be a function that accepts a plaintext string and returns an array of ranges.

Related Issues

#317

Manual Tests

Linked PRs

android/src/main/cpp/MarkdownUtils.cpp Outdated Show resolved Hide resolved
ios/LiveMarkdownModule.mm Outdated Show resolved Hide resolved
ios/RCTMarkdownUtils.mm Outdated Show resolved Hide resolved
package.json Show resolved Hide resolved
src/MarkdownTextInput.tsx Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
android/src/main/cpp/MarkdownUtils.cpp Outdated Show resolved Hide resolved
ios/LiveMarkdownModule.mm Outdated Show resolved Hide resolved
package.json Show resolved Hide resolved
src/MarkdownTextInput.tsx Show resolved Hide resolved
README.md Show resolved Hide resolved
ios/RCTMarkdownUtils.mm Outdated Show resolved Hide resolved
j-piasecki
j-piasecki previously approved these changes Oct 10, 2024
Copy link
Collaborator

@j-piasecki j-piasecki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🪨

#ifdef RCT_NEW_ARCH_ENABLED
RCTScheduler *scheduler = [surfacePresenter_ scheduler];
commitHook_ = std::make_shared<MarkdownCommitHook>(scheduler.uiManager);
installed_ = YES;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this can be removed (and the property as well)

auto json = rt.global().getPropertyAsObject(rt, "JSON").getPropertyAsFunction(rt, "stringify").call(rt, result).asString(rt).utf8(rt);
jni::alias_ref<jni::JString> input,
int parserId) {
const auto markdownRuntime = expensify::livemarkdown::getMarkdownRuntime();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any chance to somehow indicate here that this method is synchronized and mutex isn't necessary here?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants