From 83c457d1948e8ee42476481d28b995692f6591df Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 22 Feb 2021 13:30:53 +0100 Subject: [PATCH] Don't display dependent modules in the plugin manager (#903) fix https://github.com/ethereum/remix-project/issues/849 --- .../src/app/components/plugin-manager-component.js | 2 ++ apps/remix-ide/src/remixAppManager.js | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/apps/remix-ide/src/app/components/plugin-manager-component.js b/apps/remix-ide/src/app/components/plugin-manager-component.js index 21325c018e..e3d519b55a 100644 --- a/apps/remix-ide/src/app/components/plugin-manager-component.js +++ b/apps/remix-ide/src/app/components/plugin-manager-component.js @@ -187,6 +187,7 @@ class PluginManagerComponent extends ViewPlugin { // Filtering helpers const isFiltered = (profile) => (profile.displayName ? profile.displayName : profile.name).toLowerCase().includes(this.filter) const isNotRequired = (profile) => !this.appManager.isRequired(profile.name) + const isNotDependent = (profile) => !this.appManager.isDependent(profile.name) const isNotHome = (profile) => profile.name !== 'home' const sortByName = (profileA, profileB) => { const nameA = ((profileA.displayName) ? profileA.displayName : profileA.name).toUpperCase() @@ -198,6 +199,7 @@ class PluginManagerComponent extends ViewPlugin { const { actives, inactives } = this.appManager.getAll() .filter(isFiltered) .filter(isNotRequired) + .filter(isNotDependent) .filter(isNotHome) .sort(sortByName) .reduce(({ actives, inactives }, profile) => { diff --git a/apps/remix-ide/src/remixAppManager.js b/apps/remix-ide/src/remixAppManager.js index 13ee13438f..60c4290e67 100644 --- a/apps/remix-ide/src/remixAppManager.js +++ b/apps/remix-ide/src/remixAppManager.js @@ -11,6 +11,8 @@ const requiredModules = [ // services + layout views + system views 'fileManager', 'contentImport', 'web3Provider', 'scriptRunner', 'fetchAndCompile', 'mainPanel', 'hiddenPanel', 'sidePanel', 'menuicons', 'fileExplorers', 'terminal', 'settings', 'pluginManager', 'tabs', 'udapp'] +const dependentModules = ['git'] // module which shouldn't be manually activated (e.g git is activated by remixd) + export function isNative (name) { const nativePlugins = ['vyper', 'workshops', 'debugger', 'remixd', 'menuicons'] return nativePlugins.includes(name) || requiredModules.includes(name) @@ -85,6 +87,10 @@ export class RemixAppManager extends PluginManager { _paq.push(['trackEvent', 'pluginManager', 'deactivate', plugin.name]) } + isDependent (name) { + return dependentModules.includes(name) + } + isRequired (name) { // excluding internal use plugins return requiredModules.includes(name)