From 5030c88eea821c1e6c8e39f7d4a87b529a7492eb Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Mon, 8 Dec 2025 13:04:28 +0900 Subject: [PATCH 1/3] [Update] UI: Add flex-shrink 0 to download button and dropdown menu styles for better layout control. --- .../_atoms/_download_button/_DownloadButton.module.scss | 1 + .../_components/dropdown_menu/DropdownMenu.module.scss | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src-ui/views/app/config_page/setting_section/setting_box/_components/_atoms/_download_button/_DownloadButton.module.scss b/src-ui/views/app/config_page/setting_section/setting_box/_components/_atoms/_download_button/_DownloadButton.module.scss index 752dca38..d47ecc6c 100644 --- a/src-ui/views/app/config_page/setting_section/setting_box/_components/_atoms/_download_button/_DownloadButton.module.scss +++ b/src-ui/views/app/config_page/setting_section/setting_box/_components/_atoms/_download_button/_DownloadButton.module.scss @@ -6,6 +6,7 @@ justify-content: center; width: 100%; max-width: 8rem; + flex-shrink: 0; } .download_button { diff --git a/src-ui/views/app/config_page/setting_section/setting_box/_components/dropdown_menu/DropdownMenu.module.scss b/src-ui/views/app/config_page/setting_section/setting_box/_components/dropdown_menu/DropdownMenu.module.scss index cbb1723f..2e12004b 100644 --- a/src-ui/views/app/config_page/setting_section/setting_box/_components/dropdown_menu/DropdownMenu.module.scss +++ b/src-ui/views/app/config_page/setting_section/setting_box/_components/dropdown_menu/DropdownMenu.module.scss @@ -4,6 +4,7 @@ display: flex; flex-direction: row; gap: 2.8rem; + flex-shrink: 0; } .each_dropdown_menu_wrapper { @@ -12,6 +13,7 @@ gap: 0.6rem; white-space: nowrap; max-width: 24rem; + flex-shrink: 0; &.is_disabled { pointer-events: none; } From 27454c8a88c817e1fecd2fa8b002d54aef27a5cb Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Wed, 10 Dec 2025 17:02:32 +0900 Subject: [PATCH 2/3] [Update] UI: Add 'Correct Auth Key/Connection Required' message and update model selection logic for Plamo, Gemini, OpenAI, LMStudio, and Ollama components. --- locales/en.yml | 1 + .../setting_box/translation/Translation.jsx | 48 +++++++++++++++---- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/locales/en.yml b/locales/en.yml index f6a3194f..c7b4135e 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -76,6 +76,7 @@ config_page: common: version: "Version {{version}}" model_download_button_label: "Download" + correct_auth_key_required: "Correct Auth Key Required" compute_device: desc: "The accuracy and speed of each processing type may vary depending on your machine specs, and the compatibility with calculation methods may differ from the displayed order. Please use this as a general guideline." label_device: "Processing Device" diff --git a/src-ui/views/app/config_page/setting_section/setting_box/translation/Translation.jsx b/src-ui/views/app/config_page/setting_section/setting_box/translation/Translation.jsx index 5a496206..c4bef2fb 100644 --- a/src-ui/views/app/config_page/setting_section/setting_box/translation/Translation.jsx +++ b/src-ui/views/app/config_page/setting_section/setting_box/translation/Translation.jsx @@ -294,22 +294,28 @@ const PlamoModelContainer = () => { currentSelectedPlamoModel, setSelectedPlamoModel, + + currentPlamoAuthKey, } = useTranslation(); - if (currentSelectablePlamoModelList.data.length === 0) return null; const selectFunction = (selected_data) => { setSelectedPlamoModel(selected_data.selected_id); }; + + let selected_label = (!currentPlamoAuthKey.data && !currentSelectedPlamoModel.data) ? t("config_page.common.correct_auth_key_required") : currentSelectedPlamoModel.data; + + return ( ); }; @@ -350,22 +356,28 @@ const GeminiModelContainer = () => { currentSelectedGeminiModel, setSelectedGeminiModel, + + currentGeminiAuthKey, } = useTranslation(); - if (currentSelectableGeminiModelList.data.length === 0) return null; const selectFunction = (selected_data) => { setSelectedGeminiModel(selected_data.selected_id); }; + let selected_label = (!currentGeminiAuthKey.data && !currentSelectedGeminiModel.data) + ? t("config_page.common.correct_auth_key_required") + : currentSelectedGeminiModel.data; + return ( ); }; @@ -405,22 +417,28 @@ const OpenAIModelContainer = () => { currentSelectedOpenAIModel, setSelectedOpenAIModel, + + currentOpenAIAuthKey, } = useTranslation(); - if (currentSelectableOpenAIModelList.data.length === 0) return null; const selectFunction = (selected_data) => { setSelectedOpenAIModel(selected_data.selected_id); }; + let selected_label = (!currentOpenAIAuthKey.data && !currentSelectedOpenAIModel.data) + ? t("config_page.common.correct_auth_key_required") + : currentSelectedOpenAIModel.data; + return ( ); }; @@ -479,20 +497,25 @@ const LMStudioModelContainer = () => { setSelectedLMStudioModel, } = useTranslation(); - if (currentSelectableLMStudioModelList.data.length === 0) return null; + const { currentIsLMStudioConnected } = useLLMConnection(); const selectFunction = (selected_data) => { setSelectedLMStudioModel(selected_data.selected_id); }; + let selected_label = (!currentIsLMStudioConnected.data && !currentSelectedLMStudioModel.data) + ? "Connection Required" + : currentSelectedLMStudioModel.data; + return ( ); }; @@ -523,20 +546,25 @@ const OllamaModelContainer = () => { setSelectedOllamaModel, } = useTranslation(); - if (currentSelectableOllamaModelList.data.length === 0) return null; + const { currentIsOllamaConnected } = useLLMConnection(); const selectFunction = (selected_data) => { setSelectedOllamaModel(selected_data.selected_id); }; + let selected_label = (!currentIsOllamaConnected.data && !currentSelectedOllamaModel.data) + ? "Connection Required" + : currentSelectedOllamaModel.data; + return ( ); }; From 11ef81f170e3f879fb5ae53c1dc2a30901de40d5 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Wed, 10 Dec 2025 17:06:32 +0900 Subject: [PATCH 3/3] [Fix] UI: Corrected casing for LMStudio URL variable and updated related error handling logic. --- src-ui/logics/_useBackendErrorHandling.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src-ui/logics/_useBackendErrorHandling.js b/src-ui/logics/_useBackendErrorHandling.js index cc4d1808..b47cf00d 100644 --- a/src-ui/logics/_useBackendErrorHandling.js +++ b/src-ui/logics/_useBackendErrorHandling.js @@ -48,7 +48,7 @@ export const _useBackendErrorHandling = () => { updateOpenAIAuthKey, updateSelectedOpenAIModel, - updateLMStudioUrl, + updateLMStudioURL, updateSelectedLMStudioModel, updateSelectedOllamaModel, @@ -223,10 +223,10 @@ export const _useBackendErrorHandling = () => { case "/set/data/lmstudio_url": if (message === "LMStudio URL is not valid") { - updateLMStudioUrl(data); + updateLMStudioURL(data); showNotification_Error(message, { category_id: "lmstudio_url" }); } else { - updateLMStudioUrl(data); + updateLMStudioURL(data); showNotification_Error(message, { category_id: "lmstudio_url" }); } return;