import { action } from "mobx"; import { observer } from "mobx-react"; import { FC } from "react"; import { useTranslation } from "react-i18next"; import { getName } from "../../ModelMixins/CatalogMemberMixin"; import { filterSelectableDimensions } from "../../Models/SelectableDimensions/SelectableDimensions"; import { useViewState } from "../Context"; import SelectableDimension from "../SelectableDimensions/SelectableDimension"; import WorkbenchItemControls from "../Workbench/Controls/WorkbenchItemControls"; import { Panel } from "./Panel"; import { PanelMenu } from "./PanelMenu"; import WorkflowPanel from "./WorkflowPanel"; /** Two main components: * - Title panel with `title`, item `WorkbenchItemControls` and menu * - Panel for each top-level selectable dimension */ const SelectableDimensionWorkflow: FC = observer(() => { const viewState = useViewState(); const terria = viewState.terria; const [t] = useTranslation(); return terria.selectableDimensionWorkflow ? ( { terria.selectableDimensionWorkflow = undefined; })} footer={terria.selectableDimensionWorkflow.footer} > {/* Render first panel with `title`, item `WorkbenchItemControls` and menu */} ) : undefined } > {/* Render Panel for each top-level selectable dimension */} {terria.selectableDimensionWorkflow.selectableDimensions.map( (groupDim, _i) => { if (groupDim.disable) return null; const childDims = filterSelectableDimensions()( groupDim.selectableDimensions ); if (childDims.length === 0) return null; return ( {childDims.map((childDim) => ( ))} ); } )} ) : null; }); export default SelectableDimensionWorkflow;