From ca56edd9ae201dbeb84b03ad390a09085433a257 Mon Sep 17 00:00:00 2001 From: BoBoooooo <17746714@qq.com> Date: Fri, 9 Aug 2024 13:52:35 +0800 Subject: [PATCH] fix: file errors overlay support click to error file & optimize ui (#197) --- .../src/components/file-errors-overlay.tsx | 97 ++++++++++++++++--- 1 file changed, 81 insertions(+), 16 deletions(-) diff --git a/packages/designer/src/components/file-errors-overlay.tsx b/packages/designer/src/components/file-errors-overlay.tsx index 0d785d5..673eafb 100644 --- a/packages/designer/src/components/file-errors-overlay.tsx +++ b/packages/designer/src/components/file-errors-overlay.tsx @@ -1,11 +1,39 @@ import React, { useState } from 'react'; -import { Box, css } from 'coral-system'; -import { observer, useWorkspace } from '@music163/tango-context'; +import { Box, css, Text } from 'coral-system'; +import { observer, useDesigner, useWorkspace } from '@music163/tango-context'; import { CloseOutlined } from '@ant-design/icons'; const errorMessageStyle = css` - padding: 24px; + padding: 35px; + position: relative; white-space: pre-wrap; + color: #f45755; + font-weight: bold; + height: 100%; + background-color: #171717; + border-radius: 8px; + .top-bar { + border-radius: 8px 8px 0 0; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 10px; + background-color: #f45755; + } + .WorkspaceErrorOverlayItem { + font-size: 18px; + padding-top: 20px; + padding-bottom: 20px; + .WorkspaceErrorOverlayItemFilename { + color: #48cacb; + text-decoration: underline; + letter-spacing: 1px; + &:hover { + color: #51b1ff; + } + } + } `; /** @@ -14,11 +42,17 @@ const errorMessageStyle = css` export const FileErrorsOverlay = observer(() => { const [isVisible, setIsVisible] = useState(true); const workspace = useWorkspace(); + const designer = useDesigner(); const handleClose = () => { setIsVisible(false); }; + const handleOpenErrorFile = (fileName: string) => { + workspace.setActiveFile(fileName); + designer.setActiveView('code'); + }; + if (workspace.fileErrors.length === 0) { return null; } @@ -35,32 +69,63 @@ export const FileErrorsOverlay = observer(() => { left="0" right="0" height="100%" - bg="rgba(244, 244, 244, 0.9)" + bg="rgb(84, 84, 84)" + padding="30px" color="red" + overflow="auto" zIndex={1999} > - + - - 代码解析错误,请回到源码模式检查并修改错误 + + + + [plugin: @babel/parser] + + + SyntaxError in {workspace.fileErrors.length} files,Click file to modify the error + code + - {workspace.fileErrors.map((fileError) => ( - - {fileError.filename} - - {fileError.message} + + {workspace.fileErrors.map((fileError, index) => ( + + handleOpenErrorFile(fileError.filename)} + > + {fileError.filename} + + + {fileError.message} + - - ))} + ))} +