[Update] AdvancedSettings: Websocket: Add settings ui.

This commit is contained in:
Sakamoto Shiina
2025-05-19 03:52:43 +09:00
parent eb0ab29b37
commit 0b48631363
7 changed files with 192 additions and 1 deletions

View File

@@ -6,13 +6,19 @@ import { useOpenFolder } from "@logics_common";
import {
useOscIpAddress,
useOscPort,
useWebsocket,
} from "@logics_configs";
import {
CheckboxContainer,
ActionButtonContainer,
EntryWithSaveButtonContainer,
} from "../_templates/Templates";
import {
SectionLabelComponent,
} from "../_components/";
import OpenFolderSvg from "@images/open_folder.svg?react";
import HelpSvg from "@images/help.svg?react";
@@ -25,6 +31,7 @@ export const AdvancedSettings = () => {
<OpenConfigFolderContainer />
<OpenSwitchComputeDeviceModalContainer />
</div>
<WebsocketContainer />
</div>
);
};
@@ -87,6 +94,7 @@ const OscPortContainer = () => {
/>
);
};
const OpenConfigFolderContainer = () => {
const { t } = useTranslation();
const { openFolder_ConfigFile } = useOpenFolder();
@@ -120,4 +128,88 @@ const OpenSwitchComputeDeviceModalContainer = () => {
/>
</>
);
};
const WebsocketContainer = () => {
return (
<div>
<SectionLabelComponent label="WebSocket" />
<EnableWebsocketContainer />
<WebsocketHostContainer />
<WebsocketPortContainer />
</div>
);
};
const EnableWebsocketContainer = () => {
const { t } = useTranslation();
const { currentEnableWebsocket, toggleEnableWebsocket } = useWebsocket();
return (
<CheckboxContainer
label={t("config_page.advanced_settings.enable_websocket.label")}
variable={currentEnableWebsocket}
toggleFunction={toggleEnableWebsocket}
/>
);
};
const WebsocketHostContainer = () => {
const { t } = useTranslation();
const { currentWebsocketHost, setWebsocketHost } = useWebsocket();
const [input_value, setInputValue] = useState(currentWebsocketHost.data);
const onChangeFunction = (value) => {
setInputValue(value);
};
const saveFunction = () => {
setWebsocketHost(input_value);
};
useEffect(()=> {
setInputValue(currentWebsocketHost.data);
}, [currentWebsocketHost]);
return (
<EntryWithSaveButtonContainer
label={t("config_page.advanced_settings.websocket_host.label")}
variable={input_value}
saveFunction={saveFunction}
onChangeFunction={onChangeFunction}
state={currentWebsocketHost.state}
width="14rem"
/>
);
};
const WebsocketPortContainer = () => {
const { t } = useTranslation();
const { currentWebsocketPort, setWebsocketPort } = useWebsocket();
const [input_value, setInputValue] = useState(currentWebsocketPort.data);
const onChangeFunction = (value) => {
value = value.replace(/[^0-9]/g, "");
setInputValue(value);
};
const saveFunction = () => {
setWebsocketPort(input_value);
};
useEffect(()=> {
setInputValue(currentWebsocketPort.data);
}, [currentWebsocketPort]);
return (
<EntryWithSaveButtonContainer
label={t("config_page.advanced_settings.websocket_port.label")}
variable={input_value}
saveFunction={saveFunction}
onChangeFunction={onChangeFunction}
state={currentWebsocketPort.state}
width="10rem"
/>
);
};