diff --git a/tranga-website/src/Components/Settings/AprilFoolsMode.tsx b/tranga-website/src/Components/Settings/AprilFoolsMode.tsx new file mode 100644 index 0000000..2014d37 --- /dev/null +++ b/tranga-website/src/Components/Settings/AprilFoolsMode.tsx @@ -0,0 +1,53 @@ +import IBackendSettings from "../../api/types/IBackendSettings.ts"; +import {useCallback, useContext, useState} from "react"; +import {ApiUriContext} from "../../api/fetchApi.tsx"; +import { + Accordion, + AccordionDetails, + AccordionSummary, + ColorPaletteProp, + Switch, + Typography +} from "@mui/joy"; +import * as React from "react"; +import {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 timerRef = React.useRef>(undefined); + const valueChanged = (e : React.ChangeEvent) => { + setColor("warning"); + clearTimeout(timerRef.current); + console.log(e); + timerRef.current = setTimeout(() => { + UpdateAprilFoolsMode(e.target.checked); + }, 1000); + } + + const UpdateAprilFoolsMode = useCallback((value: boolean) => { + UpdateAprilFoolsToggle(apiUri, value) + .then(() => setColor("success")) + .catch(() => setColor("danger")) + .finally(() => setLoading(false)); + }, [apiUri]); + + return ( + + April Fools Mode + + + }> + Toggle + + + + ); +} \ No newline at end of file diff --git a/tranga-website/src/Settings.tsx b/tranga-website/src/Settings.tsx index c9e062f..90fd20e 100644 --- a/tranga-website/src/Settings.tsx +++ b/tranga-website/src/Settings.tsx @@ -17,6 +17,7 @@ import { GetSettings } from './api/BackendSettings.tsx'; import UserAgent from "./Components/Settings/UserAgent.tsx"; import ImageProcessing from "./Components/Settings/ImageProcessing.tsx"; import ChapterNamingScheme from "./Components/Settings/ChapterNamingScheme.tsx"; +import AprilFoolsMode from './Components/Settings/AprilFoolsMode.tsx'; const checkConnection = async (apiUri: string): Promise =>{ return fetch(`${apiUri}/swagger/v2/swagger.json`, @@ -105,6 +106,7 @@ export default function Settings({open, setOpen, setApiUri, setConnected}:{open: +