From ff01bee2e086015d552eb3759bfb5a7e152547be Mon Sep 17 00:00:00 2001 From: Alf Eaton <eaton.alf@gmail.com> Date: Fri, 1 Sep 2017 13:51:38 +0100 Subject: [PATCH] Allow onDocumentChange to be used for changes --- packages/xpub-edit/src/components/Editor.js | 24 +++++++++++-------- .../src/components/abstract/AbstractEditor.js | 2 +- .../src/components/note/NoteEditor.js | 2 +- .../src/components/title/TitleEditor.js | 2 +- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/packages/xpub-edit/src/components/Editor.js b/packages/xpub-edit/src/components/Editor.js index b05ec99b5..740b76d27 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 91da1b2a9..e45e42910 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 b5d50d22d..e24026791 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 a3b966ac8..9c62c8ea3 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} /> ) -- GitLab