Skip to content

Commit 2f1293d

Browse files
committed
feat: add enablePreview props. (#205)
1 parent ae050d8 commit 2f1293d

File tree

3 files changed

+29
-8
lines changed

3 files changed

+29
-8
lines changed

core/README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,20 @@ const Dome = () => (
167167
export default Dome;
168168
```
169169

170+
```jsx mdx:preview
171+
import React from "react";
172+
import MarkdownEditor from '@uiw/react-markdown-editor';
173+
174+
const Dome = () => (
175+
<MarkdownEditor
176+
value="Hello Markdown!"
177+
height="200px"
178+
enablePreview={false}
179+
/>
180+
);
181+
182+
export default Dome;
183+
```
170184
## Support Nextjs
171185

172186
Use examples in [nextjs](https://nextjs.org/).

core/src/commands/preview.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { IMarkdownEditor, ToolBarProps } from '..';
44

55
const Preview: React.FC<{ command: ICommand; editorProps: IMarkdownEditor & ToolBarProps }> = (props) => {
66
const { editorProps } = props;
7-
const { containerEditor, preview, previewWidth = '50%' } = editorProps;
7+
const { containerEditor, preview, previewWidth = '50%', enablePreview } = editorProps;
88
const [visible, setVisible] = useState(props.editorProps.visible);
99
useEffect(() => setVisible(props.editorProps.visible), [props.editorProps.visible]);
1010
useEffect(() => {
@@ -35,6 +35,8 @@ const Preview: React.FC<{ command: ICommand; editorProps: IMarkdownEditor & Tool
3535
}
3636
}, [visible, containerEditor, preview, previewWidth]);
3737

38+
if (!enablePreview) return;
39+
3840
return (
3941
<button onClick={() => setVisible(!visible)} type="button" className={visible ? 'active' : ''}>
4042
{props.command.icon}

core/src/index.tsx

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ export interface IMarkdownEditor extends ReactCodeMirrorProps {
3333
renderPreview?: (props: MarkdownPreviewProps, initVisible: boolean) => React.ReactNode;
3434
/** Preview expanded width @default `50%` */
3535
previewWidth?: string;
36+
/** Whether to enable preview function @default `true` */
37+
enablePreview?: boolean;
3638
/** Whether to enable scrolling */
3739
enableScroll?: boolean;
3840
/** Tool display settings. */
@@ -93,6 +95,7 @@ function MarkdownEditorInternal(
9395
hideToolbar = true,
9496
toolbarBottom = false,
9597
enableScroll = true,
98+
enablePreview = true,
9699
previewProps = {},
97100
extensions = [],
98101
previewWidth = '50%',
@@ -189,13 +192,15 @@ function MarkdownEditorInternal(
189192
/>
190193
)}
191194
</div>
192-
<div className={clsPreview} ref={preview}>
193-
{renderPreview ? (
194-
renderPreview(previewProps, !!visible)
195-
) : (
196-
<MarkdownPreview {...previewProps} data-visible={!!visible} />
197-
)}
198-
</div>
195+
{enablePreview && (
196+
<div className={clsPreview} ref={preview}>
197+
{renderPreview ? (
198+
renderPreview(previewProps, !!visible)
199+
) : (
200+
<MarkdownPreview {...previewProps} data-visible={!!visible} />
201+
)}
202+
</div>
203+
)}
199204
</div>
200205
);
201206

0 commit comments

Comments
 (0)