UNPKG

@finos/legend-application-studio

Version:
42 lines 3.04 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; /** * 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 { CompilationWarning, EngineError } from '@finos/legend-graph'; import { GRAPH_EDITOR_MODE } from '../../../stores/editor/EditorConfig.js'; const ProblemItem = observer((props) => { const { problem } = props; const editorStore = useEditorStore(); const isStale = editorStore.graphState.areProblemsStale; const goToSource = () => editorStore.graphEditorMode.goToProblem(problem); return (_jsx(PanelListItem, { children: _jsxs("button", { className: clsx([ 'panel-group__problem', { 'panel-group__problem--stale': isStale, }, ]), title: problem.message, onClick: goToSource, children: [problem instanceof EngineError && (_jsx(ErrorIcon, { className: "panel-group__problem__icon panel-group__problem__icon--error" })), problem instanceof CompilationWarning && (_jsx(WarningIcon, { className: "panel-group__problem__icon panel-group__problem__icon--warning" })), _jsx("div", { className: "panel-group__problem__message", children: problem.message }), problem.sourceInformation && (_jsx("div", { className: "panel-group__problem__source", children: editorStore.graphEditorMode.mode === GRAPH_EDITOR_MODE.GRAMMAR_TEXT && `[Ln ${problem.sourceInformation.startLine}, Col ${problem.sourceInformation.startColumn}]` }))] }) })); }); export const ProblemsPanel = observer(() => { const editorStore = useEditorStore(); const problems = editorStore.graphState.problems; const isStale = editorStore.graphState.areProblemsStale; return (_jsxs(Panel, { children: [isStale && (_jsx("div", { className: "panel-group__problems__stale-warning", children: "The following result might be stale - please run compilation (F9) to check for the latest problems" })), problems.length === 0 && (_jsx("div", { className: "panel-group__problems__placeholder", children: "No problems have been detected in the workspace." })), problems.length !== 0 && (_jsx(PanelList, { children: problems.map((problem) => (_jsx(ProblemItem, { problem: problem }, problem.uuid))) }))] })); }); //# sourceMappingURL=ProblemsPanel.js.map