You've already forked joplin
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:
@ -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');
|
||||
|
||||
|
Reference in New Issue
Block a user