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

Editor becomes unresponsive when content is long #200

Open
tnhu opened this issue Apr 10, 2023 · 6 comments
Open

Editor becomes unresponsive when content is long #200

tnhu opened this issue Apr 10, 2023 · 6 comments

Comments

@tnhu
Copy link

tnhu commented Apr 10, 2023

Try on https://uiwjs.github.io/react-markdown-editor/ with a very long document (Let's say you duplicate the content until it reaches 1000 lines), the editor becomes slower and slower. If you double or triple the lines, it becomes very unresponsive. Type something and it shows up after some seconds.

I tested the same contents on https://codemirror.net/try/?example=Markdown%20code%20block%20highlighting. It does not have the same problem. I guess the issue stays in this library's implementation.

Note that I tested with Preview OFF, plus under an incognito Chrome window.

@jaywcjlove
Copy link
Member

<div className={clsPreview} ref={preview}>
{renderPreview ? (
renderPreview(previewProps, !!visible)
) : (
<MarkdownPreview {...previewProps} data-visible={!!visible} />
)}
</div>

@tnhu This is due to the rendering of long text by react-markdown. Use renderPreview to lazily load and display the markdown text.

@tnhu
Copy link
Author

tnhu commented Apr 18, 2023

@jaywcjlove I pass renderPreview as an empty function. Test locally and the slowness is still there... Also FYI, I use 5.11.1.

@jaywcjlove
Copy link
Member

https://codesandbox.io/embed/react-markdown-editor-https-github-com-uiwjs-react-markdown-editor-issues-200-zsdt58?fontsize=14&hidenavigation=1&theme=dark

@tnhu Quick speed boost if you render custom

<MarkdownEditor
  height={300}
  value={markdown}
+  renderPreview={() => <div />}
/>

@yusufozturk
Copy link

To improve performance, is it possible to disable renderPreview completely while preview section is not visible?
@jaywcjlove

@jaywcjlove
Copy link
Member

@yusufozturk

import React from 'react';
import MarkdownEditor from '@uiw/react-markdown-editor';

const mdStr = `# This is a H1  \n## This is a H2  \n###### This is a H6`;

const Dome = () => {
  return (
    <MarkdownEditor
      value={mdStr}
+      renderPreview={() => null}
      onChange={(value, viewUpdate) => {

      }}
    />
  )
};

@yusufozturk
Copy link

🤦‍♂️ thanks 😄🙏

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

No branches or pull requests

3 participants