Web:Client: fix plugins

This commit is contained in:
Timofey Boyko 2023-07-20 18:00:18 +03:00
parent 0dea170fea
commit bda1536535
4 changed files with 33 additions and 9 deletions

View File

@ -80,7 +80,7 @@ const Plugin = ({
pluginSettings.type === PluginSettingsType.settingsPage);
const showModalPluginSettings =
withSettings && pluginSettings && !showPluginSettingsPage;
withSettings && pluginSettings?.type && !showPluginSettingsPage;
return (
<StyledPlugin>

View File

@ -66,7 +66,7 @@ const PluginInfo = ({
return (
<StyledInfo>
<img className="plugin-info-image" src={imgSrc} />
{image ? <img className="plugin-info-image" src={imgSrc} /> : <div></div>}
<div className="plugin-info-container">
<Text className="row-name">Version</Text>
<Text>{version}</Text>

View File

@ -107,7 +107,9 @@ class PluginStore {
this.plugins = [];
const plugins = await api.plugins.getPlugins(!isAdmin && !isOwner);
const plugins = await api.plugins.getPlugins(
!isAdmin && !isOwner ? true : null
);
plugins.forEach((plugin) => this.initPlugin(plugin));
};
@ -157,7 +159,7 @@ class PluginStore {
this.plugins.push(plugin);
}
if (plugin.enabled) {
if (plugin.enabled && plugin.onLoadCallback) {
plugin.onLoadCallback();
}
@ -165,13 +167,23 @@ class PluginStore {
plugin.setAPI(origin, proxy, prefix);
}
if (plugin && plugin.contextMenuItems && plugin.enabled) {
if (
plugin &&
plugin.scopes.includes(PluginScopes.ContextMenu) &&
plugin.contextMenuItems &&
plugin.enabled
) {
Array.from(plugin.contextMenuItems).map(([key, value]) => {
this.contextMenuItems.set(key, value);
});
}
if (plugin && plugin.infoPanelItems && plugin.enabled) {
if (
plugin &&
plugin.scopes.includes(PluginScopes.InfoPanel) &&
plugin.infoPanelItems &&
plugin.enabled
) {
Array.from(plugin.infoPanelItems).map(([key, value]) => {
this.infoPanelItems.set(key, value);
});
@ -191,13 +203,21 @@ class PluginStore {
plugin.enabled = false;
if (plugin && plugin.contextMenuItems) {
if (
plugin &&
plugin.scopes.includes(PluginScopes.ContextMenu) &&
plugin.contextMenuItems
) {
Array.from(plugin.contextMenuItems).map(([key, value]) => {
this.contextMenuItems.delete(key);
});
}
if (plugin && plugin.infoPanelItems) {
if (
plugin &&
plugin.scopes.includes(PluginScopes.InfoPanel) &&
plugin.infoPanelItems
) {
Array.from(plugin.infoPanelItems).map(([key, value]) => {
this.infoPanelItems.delete(key);
});

View File

@ -1,9 +1,13 @@
import { request } from "../client";
export const getPlugins = async (enabled) => {
const url = enabled
? `/settings/webplugins?enabled=${enabled}`
: `/settings/webplugins`;
return request({
method: "GET",
url: `/settings/webplugins?enabled=${enabled}`,
url,
});
};