1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-15 09:04:04 +02:00
joplin/ElectronClient/gui/NoteEditor/utils/useNoteToolbarButtons.ts
2020-09-15 14:01:07 +01:00

34 lines
923 B
TypeScript

import { useState, useEffect } from 'react';
import CommandService, { ToolbarButtonInfo } from 'lib/services/CommandService';
interface ToolbarButtonInfos {
[key:string]: ToolbarButtonInfo;
}
export default function useNoteToolbarButtons():ToolbarButtonInfos {
const [noteToolbarButtons, setNoteToolbarButtons] = useState<ToolbarButtonInfos>({});
function update() {
const buttonNames = ['historyBackward', 'historyForward', 'toggleEditors', 'startExternalEditing'];
const output:ToolbarButtonInfos = {};
for (const buttonName of buttonNames) {
output[buttonName] = CommandService.instance().commandToToolbarButton(buttonName);
}
setNoteToolbarButtons(output);
}
useEffect(() => {
update();
CommandService.instance().on('commandsEnabledStateChange', update);
return () => {
CommandService.instance().off('commandsEnabledStateChange', update);
};
}, []);
return noteToolbarButtons;
}