diff --git a/src-ui/logics/configs/config_page_setter/useSettingsLogics.js b/src-ui/logics/configs/config_page_setter/useSettingsLogics.js
index 58702b06..35fe4152 100644
--- a/src-ui/logics/configs/config_page_setter/useSettingsLogics.js
+++ b/src-ui/logics/configs/config_page_setter/useSettingsLogics.js
@@ -309,6 +309,39 @@ export const useSliderLogic = ({
};
};
+
+export const useSaveButtonLogic = ({
+ variable,
+ state,
+ setFunction,
+ deleteFunction
+}) => {
+ const [input_value, setInputValue] = useState(variable);
+
+ const onChangeFunction = (value) => {
+ setInputValue(value);
+ };
+
+ const saveFunction = () => {
+ if (input_value === "" || input_value === null) {
+ return deleteFunction();
+ }
+ setFunction(input_value);
+ };
+
+ useEffect(() => {
+ if (state === "pending") return;
+ setInputValue(variable);
+
+ }, [variable]);
+
+ return {
+ variable: input_value,
+ onChangeFunction: onChangeFunction,
+ saveFunction: saveFunction,
+ };
+};
+
const createMarks = (min, max, marks_step = 1, labelFormatter = (value) => value) => {
const marks = [];
let variable = min;
diff --git a/src-ui/logics/configs/index.js b/src-ui/logics/configs/index.js
index 1b20c3c6..42676fdd 100644
--- a/src-ui/logics/configs/index.js
+++ b/src-ui/logics/configs/index.js
@@ -18,4 +18,5 @@ export { useSettingBoxScrollPosition } from "./config_page_setter/_aux/useSettin
export {
useSliderLogic,
+ useSaveButtonLogic,
} from "./config_page_setter/useSettingsLogics.js";
\ No newline at end of file
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 28b0f9f2..b7bdf99f 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
@@ -6,6 +6,8 @@ import { useStore_IsBreakPoint } from "@store";
import {
useTranslation,
+
+ useSaveButtonLogic,
} from "@logics_configs";
import {
@@ -32,7 +34,7 @@ export const Translation = () => {
-
+
@@ -217,26 +219,16 @@ const TranslationComputeDevice_Box = () => {
);
};
-const DeeplAuthKey_Box = () => {
+const DeepLAuthKey_Box = () => {
const { t } = useI18n();
const { currentDeepLAuthKey, setDeepLAuthKey, deleteDeepLAuthKey } = useTranslation();
- const [input_value, seInputValue] = useState(currentDeepLAuthKey.data);
- const onChangeFunction = (value) => {
- seInputValue(value);
- };
-
- const saveFunction = () => {
- if (input_value === "" || input_value === null) {
- return deleteDeepLAuthKey();
- };
- setDeepLAuthKey(input_value);
- };
-
- useEffect(() => {
- if (currentDeepLAuthKey.state === "pending") return;
- seInputValue(currentDeepLAuthKey.data);
- }, [currentDeepLAuthKey]);
+ const { variable, onChangeFunction, saveFunction } = useSaveButtonLogic({
+ variable: currentDeepLAuthKey.data,
+ state: currentDeepLAuthKey.state,
+ setFunction: setDeepLAuthKey,
+ deleteFunction: deleteDeepLAuthKey,
+ });
return (
<>
@@ -248,7 +240,7 @@ const DeeplAuthKey_Box = () => {
)}
webpage_url={deepl_auth_key_url}
open_webpage_label={t("config_page.translation.deepl_auth_key.open_auth_key_webpage")}
- variable={input_value}
+ variable={variable}
state={currentDeepLAuthKey.state}
onChangeFunction={onChangeFunction}
saveFunction={saveFunction}
@@ -260,37 +252,22 @@ const DeeplAuthKey_Box = () => {
const PlamoAuthKey_Box = () => {
const { t } = useI18n();
const { currentPlamoAuthKey, setPlamoAuthKey, deletePlamoAuthKey } = useTranslation();
- const [input_value, seInputValue] = useState(currentPlamoAuthKey.data);
- const onChangeFunction = (value) => {
- seInputValue(value);
- };
-
- const saveFunction = () => {
- if (input_value === "" || input_value === null) {
- return deletePlamoAuthKey();
- };
- setPlamoAuthKey(input_value);
- };
-
- useEffect(() => {
- if (currentPlamoAuthKey.state === "pending") return;
- seInputValue(currentPlamoAuthKey.data);
- }, [currentPlamoAuthKey]);
+ const { variable, onChangeFunction, saveFunction } = useSaveButtonLogic({
+ variable: currentPlamoAuthKey.data,
+ state: currentPlamoAuthKey.state,
+ setFunction: setPlamoAuthKey,
+ deleteFunction: deletePlamoAuthKey,
+ });
return (
<>
{
{
const GeminiAuthKey_Box = () => {
const { t } = useI18n();
const { currentGeminiAuthKey, setGeminiAuthKey, deleteGeminiAuthKey } = useTranslation();
- const [input_value, seInputValue] = useState(currentGeminiAuthKey.data);
- const onChangeFunction = (value) => {
- seInputValue(value);
- };
-
- const saveFunction = () => {
- if (input_value === "" || input_value === null) {
- return deleteGeminiAuthKey();
- };
- setGeminiAuthKey(input_value);
- };
-
- useEffect(() => {
- if (currentGeminiAuthKey.state === "pending") return;
- seInputValue(currentGeminiAuthKey.data);
- }, [currentGeminiAuthKey]);
+ const { variable, onChangeFunction, saveFunction } = useSaveButtonLogic({
+ variable: currentGeminiAuthKey.data,
+ state: currentGeminiAuthKey.state,
+ setFunction: setGeminiAuthKey,
+ deleteFunction: deleteGeminiAuthKey,
+ });
return (
<>
{
{
const OpenAIAuthKey_Box = () => {
const { t } = useI18n();
const { currentOpenAIAuthKey, setOpenAIAuthKey, deleteOpenAIAuthKey } = useTranslation();
- const [input_value, seInputValue] = useState(currentOpenAIAuthKey.data);
- const onChangeFunction = (value) => {
- seInputValue(value);
- };
-
- const saveFunction = () => {
- if (input_value === "" || input_value === null) {
- return deleteOpenAIAuthKey();
- };
- setOpenAIAuthKey(input_value);
- };
-
- useEffect(() => {
- if (currentOpenAIAuthKey.state === "pending") return;
- seInputValue(currentOpenAIAuthKey.data);
- }, [currentOpenAIAuthKey]);
+ const { variable, onChangeFunction, saveFunction } = useSaveButtonLogic({
+ variable: currentOpenAIAuthKey.data,
+ state: currentOpenAIAuthKey.state,
+ setFunction: setOpenAIAuthKey,
+ deleteFunction: deleteOpenAIAuthKey,
+ });
return (
<>
{