Skip to content

Commit

Permalink
feat: add renderPreview props.
Browse files Browse the repository at this point in the history
  • Loading branch information
jaywcjlove committed Aug 30, 2022
1 parent 10e5f91 commit af186e0
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 7 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,8 @@ export interface IMarkdownEditor extends ReactCodeMirrorProps {
toolbars?: IToolBarProps['toolbars'];
/** Tool display settings. */
toolbarsMode?: IToolBarProps['toolbars'];
/** Override the default preview component */
renderPreview?: (props: MarkdownPreviewProps, visible: boolean) => React.ReactNode;
/** [@uiw/react-markdown-preview](https://github.com/uiwjs/react-markdown-preview#options-props) options */
previewProps?: MarkdownPreviewProps;
}
Expand Down
17 changes: 10 additions & 7 deletions src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ export interface IMarkdownEditor extends ReactCodeMirrorProps {
visibleEditor?: boolean;
/** Option to hide the tool bar. */
hideToolbar?: boolean;
/** Override the default preview component */
renderPreview?: (props: MarkdownPreviewProps, visible: boolean) => React.ReactNode;
/** Tool display settings. */
toolbars?: IToolBarProps['toolbars'];
/** Tool display settings. */
Expand Down Expand Up @@ -62,6 +64,7 @@ function MarkdownEditor(
toolbars = getCommands(),
toolbarsMode = getModeCommands(),
visible = true,
renderPreview,
visibleEditor = true,
hideToolbar = true,
previewProps = {},
Expand Down Expand Up @@ -92,6 +95,8 @@ function MarkdownEditor(
scrollerStyle,
...extensions,
];
previewProps['className'] = `${prefixCls}-preview`;
previewProps['source'] = value;
return (
<div className={`${prefixCls || ''} wmde-markdown-var ${className || ''}`} ref={container}>
{hideToolbar && (
Expand All @@ -116,13 +121,11 @@ function MarkdownEditor(
/>
)}
</div>
<MarkdownPreview
{...previewProps}
data-visible={!!visible}
className={`${prefixCls}-preview`}
ref={previewContainer}
source={value}
/>
{renderPreview ? (
renderPreview(previewProps, !!visible)
) : (
<MarkdownPreview {...previewProps} data-visible={!!visible} ref={previewContainer} />
)}
</div>
</div>
);
Expand Down

0 comments on commit af186e0

Please sign in to comment.