diff --git a/tranga-website/src/Components/Settings/AprilFoolsMode.tsx b/tranga-website/src/Components/Settings/AprilFoolsMode.tsx index 2014d37..48c1b4f 100644 --- a/tranga-website/src/Components/Settings/AprilFoolsMode.tsx +++ b/tranga-website/src/Components/Settings/AprilFoolsMode.tsx @@ -1,5 +1,5 @@ import IBackendSettings from "../../api/types/IBackendSettings.ts"; -import {useCallback, useContext, useState} from "react"; +import {useCallback, useContext, useEffect, useState} from "react"; import {ApiUriContext} from "../../api/fetchApi.tsx"; import { Accordion, @@ -10,13 +10,14 @@ import { Typography } from "@mui/joy"; import * as React from "react"; -import {UpdateAprilFoolsToggle} from "../../api/BackendSettings.tsx"; +import {GetAprilFoolsToggle, UpdateAprilFoolsToggle} from "../../api/BackendSettings.tsx"; export default function ImageProcessing({backendSettings}: {backendSettings?: IBackendSettings}) { const apiUri = useContext(ApiUriContext); const [loading, setLoading] = useState(false); const [color, setColor] = useState("neutral"); + const [value, setValue] = useState(backendSettings?.aprilFoolsMode??false); const timerRef = React.useRef>(undefined); const valueChanged = (e : React.ChangeEvent) => { @@ -28,12 +29,18 @@ export default function ImageProcessing({backendSettings}: {backendSettings?: IB }, 1000); } + useEffect(() => { + setValue(backendSettings?.aprilFoolsMode??false); + }, [backendSettings]); + const UpdateAprilFoolsMode = useCallback((value: boolean) => { UpdateAprilFoolsToggle(apiUri, value) + .then(() => GetAprilFoolsToggle(apiUri)) + .then((val) => setValue(val)) .then(() => setColor("success")) .catch(() => setColor("danger")) .finally(() => setLoading(false)); - }, [apiUri]); + }, [apiUri, value]); return ( @@ -43,7 +50,7 @@ export default function ImageProcessing({backendSettings}: {backendSettings?: IB + checked={value} /> }> Toggle