Skip to content

Commit 45a74a6

Browse files
committed
feat: add onPreviewMode props. (#208)
1 parent 78fb724 commit 45a74a6

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

core/README.md

+3
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ const Demo = () => {
259259
- `toolbarsMode?: ICommand[] | string[]` - Tool display settings.
260260
- `onChange?:function(editor: IInstance, data: CodeMirror.EditorChange, value: string)` - called when a change is made
261261
- `onBlur?: function(editor: IInstance, event: Event)` - event occurs when an object loses focus
262+
- `onPreviewMode?: (isHide: boolean) => void` - Edit mode and preview mode switching event
262263
- `previewProps` - [react-markdown options](https://github.com/uiwjs/react-markdown-preview/tree/v2.1.0#options-props)
263264

264265
```ts
@@ -293,6 +294,8 @@ export interface IMarkdownEditor extends ReactCodeMirrorProps {
293294
previewProps?: MarkdownPreviewProps;
294295
/** replace the default `extensions` */
295296
reExtensions?: ReactCodeMirrorProps['extensions'];
297+
/** Edit mode and preview mode switching event */
298+
onPreviewMode?: (isHide: boolean) => void;
296299
}
297300
```
298301

core/src/commands/preview.tsx

+6-2
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,14 @@ const Preview: React.FC<{ command: ICommand; editorProps: IMarkdownEditor & Tool
3434
}
3535
}
3636
}, [visible, containerEditor, preview, previewWidth]);
37-
if (!enablePreview) return;
3837

38+
if (!enablePreview) return;
39+
const handle = () => {
40+
editorProps.onPreviewMode && editorProps.onPreviewMode(!visible);
41+
setVisible(!visible);
42+
};
3943
return (
40-
<button onClick={() => setVisible(!visible)} type="button" className={visible ? 'active' : ''}>
44+
<button onClick={handle} type="button" className={visible ? 'active' : ''}>
4145
{props.command.icon}
4246
</button>
4347
);

core/src/index.tsx

+3
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ export interface IMarkdownEditor extends ReactCodeMirrorProps {
5151
previewProps?: MarkdownPreviewProps;
5252
/** replace the default `extensions` */
5353
reExtensions?: ReactCodeMirrorProps['extensions'];
54+
/** Edit mode and preview mode switching event */
55+
onPreviewMode?: (isHide: boolean) => void;
5456
}
5557

5658
export interface ToolBarProps {
@@ -100,6 +102,7 @@ function MarkdownEditorInternal(
100102
extensions = [],
101103
previewWidth = '50%',
102104
reExtensions,
105+
onPreviewMode,
103106
...codemirrorProps
104107
} = props;
105108
const [value, setValue] = useState(props.value || '');

0 commit comments

Comments
 (0)