grapesjs-plugin-toolbox
Version:
Grapesjs Plugin Toolbox
40 lines (35 loc) • 1.46 kB
JavaScript
import { cmdSave } from './consts';
export default (editor, config) => {
const cm = editor.Commands;
const pn = editor.Panels;
const um = editor.UndoManager;
const pfx = editor.Config.stylePrefix;
cm.add(cmdSave, e => {
editor.store(res => console.log("Saved..."));
});
const pnOptions = pn.getPanel('options');
pnOptions.get('buttons').add([{
id: 'undo',
className: 'fa fa-undo', //reply
attributes: { title: 'undo' },
command: e => e.runCommand('core:undo'),
}, {
id: 'redo',
className: 'fa fa-repeat', //share
attributes: { title: 'redo' },
command: e => e.runCommand('core:redo'),
}, {
id: cmdSave,
className: 'fa fa-floppy-o',
attributes: { title: 'save' },
command: e => e.runCommand(cmdSave),
}]);
const undoBtn = pn.getButton('options', 'undo');
const redoBtn = pn.getButton('options', 'redo');
const saveBtn = pn.getButton('options', cmdSave);
editor.on('component:update', () => {
um.hasUndo() ? undoBtn.set('className', `${pfx}font-aqua fa fa-undo`) : undoBtn.set('className', 'fa fa-undo');
um.hasRedo() ? redoBtn.set('className', `${pfx}font-aqua fa fa-repeat`) : redoBtn.set('className', 'fa fa-repeat');
editor.getDirtyCount() > 0 ? saveBtn.set('className', `${pfx}font-green fa fa-floppy-o`) : saveBtn.set('className', 'fa fa-floppy-o');
});
}