Skip to content

Commit ed230d5

Browse files
committed
Add onChange props.
1 parent 42d7c38 commit ed230d5

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,21 @@ import MarkdownEditor from '@uiwjs/react-markdown-editor';
4141
import React from 'react';
4242
import ReactDOM from 'react-dom';
4343

44+
const Dome = () => (
45+
<MarkdownEditor
46+
value={this.state.markdown}
47+
onChange={this.updateMarkdown}
48+
/>
49+
);
50+
```
51+
52+
uncontrolled usage
53+
54+
```jsx
55+
import MarkdownEditor from '@uiwjs/react-markdown-editor';
56+
import React from 'react';
57+
import ReactDOM from 'react-dom';
58+
4459

4560
class App extends React.Component {
4661
constructor() {

src/index.tsx

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import classnames from 'classnames';
22
import * as React from "react";
3+
import { IInstance } from './common/codemirror';
34
import { IProps } from './common/props';
45
import CodeMirror, { ICodeMirror } from './components/CodeMirror';
56
import ToolBar from './components/ToolBar';
67
import './index.less';
78

8-
export interface IMarkdownEditorProps extends IProps, ICodeMirror {
9+
export interface IMarkdownEditor extends IProps, ICodeMirror {
910
prefixCls?: string,
1011
value?: string,
1112
height?: number,
@@ -17,9 +18,10 @@ interface IMarkdownEditorState {
1718
editor?: CodeMirror;
1819
}
1920

20-
export default class MarkdownEditor extends React.PureComponent<IMarkdownEditorProps, IMarkdownEditorState, {}> {
21+
export default class MarkdownEditor extends React.PureComponent<IMarkdownEditor, IMarkdownEditorState, {}> {
2122
public static displayName = 'MarkdownEditor';
22-
public static defaultProps: IMarkdownEditorProps = {
23+
public static defaultProps: IMarkdownEditor = {
24+
onChange: () => null,
2325
prefixCls: 'md-editor',
2426
value: '',
2527
};
@@ -45,9 +47,11 @@ export default class MarkdownEditor extends React.PureComponent<IMarkdownEditorP
4547
this.CodeMirror = editor;
4648
}
4749
}
48-
private onChange = () => {
49-
// private onChange = (editor: CodeMirror, editorChange: CodeMirror.EditorChange) => {
50-
// console.log('test', editor, editorChange);
50+
private onChange = (editor: IInstance, data: CodeMirror.EditorChange, value: string) => {
51+
const { onChange } = this.props as IMarkdownEditor;
52+
if (onChange) {
53+
onChange(editor, data, value);
54+
}
5155
}
5256
private onClick = (type: string) => {
5357
const selection = this.CodeMirror.editor.getSelection();

0 commit comments

Comments
 (0)