From 249c686442220e86c5a6e4505cbf25600718ca82 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Fri, 25 Apr 2025 18:51:16 +0900 Subject: [PATCH] [Update] Plugins: Add error handlings when network is not connected and failed to fetch plugins info. Also add pending ui(TMP) while fetching. --- .../setting_section/setting_box/plugins/Plugins.jsx | 7 +++++++ .../plugins_compatibility_list/PluginCompatibilityList.jsx | 7 +++++++ src-ui/logics/configs/plugins/usePlugins.js | 3 ++- src-ui/logics/useReceiveRoutes.js | 7 ++++++- src-ui/store.js | 2 +- 5 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src-ui/app/config_page/setting_section/setting_box/plugins/Plugins.jsx b/src-ui/app/config_page/setting_section/setting_box/plugins/Plugins.jsx index aadaf64f..b42ea31b 100644 --- a/src-ui/app/config_page/setting_section/setting_box/plugins/Plugins.jsx +++ b/src-ui/app/config_page/setting_section/setting_box/plugins/Plugins.jsx @@ -33,6 +33,7 @@ const PluginDownloadContainer = () => { currentSavedPluginsStatus, toggleSavedPluginsStatus, handlePendingPlugin, + currentFetchedPluginsInfo, } = usePlugins(); const { showNotification_Success, showNotification_Error } = useNotificationStatus(); @@ -65,8 +66,14 @@ const PluginDownloadContainer = () => { a.plugin_id.localeCompare(b.plugin_id) ); + // Duplicate + const is_failed_to_fetch = currentFetchedPluginsInfo.state === "error"; + const is_fetching = currentFetchedPluginsInfo.state === "pending"; + return (
Failed to fetch plugins data
} + {is_fetching &&Fetching plugins data...
} {sorted_plugins_data.map((plugin) => (diff --git a/src-ui/app/modal_controller/update_modal/plugins_compatibility_list/PluginCompatibilityList.jsx b/src-ui/app/modal_controller/update_modal/plugins_compatibility_list/PluginCompatibilityList.jsx index dd0133b1..e23c320c 100644 --- a/src-ui/app/modal_controller/update_modal/plugins_compatibility_list/PluginCompatibilityList.jsx +++ b/src-ui/app/modal_controller/update_modal/plugins_compatibility_list/PluginCompatibilityList.jsx @@ -9,6 +9,7 @@ export const PluginCompatibilityList = () => { const { enabledPluginsList, asyncFetchPluginsInfo, + currentFetchedPluginsInfo, } = usePlugins(); useEffect(() => { @@ -35,9 +36,15 @@ export const PluginCompatibilityList = () => { if (!is_any_incompatible_plugin && !is_any_compatible_plugin) return null; // This is just for safety. + // Duplicate + const is_failed_to_fetch = currentFetchedPluginsInfo.state === "error"; + const is_fetching = currentFetchedPluginsInfo.state === "pending"; + return (
使用中プラグインの互換性チェック
+ {is_failed_to_fetch &&Failed to fetch plugins data
} + {is_fetching &&Fetching plugins data...
}