From 7376ed28246f4f36ca924f051e1e9f2e0261179f Mon Sep 17 00:00:00 2001 From: sawka Date: Thu, 7 Sep 2023 12:57:02 -0700 Subject: [PATCH] fix all typescript errors (#18) --- src/simplerenderer.tsx | 4 ++-- src/types.ts | 8 ++++++-- src/view/code.tsx | 40 ++++++++++++++++++++++------------------ 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/src/simplerenderer.tsx b/src/simplerenderer.tsx index 52ca1516..66c970da 100644 --- a/src/simplerenderer.tsx +++ b/src/simplerenderer.tsx @@ -97,7 +97,7 @@ class SimpleBlobRendererModel { this.reload_noDelay(); } else { setTimeout(() => { - reload_noDelay(); + this.reload_noDelay(); }, delayMs); } } @@ -126,7 +126,7 @@ class SimpleBlobRendererModel { } let rtnp = GlobalModel.readRemoteFile(this.context.screenId, this.context.lineId, path); rtnp.then((file) => { - this.readOnly = file.readOnly; + this.readOnly = (file as any).readOnly; this.dataBlob = file; mobx.action(() => { this.loading.set(false); diff --git a/src/types.ts b/src/types.ts index 74ac69cb..2a1adc65 100644 --- a/src/types.ts +++ b/src/types.ts @@ -357,7 +357,6 @@ type RendererOpts = { idealSize: WindowSize; termOpts: TermOptsType; termFontSize: number; - readOnly: boolean; }; type RendererOptsUpdate = { @@ -410,11 +409,16 @@ type RendererModel = { }; type SimpleBlobRendererComponent = React.ComponentType<{ - path: string; data: Blob; + readOnly?: boolean; + cmdstr?: string; + cwd?: string; + exitcode?: number; context: RendererContext; opts: RendererOpts; savedHeight: number; + scrollToBringIntoViewport?: () => void; + lineState?: LineStateType; }>; type FullRendererComponent = React.ComponentType<{ model: any }>; diff --git a/src/view/code.tsx b/src/view/code.tsx index b9e13dfe..0caaa4f2 100644 --- a/src/view/code.tsx +++ b/src/view/code.tsx @@ -9,9 +9,13 @@ function renderCmdText(text: string): any { return ⌘{text}; } +// there is a global monaco variable (TODO get the correct TS type) +declare var monaco: any; + class SourceCodeRenderer extends React.Component< { data: Blob; + readOnly: boolean; cmdstr: string; cwd: string; exitcode: number; @@ -21,7 +25,15 @@ class SourceCodeRenderer extends React.Component< scrollToBringIntoViewport: () => void; lineState: LineStateType; }, - {} + { + code: string; + languages: string[]; + selectedLanguage: string; + isSave: boolean; + isClosed: boolean; + editorHeight: number; + message: { status: string; text: string }; + } > { /** * codeCache is a Hashmap with key=screenId:lineId:filepath and value=code @@ -32,9 +44,11 @@ class SourceCodeRenderer extends React.Component< filePath; cacheKey; originalData; + monacoEditor: any; // reference to mounted monaco editor. TODO need the correct type + constructor(props) { super(props); - this.editorRef = React.createRef(); + this.monacoEditor = null; this.state = { code: null, languages: [], @@ -86,7 +100,6 @@ class SourceCodeRenderer extends React.Component< } } if (detectedLanguage) { - this.editorRef.current = editor; const model = editor.getModel(); if (model) { monaco.editor.setModelLanguage(model, detectedLanguage); @@ -96,6 +109,7 @@ class SourceCodeRenderer extends React.Component< }; handleEditorDidMount = (editor, monaco) => { + this.monacoEditor = editor; this.setInitialLanguage(editor); this.setEditorHeight(); editor.onKeyDown((e) => { @@ -114,8 +128,8 @@ class SourceCodeRenderer extends React.Component< const { screenId, lineId } = this.props.context; const selectedLanguage = event.target.value; this.setState({ selectedLanguage }); - if (this.editorRef.current) { - const model = this.editorRef.current.getModel(); + if (this.monacoEditor) { + const model = this.monacoEditor.getModel(); if (model) { monaco.editor.setModelLanguage(model, selectedLanguage); GlobalCommandRunner.setLineState( @@ -184,7 +198,7 @@ class SourceCodeRenderer extends React.Component< }; setEditorHeight = () => { - const fullWindowHeight = parseInt(this.props.opts.maxSize.height); + const fullWindowHeight = this.props.opts.maxSize.height; let _editorHeight = fullWindowHeight; if (this.props.readOnly || this.state.isClosed) { const noOfLines = Math.max(this.state.code.split("\n").length, 5); @@ -195,7 +209,7 @@ class SourceCodeRenderer extends React.Component< render() { const { opts, exitcode, readOnly } = this.props; - const { language, code, isSave, isClosed } = this.state; + const { selectedLanguage, code, isSave, isClosed } = this.state; if (code == null) return
; @@ -220,7 +234,7 @@ class SourceCodeRenderer extends React.Component<