import IFrontendSettings from "./interfaces/IFrontendSettings"; import '../styles/settings.css'; import '../styles/react-toggle.css'; import React, {useEffect, useState} from "react"; import INotificationConnector, {NotificationConnectorItem} from "./interfaces/INotificationConnector"; import NotificationConnectorFunctions from "./NotificationConnectorFunctions"; import ILocalLibrary, {LocalLibraryItem} from "./interfaces/ILocalLibrary"; import LocalLibraryFunctions from "./LocalLibraryFunctions"; export default function Settings({backendConnected, apiUri, frontendSettings, setFrontendSettings} : {backendConnected: boolean, apiUri: string, frontendSettings: IFrontendSettings, setFrontendSettings: (settings: IFrontendSettings) => void}) { let [showSettings, setShowSettings] = useState(false); let [notificationConnectors, setNotificationConnectors] = useState([]); let [localLibraries, setLocalLibraries] = useState([]); useEffect(() => { if(!backendConnected) return; NotificationConnectorFunctions.GetNotificationConnectors(apiUri).then(setNotificationConnectors); LocalLibraryFunctions.GetLibraries(apiUri).then(setLocalLibraries); }, [backendConnected, showSettings]); const dateToStr = (x: Date) => { const ret = (x.getHours() < 10 ? "0" + x.getHours() : x.getHours()) + ":" + (x.getMinutes() < 10 ? "0" + x.getMinutes() : x.getMinutes()); return ret; } return (
setShowSettings(true)}> settings-cogwheel
{showSettings ?

Settings

Close Settings setShowSettings(false)}/>
setFrontendSettings({...frontendSettings, apiUri:e.currentTarget.value})} id="ApiUri" />
setFrontendSettings({...frontendSettings, jobInterval: new Date(e.currentTarget.valueAsNumber-60*60*1000) ?? frontendSettings.jobInterval})}/>

Notification Connectors:

{notificationConnectors.map(c => )}

Local Libraries:

{localLibraries.map(l => )}
: null }
); }