1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-06-27 23:28:38 +02:00

Desktop: Added support for Menu API for plugins

This commit is contained in:
Laurent Cozic
2020-10-13 12:57:03 +01:00
parent 2caaf8e8c1
commit c648f19693
37 changed files with 5561 additions and 34 deletions

View File

@ -34,6 +34,9 @@ export const defaultState:State = {
};
export const utils = {
// It is best to use viewsByType instead as this method creates new objects
// which might trigger unecessary renders even when plugin and views haven't changed.
viewInfosByType: function(plugins:PluginStates, type:string):ViewInfo[] {
const output:ViewInfo[] = [];
@ -53,6 +56,22 @@ export const utils = {
return output;
},
viewsByType: function(plugins:PluginStates, type:string):any[] {
const output:any[] = [];
for (const pluginId in plugins) {
const plugin = plugins[pluginId];
for (const viewId in plugin.views) {
const view = plugin.views[viewId];
if (view.type !== type) continue;
output.push(view);
}
}
return output;
},
commandNamesFromViews: function(plugins:PluginStates, toolbarType:string):string[] {
const infos = utils.viewInfosByType(plugins, 'toolbarButton');