import React from 'react'; import './App.scss'; import Sidebar from './Components/Sidebar/Sidebar'; import { SVGSidebar } from './Components/SVGSidebar/SVGSidebar'; import { AvailableContainer } from './Interfaces/AvailableContainer'; import { Configuration } from './Interfaces/Configuration'; import { SVG } from './SVG/SVG'; interface IAppProps { } interface IAppState { isSidebarOpen: boolean, isSVGSidebarOpen: boolean, configuration: Configuration } class App extends React.Component { public state: IAppState; constructor(props: IAppProps) { super(props); this.state = { isSidebarOpen: true, isSVGSidebarOpen: true, configuration: { AvailableContainers: [], AvailableSymbols: [], MainContainer: {} as AvailableContainer } }; } componentDidMount() { fetchConfiguration().then((configuration: Configuration) => { this.setState(prevState => ({ ...prevState, configuration })); }); } public ToggleSidebar() { this.setState(prevState => ({ ...prevState, isSidebarOpen: !this.state.isSidebarOpen } as IAppState)); } public ToggleSVGSidebar() { this.setState(prevState => ({ ...prevState, isSVGSidebarOpen: !this.state.isSVGSidebarOpen } as IAppState)); } render() { return (
this.ToggleSidebar()} /> this.ToggleSVGSidebar()}/>
); } } async function fetchConfiguration(): Promise { const url = `${import.meta.env.VITE_API_URL}`; const myHeaders = new Headers({ 'Content-Type': 'application/json' }); const myInit = { method: 'POST', headers: myHeaders }; return await fetch(url, myInit) .then((response) => response.json() ) as Configuration; } export default App;