I am using TinyMCE v5 inline editor. I want to disable undo/redo only for keyboard shortcuts i.e. Command+Z and Command+Shift+Z
Below is my code
class TextBlock extends Component {
handleChange = (newText) => {
*** updating state with newText
};
handleBeforeAddUndo = () => {
**** commented below code because it restricts undo/redo even on undo button click. I dont want that.**
// return false;
};
handleUndo = (args) => {
// nothing here
};
render() {
const { content } = this.props.block;
return (
<Editor
value={content}
inline={true}
tinymceScriptSrc={process.env.PUBLIC_URL + '/tinymce/js/tinymce/tinymce.min.js'}
init={{
height: 500,
menubar: false,
block_formats: 'Heading1=h1; Heading2=h2; Heading3=h3; Paragraph=p;',
plugins: ['lists link paste'],
setup: function (editor) {
**NOTE: below i tried 'meta+z' but it doesn't work.**
editor.addShortcut('meta+g', 'custom undo', () => {
console.log('you pressed cmd+z');
});
},
toolbar1:
'undo redo | formatselect | bold italic link | forecolor backcolor |',
toolbar2:
'bullist numlist outdent indent| alignleft aligncenter alignright alignjustify | removeformat',
}}
onEditorChange={(newText) => this.handleChange(newText)}
onBeforeAddUndo={this.handleBeforeAddUndo}
onUndo={this.handleUndo}
/>
);
}
}
How can I achieve this use case? Thank you all for the valuable time.
Regarding to the documentation I would try to set hasRedo():Boolean and hasUndo():Boolean values to false. Please try and tell does it work in your case?
https://www.tiny.cloud/docs/api/tinymce/tinymce.undomanager/#hasredo
setup : function(editor) {
editor.UndoManager.hasUndo(false)
editor.UndoManager.hasRedo(false)
};