[Update] Add the safety that is not show on UI if the plugin, downloaded, is not supported.

This commit is contained in:
Sakamoto Shiina
2025-04-24 21:48:05 +09:00
parent e9aa3aa8ac
commit b9d9edb7c3
4 changed files with 26 additions and 5 deletions

View File

@@ -7,6 +7,7 @@ export const MergePluginsController = () => {
const { const {
currentLoadedPlugins, currentLoadedPlugins,
updatePluginsData, updatePluginsData,
updateTargetPluginData,
currentPluginsData, currentPluginsData,
currentFetchedPluginsInfo, currentFetchedPluginsInfo,
currentSavedPluginsStatus, currentSavedPluginsStatus,
@@ -148,14 +149,15 @@ export const MergePluginsController = () => {
) { ) {
if (!downloadingRef.current.has(plugin.plugin_id)) { if (!downloadingRef.current.has(plugin.plugin_id)) {
downloadingRef.current.add(plugin.plugin_id); downloadingRef.current.add(plugin.plugin_id);
const target_plugin_id = plugin.plugin_id;
downloadAndExtractPlugin(plugin) downloadAndExtractPlugin(plugin)
.then(() => { .then(() => {
console.log(`Plugin ${plugin.plugin_id} updated successfully`); console.log(`Plugin ${target_plugin_id} updated successfully`);
downloadingRef.current.delete(plugin.plugin_id); downloadingRef.current.delete(target_plugin_id);
}) })
.catch((error) => { .catch((error) => {
console.error(`Plugin ${plugin.plugin_id} update failed`, error); console.error(`Plugin ${target_plugin_id} update failed`, error);
downloadingRef.current.delete(plugin.plugin_id); downloadingRef.current.delete(target_plugin_id);
}); });
} }
} }

View File

@@ -16,7 +16,12 @@ import { usePlugins } from "@logics_configs";
export const MainSection = () => { export const MainSection = () => {
const { currentPluginsData } = usePlugins(); const { currentPluginsData } = usePlugins();
const render_plugins = currentPluginsData.data.filter((plugin) => (plugin.is_downloaded && plugin.is_enabled && plugin.downloaded_plugin_info.location === "main_section")); const render_plugins = currentPluginsData.data.filter((plugin) => (
plugin.is_downloaded &&
plugin.is_enabled &&
plugin.downloaded_plugin_info.is_plugin_supported &&
plugin.downloaded_plugin_info.location === "main_section"
));
return ( return (
<div className={styles.container}> <div className={styles.container}>

View File

@@ -5,6 +5,7 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
// justify-content: space-between; // justify-content: space-between;
overflow-y: auto;
} }
.language_selector_container { .language_selector_container {

View File

@@ -373,6 +373,17 @@ export const usePlugins = () => {
return currentPluginsData.data.filter(plugin => plugin.is_enabled); return currentPluginsData.data.filter(plugin => plugin.is_enabled);
} }
const updateTargetPluginData = (target_plugin_id, attribute, value) => {
updatePluginsData(prev => {
prev.data.forEach(plugin => {
if (plugin.plugin_id === target_plugin_id) {
plugin[attribute] = value;
}
});
return prev.data;
});
}
return { return {
@@ -391,6 +402,8 @@ export const usePlugins = () => {
currentPluginsData, currentPluginsData,
updatePluginsData, updatePluginsData,
updateTargetPluginData,
currentFetchedPluginsInfo, currentFetchedPluginsInfo,
updateFetchedPluginsInfo, updateFetchedPluginsInfo,