/** * Copyright (c) 2020-present, Goldman Sachs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { observer } from 'mobx-react-lite'; import { PanelList, PanelListItem, clsx, Panel, ErrorIcon, WarningIcon, } from '@finos/legend-art'; import { useEditorStore } from '../EditorStoreProvider.js'; import type { Problem } from '../../../stores/editor/EditorGraphState.js'; import { CompilationWarning, EngineError } from '@finos/legend-graph'; import { GRAPH_EDITOR_MODE } from '../../../stores/editor/EditorConfig.js'; const ProblemItem = observer((props: { problem: Problem }) => { const { problem } = props; const editorStore = useEditorStore(); const isStale = editorStore.graphState.areProblemsStale; const goToSource = (): void => editorStore.graphEditorMode.goToProblem(problem); return ( ); }); export const ProblemsPanel = observer(() => { const editorStore = useEditorStore(); const problems = editorStore.graphState.problems; const isStale = editorStore.graphState.areProblemsStale; return ( {isStale && (
The following result might be stale - please run compilation (F9) to check for the latest problems
)} {problems.length === 0 && (
No problems have been detected in the workspace.
)} {problems.length !== 0 && ( {problems.map((problem) => ( ))} )}
); });