From a73fd62ab46fdcaa86d542d4feece4f148439c02 Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 10 Feb 2025 18:47:49 +0100 Subject: [PATCH] Contract source code: the code for the empty contract is not displayed because of a JS crash Fixes #2568 --- ui/shared/monaco/CodeEditor.tsx | 2 +- ui/shared/monaco/utils/addMainContractCodeDecoration.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ui/shared/monaco/CodeEditor.tsx b/ui/shared/monaco/CodeEditor.tsx index 0d2cca32c3..35313e2128 100644 --- a/ui/shared/monaco/CodeEditor.tsx +++ b/ui/shared/monaco/CodeEditor.tsx @@ -252,7 +252,7 @@ const CodeEditor = ({ data, remappings, libraries, language, mainFile, contractN }), [ editorWidth, themeColors, borderRadius ]); const renderErrorScreen = React.useCallback(() => { - return
Oops! Something went wrong!
; + return
Oops! Something went wrong!
; }, [ themeColors ]); if (data.length === 1) { diff --git a/ui/shared/monaco/utils/addMainContractCodeDecoration.ts b/ui/shared/monaco/utils/addMainContractCodeDecoration.ts index 7ea7fadf9f..5a98dbd11b 100644 --- a/ui/shared/monaco/utils/addMainContractCodeDecoration.ts +++ b/ui/shared/monaco/utils/addMainContractCodeDecoration.ts @@ -47,7 +47,7 @@ export default function addMainContractCodeDecoration(model: monaco.editor.IText .findMatches(`^\\}`, lastLineRange, true, false, null, true) .sort(sortByEndLineNumberAsc); - const restDecoration: monaco.editor.IModelDeltaDecoration = { + const restDecoration: monaco.editor.IModelDeltaDecoration | undefined = lastLineMatch ? { range: { startLineNumber: firstLineMatch.range.startLineNumber + 1, endLineNumber: lastLineMatch.range.startLineNumber, @@ -59,8 +59,8 @@ export default function addMainContractCodeDecoration(model: monaco.editor.IText className: '.main-contract-body', marginClassName: '.main-contract-body', }, - }; + } : undefined; editor.updateOptions({ glyphMargin: true }); - model.deltaDecorations([], [ firstLineDecoration, restDecoration ]); + model.deltaDecorations([], [ firstLineDecoration, restDecoration ].filter(Boolean)); }