import { Button, Checkbox, Divider, FormGroup, H4, Spinner, TextArea } from "@blueprintjs/core"; import _ from "lodash"; import React, { FunctionComponent, useEffect, useState } from "react"; import { useInterfaceLocalForage } from "../../hooks/LocalForage"; import { StashService } from "../../core/StashService"; import { ErrorUtils } from "../../utils/errors"; import { ToastUtils } from "../../utils/toasts"; interface IProps {} export const SettingsInterfacePanel: FunctionComponent = () => { const {data, setData} = useInterfaceLocalForage(); const config = StashService.useConfiguration(); const [css, setCSS] = useState(); const [cssEnabled, setCSSEnabled] = useState(); const updateInterfaceConfig = StashService.useConfigureInterface({ css, cssEnabled }); useEffect(() => { if (!config.data || !config.data.configuration || !!config.error) { return; } if (!!config.data.configuration.interface) { setCSS(config.data.configuration.interface.css || ""); setCSSEnabled(config.data.configuration.interface.cssEnabled || false); } }, [config.data]); async function onSave() { try { const result = await updateInterfaceConfig(); console.log(result); ToastUtils.success("Updated config"); } catch (e) { ErrorUtils.handle(e); } } return ( <> {!!config.error ?

{config.error.message}

: undefined} {(!config.data || !config.data.configuration || config.loading) ? : undefined}

User Interface

{ if (!data) { return; } const newSettings = _.cloneDeep(data); newSettings.wall.textContainerEnabled = !data.wall.textContainerEnabled; setData(newSettings); }} /> { if (!data) { return; } const newSettings = _.cloneDeep(data); newSettings.wall.soundEnabled = !data.wall.soundEnabled; setData(newSettings); }} /> { setCSSEnabled(!cssEnabled) }} /> ); };