diff --git a/tranga-website/src/Components/Settings/UserAgent.tsx b/tranga-website/src/Components/Settings/UserAgent.tsx index ce795ff..bd0d460 100644 --- a/tranga-website/src/Components/Settings/UserAgent.tsx +++ b/tranga-website/src/Components/Settings/UserAgent.tsx @@ -7,17 +7,18 @@ import { ColorPaletteProp, Input } from "@mui/joy"; -import {KeyboardEventHandler, useCallback, useContext, useState} from "react"; +import {KeyboardEventHandler, useCallback, useContext, useEffect, useState} from "react"; import {ApiUriContext} from "../../api/fetchApi.tsx"; -import {ResetUserAgent, UpdateUserAgent} from "../../api/BackendSettings.tsx"; +import {GetUserAgent, ResetUserAgent, UpdateUserAgent} from "../../api/BackendSettings.tsx"; export default function UserAgent({backendSettings}: {backendSettings?: IBackendSettings}) { const apiUri = useContext(ApiUriContext); const [loading, setLoading] = useState(false); - const [value, setValue] = useState(""); + const [value, setValue] = useState(backendSettings?.userAgent); const [color, setColor] = useState("neutral"); const keyDown : KeyboardEventHandler = useCallback((e) => { + if(value === undefined) return; if(e.key === "Enter") { setLoading(true); UpdateUserAgent(apiUri, value) @@ -25,26 +26,32 @@ export default function UserAgent({backendSettings}: {backendSettings?: IBackend .catch(() => setColor("danger")) .finally(() => setLoading(false)); } - }, [apiUri]) + }, [apiUri, value]) const Reset = useCallback(() => { setLoading(true); ResetUserAgent(apiUri) + .then(() => GetUserAgent(apiUri)) + .then((val) => setValue(val)) .then(() => setColor("success")) .catch(() => setColor("danger")) .finally(() => setLoading(false)); }, [apiUri]); + useEffect(() => { + setValue(backendSettings?.userAgent); + }, [backendSettings]); + return ( UserAgent setValue(e.target.value)} - color={color} + placeholder={"UserAgent"} + value={value} + onKeyDown={keyDown} + onChange={e => setValue(e.target.value)} + color={color} endDecorator={} />