From 379854e04948827c4c031d4df26c215d79c4d66c Mon Sep 17 00:00:00 2001 From: sawka Date: Wed, 8 Nov 2023 00:26:28 -0800 Subject: [PATCH] don't load remote content, and dont show codeeditor if closed --- src/app/app.less | 5 +++++ src/plugins/code/code.tsx | 20 ++++++++++++-------- src/plugins/core/basicrenderer.tsx | 13 ++++++++++--- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/app/app.less b/src/app/app.less index c974ae4d2..11bbca7ed 100644 --- a/src/app/app.less +++ b/src/app/app.less @@ -418,6 +418,11 @@ a.a-block { padding-top: 5px; } +.plugin-info-text { + color: @term-white; + padding-top: 5px; +} + .view-error { padding: 10px 20px; } diff --git a/src/plugins/code/code.tsx b/src/plugins/code/code.tsx index 87da07803..24fc305c1 100644 --- a/src/plugins/code/code.tsx +++ b/src/plugins/code/code.tsx @@ -71,12 +71,13 @@ class SourceCodeRenderer extends React.Component< const editorHeight = Math.max(props.savedHeight - 25, 0); // must subtract the padding/margin to get the real editorHeight this.markdownRef = React.createRef(); this.syncing = false; + let isClosed = props.lineState["prompt:closed"]; this.state = { code: null, languages: [], selectedLanguage: "", isSave: false, - isClosed: false, + isClosed: isClosed, editorHeight, message: null, isPreviewerAvailable: false, @@ -92,11 +93,11 @@ class SourceCodeRenderer extends React.Component< this.cacheKey = `${screenId}-${lineId}-${this.filePath}`; const code = SourceCodeRenderer.codeCache.get(this.cacheKey); if (code) { - this.setState({ code, isClosed: this.props.lineState["prompt:closed"] }); + this.setState({ code }); } else { this.props.data.text().then((code) => { this.originalCode = code; - this.setState({ code, isClosed: this.props.lineState["prompt:closed"] }); + this.setState({ code }); SourceCodeRenderer.codeCache.set(this.cacheKey, code); }); } @@ -417,10 +418,13 @@ class SourceCodeRenderer extends React.Component< render() { const { exitcode } = this.props; const { code, message, isPreviewerAvailable, showPreview, editorFraction } = this.state; - - if (code == null) return
; - - if (exitcode === 1) + if (this.state.isClosed) { + return
; + } + if (code == null) { + return
; + } + if (exitcode === 1) { return (
); - + } return (
diff --git a/src/plugins/core/basicrenderer.tsx b/src/plugins/core/basicrenderer.tsx index fc1caa848..337c925f6 100644 --- a/src/plugins/core/basicrenderer.tsx +++ b/src/plugins/core/basicrenderer.tsx @@ -41,9 +41,11 @@ class SimpleBlobRendererModel { dataBlob: T.ExtBlob; readOnly: boolean; notFound: boolean; + isClosed: boolean; initialize(params: RendererModelInitializeParams): void { - this.loading = mobx.observable.box(true, { name: "renderer-loading" }); + this.isClosed = !!params.lineState["prompt:closed"]; + this.loading = mobx.observable.box(!this.isClosed, { name: "renderer-loading" }); this.isDone = mobx.observable.box(params.isDone, { name: "renderer-isDone", }); @@ -53,8 +55,13 @@ class SimpleBlobRendererModel { this.lineState = params.lineState; this.savedHeight = params.savedHeight; this.ptyDataSource = params.ptyDataSource; - if (this.isDone.get()) { - setTimeout(() => this.reload(0), 10); + if (this.isClosed) { + this.dataBlob = new Blob(); + this.dataBlob.notFound = false; // TODO + } else { + if (this.isDone.get()) { + setTimeout(() => this.reload(0), 10); + } } }