import * as React from 'react'; import { ElementsSidebar } from '../ElementsSidebar/ElementsSidebar'; import { Sidebar } from '../Sidebar/Sidebar'; import { History } from '../History/History'; import { AvailableContainer } from '../../Interfaces/AvailableContainer'; import { ContainerModel } from '../../Interfaces/ContainerModel'; import { HistoryState } from "../../Interfaces/HistoryState"; import { PhotographIcon, UploadIcon } from '@heroicons/react/outline'; import { FloatingButton } from '../FloatingButton/FloatingButton'; import { Bar } from '../Bar/Bar'; interface IUIProps { current: HistoryState history: HistoryState[] historyCurrentStep: number AvailableContainers: AvailableContainer[] SelectContainer: (container: ContainerModel) => void DeleteContainer: (containerId: string) => void OnPropertyChange: (key: string, value: string) => void AddContainerToSelectedContainer: (type: string) => void AddContainer: (index: number, type: string, parentId: string) => void SaveEditorAsJSON: () => void SaveEditorAsSVG: () => void LoadState: (move: number) => void } export const UI: React.FunctionComponent = (props: IUIProps) => { const [isSidebarOpen, setIsSidebarOpen] = React.useState(true); const [isElementsSidebarOpen, setIsElementsSidebarOpen] = React.useState(false); const [isHistoryOpen, setIsHistoryOpen] = React.useState(false); let buttonRightOffsetClasses = 'right-12'; if (isElementsSidebarOpen || isHistoryOpen) { buttonRightOffsetClasses = 'right-72'; } if (isHistoryOpen && isElementsSidebarOpen) { buttonRightOffsetClasses = 'right-[544px]'; } return ( <> setIsElementsSidebarOpen(!isElementsSidebarOpen)} ToggleSidebar={() => setIsSidebarOpen(!isSidebarOpen)} ToggleTimeline={() => setIsHistoryOpen(!isHistoryOpen)} /> props.AddContainerToSelectedContainer(type)} /> ); }; export default UI;