diff --git a/src/editors/containers/EditorContainer/components/TitleHeader/EditableHeader.jsx b/src/editors/containers/EditorContainer/components/TitleHeader/EditableHeader.jsx index b6e905313..816ecf8cf 100644 --- a/src/editors/containers/EditorContainer/components/TitleHeader/EditableHeader.jsx +++ b/src/editors/containers/EditorContainer/components/TitleHeader/EditableHeader.jsx @@ -11,20 +11,27 @@ export const EditableHeader = ({ inputRef, localTitle, cancelEdit, -}) => ( - - } - onChange={handleChange} - onKeyDown={handleKeyDown} - placeholder="Title" - ref={inputRef} - value={localTitle} - /> - -); +}) => { + const width = localTitle.length * 8 + 200; + return ( + updateTitle(e)} + > + } + onChange={handleChange} + onKeyDown={handleKeyDown} + placeholder="Title" + ref={inputRef} + value={localTitle} + /> + + ); +}; EditableHeader.defaultProps = { inputRef: null, }; diff --git a/src/editors/containers/EditorContainer/components/TitleHeader/__snapshots__/EditableHeader.test.jsx.snap b/src/editors/containers/EditorContainer/components/TitleHeader/__snapshots__/EditableHeader.test.jsx.snap index 83d047269..557b7bb03 100644 --- a/src/editors/containers/EditorContainer/components/TitleHeader/__snapshots__/EditableHeader.test.jsx.snap +++ b/src/editors/containers/EditorContainer/components/TitleHeader/__snapshots__/EditableHeader.test.jsx.snap @@ -1,7 +1,16 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`EditableHeader snapshot snapshot 1`] = ` - + { - dispatch(actions.app.setBlockTitle(localTitle)); - stopEditing(); + updateTitle: (e) => { + if (localTitle.length <= 0) { + setLocalTitle(title); + stopEditing(); + } else if (!e.currentTarget.contains(e.relatedTarget)) { + dispatch(actions.app.setBlockTitle(localTitle)); + stopEditing(); + } }, handleChange: (e) => setLocalTitle(e.target.value), cancelEdit: () => { diff --git a/src/editors/containers/EditorContainer/components/TitleHeader/hooks.test.js b/src/editors/containers/EditorContainer/components/TitleHeader/hooks.test.js index 2a12186e5..85acc89a0 100644 --- a/src/editors/containers/EditorContainer/components/TitleHeader/hooks.test.js +++ b/src/editors/containers/EditorContainer/components/TitleHeader/hooks.test.js @@ -74,7 +74,9 @@ describe('TitleHeader hooks', () => { }); describe('updateTitle hook', () => { it('calls setBlockTitle with localTitle, and stopEditing', () => { - output.updateTitle(); + const div = document.createElement('div'); + const mockEvent = { currentTarget: div }; + output.updateTitle(mockEvent); expect(dispatch).toHaveBeenCalledWith(actions.app.setBlockTitle(output.localTitle)); expect(stopEditing).toHaveBeenCalled(); });