diff --git a/packages/xpub-edit/src/components/Editor.js b/packages/xpub-edit/src/components/Editor.js index b05ec99b502b1bbcbbf30dc90a5e51a4d8c53215..740b76d2700d74861458fce650f41ded45ae5514 100644 --- a/packages/xpub-edit/src/components/Editor.js +++ b/packages/xpub-edit/src/components/Editor.js @@ -47,18 +47,22 @@ class Editor extends React.Component { } // TODO: debouncing? - // TODO: only fire on onBlur or onSubmit? - // TODO: send an event? - // onDocumentChange = (document, state) => { - // this.props.onChange(this.props.converter.serialize(state)) - // } - - // TODO: only fire onChange if actually changed - // TODO: is this appropriate? + onDocumentChange = (document, state) => { + const { converter, onDocumentChange } = this.props + + if (typeof onDocumentChange === 'function') { + onDocumentChange(converter.serialize(state)) + } + } + + // TODO: only fire onChange if actually changed? onBlur = () => { + const { converter, onChange } = this.props const { state } = this.state - this.props.onChange(this.props.converter.serialize(state)) + if (typeof onChange === 'function') { + onChange(converter.serialize(state)) + } } onKeyDown = (event, { isMod, key }, state) => { @@ -148,7 +152,7 @@ class Editor extends React.Component { onKeyDown={this.onKeyDown} onPaste={this.onReceive} onDrop={this.onReceive} - // onDocumentChange={this.onDocumentChange} + onDocumentChange={this.onDocumentChange} placeholder={placeholder} spellCheck /> diff --git a/packages/xpub-edit/src/components/abstract/AbstractEditor.js b/packages/xpub-edit/src/components/abstract/AbstractEditor.js index 91da1b2a91e22c37b47427ccb9fc94253ca8f4e9..e45e429109a4c3c16e90258a32d55353a5ebdcff 100644 --- a/packages/xpub-edit/src/components/abstract/AbstractEditor.js +++ b/packages/xpub-edit/src/components/abstract/AbstractEditor.js @@ -13,7 +13,7 @@ const AbstractEditor = ({ value, placeholder, title, onChange }) => ( keys={keys} placeholder={placeholder} title={title} - onChange={onChange} + onDocumentChange={onChange} /> ) diff --git a/packages/xpub-edit/src/components/note/NoteEditor.js b/packages/xpub-edit/src/components/note/NoteEditor.js index b5d50d22dd6e5eb3df09ed0746834eb317f8cb3d..e24026791ca86301a5b4b022b559e2a481c4e107 100644 --- a/packages/xpub-edit/src/components/note/NoteEditor.js +++ b/packages/xpub-edit/src/components/note/NoteEditor.js @@ -13,7 +13,7 @@ const NoteEditor = ({ value, placeholder, title, onChange }) => ( keys={keys} placeholder={placeholder} title={title} - onChange={onChange} + onDocumentChange={onChange} /> ) diff --git a/packages/xpub-edit/src/components/title/TitleEditor.js b/packages/xpub-edit/src/components/title/TitleEditor.js index a3b966ac8c221f414ac4593319c59790c9fab8db..9c62c8ea3ff2803b7ae94f23015fd907cf1e7cf6 100644 --- a/packages/xpub-edit/src/components/title/TitleEditor.js +++ b/packages/xpub-edit/src/components/title/TitleEditor.js @@ -15,7 +15,7 @@ const TitleEditor = ({ value, placeholder, title, onChange }) => ( keys={keys} placeholder={placeholder} title={title} - onChange={onChange} + onDocumentChange={onChange} /> )