diff --git a/src/linecomps.tsx b/src/linecomps.tsx index c32eb261..f2fe82d4 100644 --- a/src/linecomps.tsx +++ b/src/linecomps.tsx @@ -152,7 +152,7 @@ class LineCmd extends React.Component<{screen : LineContainerModel, line : LineT if (staticRender || this.isCollapsed()) { return; } - if (!visible) { + if (!visible.get()) { if (this.rtnStateDiffFetched) { this.rtnStateDiffFetched = false; this.setRtnStateDiff(null); @@ -175,7 +175,7 @@ class LineCmd extends React.Component<{screen : LineContainerModel, line : LineT } let {line} = this.props; this.rtnStateDiffFetched = true; - let usp = new URLSearchParams({screenid: line.screenid, cmdid: line.cmdid}); + let usp = new URLSearchParams({linenum: String(line.linenum), screenid: line.screenid, cmdid: line.cmdid}); let url = GlobalModel.getBaseHostPort() + "/api/rtnstate?" + usp.toString(); let fetchHeaders = GlobalModel.getFetchHeaders(); fetch(url, {headers: fetchHeaders}).then((resp) => { diff --git a/src/main.tsx b/src/main.tsx index 680b0f68..18ba55d0 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -420,7 +420,7 @@ class TextAreaInput extends React.Component<{onHeightChange : () => void}, {}> { } @boundMethod - controlP(e : any) { + controlP() { let inputModel = GlobalModel.inputModel; if (!inputModel.isHistoryLoaded()) { this.lastHistoryUpDown = true; @@ -432,7 +432,7 @@ class TextAreaInput extends React.Component<{onHeightChange : () => void}, {}> { } @boundMethod - controlN(e : any) { + controlN() { let inputModel = GlobalModel.inputModel; inputModel.moveHistorySelection(-1); this.lastHistoryUpDown = true; diff --git a/src/model.ts b/src/model.ts index 13fee77f..5ab1f12c 100644 --- a/src/model.ts +++ b/src/model.ts @@ -3464,8 +3464,8 @@ function _getPtyDataFromUrl(url : string) : Promise { }); } -function getPtyData(screenId : string, cmdId : string) : Promise { - let url = sprintf(GlobalModel.getBaseHostPort() + "/api/ptyout?screenid=%s&cmdid=%s", screenId, cmdId); +function getPtyData(screenId : string, cmdId : string, lineNum : number) : Promise { + let url = sprintf(GlobalModel.getBaseHostPort() + "/api/ptyout?linenum=%d&screenid=%s&cmdid=%s", lineNum, screenId, cmdId); return _getPtyDataFromUrl(url); } diff --git a/src/settings.tsx b/src/settings.tsx index 0f018e4b..4fa45d5d 100644 --- a/src/settings.tsx +++ b/src/settings.tsx @@ -7,7 +7,7 @@ import {If, For, When, Otherwise, Choose} from "tsx-control-statements/component import cn from "classnames"; import {GlobalModel, GlobalCommandRunner, TabColors} from "./model"; import {Toggle} from "./elements"; -import {LineType, RendererPluginType} from "./types"; +import {LineType, RendererPluginType, ClientDataType} from "./types"; type OV = mobx.IObservableValue; type OArr = mobx.IObservableArray; diff --git a/src/simplerenderer.tsx b/src/simplerenderer.tsx index c483fdd5..ae4dba9c 100644 --- a/src/simplerenderer.tsx +++ b/src/simplerenderer.tsx @@ -72,7 +72,7 @@ class SimpleBlobRendererModel { mobx.action(() => { this.loading.set(true); })(); - let rtnp = getPtyData(this.context.screenId, this.context.cmdId); + let rtnp = getPtyData(this.context.screenId, this.context.cmdId, this.context.lineNum); rtnp.then((ptydata) => { setTimeout(() => { this.ptyData = ptydata; diff --git a/src/term.ts b/src/term.ts index 86300f01..c166a320 100644 --- a/src/term.ts +++ b/src/term.ts @@ -278,7 +278,7 @@ class TermWrap { } else { let termContext = this.getRendererContext(); - rtnp = getPtyData(termContext.screenId, termContext.cmdId); + rtnp = getPtyData(termContext.screenId, termContext.cmdId, termContext.lineNum); } rtnp.then((ptydata) => { setTimeout(() => { diff --git a/src/types.ts b/src/types.ts index 90bb49a1..68b2b22b 100644 --- a/src/types.ts +++ b/src/types.ts @@ -415,11 +415,17 @@ type FeOptsType = { termfontsize : number, }; +type ClientOptsType = { + notelemetry : boolean, +}; + type ClientDataType = { clientid : string, userid : string, feopts : FeOptsType; + clientopts : ClientOptsType, cmdstoretype : "session" | "screen"; + dbversion : number, migration? : ClientMigrationInfo; };