mirror of
https://github.com/wavetermdev/backup.git
synced 2026-08-05 13:57:07 -07:00
add getCmd to linecontainer
This commit is contained in:
+18
-12
@@ -125,7 +125,7 @@ class LineAvatar extends React.Component<{line : LineType, cmd : Cmd}, {}> {
|
|||||||
|
|
||||||
|
|
||||||
@mobxReact.observer
|
@mobxReact.observer
|
||||||
class LineCmd extends React.Component<{sw : LineContainerModel, line : LineType, width : number, staticRender : boolean, visible : OV<boolean>, onHeightChange : HeightChangeCallbackType, topBorder : boolean, renderMode : RenderModeType, overrideCollapsed : OV<boolean>}, {}> {
|
class LineCmd extends React.Component<{sw : LineContainerModel, line : LineType, width : number, staticRender : boolean, visible : OV<boolean>, onHeightChange : HeightChangeCallbackType, topBorder : boolean, renderMode : RenderModeType, overrideCollapsed : OV<boolean>, noSelect? : boolean}, {}> {
|
||||||
lineRef : React.RefObject<any> = React.createRef();
|
lineRef : React.RefObject<any> = React.createRef();
|
||||||
cmdTextRef : React.RefObject<any> = React.createRef();
|
cmdTextRef : React.RefObject<any> = React.createRef();
|
||||||
rtnStateDiff : mobx.IObservableValue<string> = mobx.observable.box(null, {name: "linecmd-rtn-state-diff"});
|
rtnStateDiff : mobx.IObservableValue<string> = mobx.observable.box(null, {name: "linecmd-rtn-state-diff"});
|
||||||
@@ -139,7 +139,7 @@ class LineCmd extends React.Component<{sw : LineContainerModel, line : LineType,
|
|||||||
}
|
}
|
||||||
|
|
||||||
checkStateDiffLoad() : void {
|
checkStateDiffLoad() : void {
|
||||||
let {line, staticRender, visible} = this.props;
|
let {sw, line, staticRender, visible} = this.props;
|
||||||
if (staticRender || this.isCollapsed()) {
|
if (staticRender || this.isCollapsed()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -150,7 +150,7 @@ class LineCmd extends React.Component<{sw : LineContainerModel, line : LineType,
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let cmd = GlobalModel.getCmd(line);
|
let cmd = sw.getCmd(line);
|
||||||
if (cmd == null || !cmd.getRtnState() || this.rtnStateDiffFetched) {
|
if (cmd == null || !cmd.getRtnState() || this.rtnStateDiffFetched) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -310,7 +310,10 @@ class LineCmd extends React.Component<{sw : LineContainerModel, line : LineType,
|
|||||||
|
|
||||||
@boundMethod
|
@boundMethod
|
||||||
handleClick() {
|
handleClick() {
|
||||||
let {line} = this.props;
|
let {line, noSelect} = this.props;
|
||||||
|
if (noSelect) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
let sel = window.getSelection();
|
let sel = window.getSelection();
|
||||||
if (this.lineRef.current != null) {
|
if (this.lineRef.current != null) {
|
||||||
let selText = sel.toString();
|
let selText = sel.toString();
|
||||||
@@ -375,7 +378,7 @@ class LineCmd extends React.Component<{sw : LineContainerModel, line : LineType,
|
|||||||
|
|
||||||
renderSimple() {
|
renderSimple() {
|
||||||
let {sw, line, width, topBorder, renderMode} = this.props;
|
let {sw, line, width, topBorder, renderMode} = this.props;
|
||||||
let cmd = GlobalModel.getCmd(line);
|
let cmd = sw.getCmd(line);
|
||||||
let isCollapsed = this.isCollapsed();
|
let isCollapsed = this.isCollapsed();
|
||||||
let mainDivCn = cn(
|
let mainDivCn = cn(
|
||||||
"line",
|
"line",
|
||||||
@@ -432,7 +435,7 @@ class LineCmd extends React.Component<{sw : LineContainerModel, line : LineType,
|
|||||||
return this.renderSimple();
|
return this.renderSimple();
|
||||||
}
|
}
|
||||||
let formattedTime = getLineDateTimeStr(line.ts);
|
let formattedTime = getLineDateTimeStr(line.ts);
|
||||||
let cmd = model.getCmd(line);
|
let cmd = sw.getCmd(line);
|
||||||
if (cmd == null) {
|
if (cmd == null) {
|
||||||
return (
|
return (
|
||||||
<div className="line line-invalid" id={this.getLineDomId()} ref={this.lineRef} data-lineid={line.lineid} data-linenum={line.linenum} data-windowid={line.windowid}>
|
<div className="line line-invalid" id={this.getLineDomId()} ref={this.lineRef} data-lineid={line.lineid} data-linenum={line.linenum} data-windowid={line.windowid}>
|
||||||
@@ -517,7 +520,7 @@ class LineCmd extends React.Component<{sw : LineContainerModel, line : LineType,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@mobxReact.observer
|
@mobxReact.observer
|
||||||
class Line extends React.Component<{sw : LineContainerModel, line : LineType, width : number, staticRender : boolean, visible : OV<boolean>, onHeightChange : HeightChangeCallbackType, overrideCollapsed : OV<boolean>, topBorder : boolean, renderMode : RenderModeType}, {}> {
|
class Line extends React.Component<{sw : LineContainerModel, line : LineType, width : number, staticRender : boolean, visible : OV<boolean>, onHeightChange : HeightChangeCallbackType, overrideCollapsed : OV<boolean>, topBorder : boolean, renderMode : RenderModeType, noSelect? : boolean}, {}> {
|
||||||
render() {
|
render() {
|
||||||
let line = this.props.line;
|
let line = this.props.line;
|
||||||
if (line.archived) {
|
if (line.archived) {
|
||||||
@@ -571,10 +574,13 @@ class Prompt extends React.Component<{rptr : RemotePtrType, festate : FeStateTyp
|
|||||||
}
|
}
|
||||||
|
|
||||||
@mobxReact.observer
|
@mobxReact.observer
|
||||||
class LineText extends React.Component<{sw : LineContainerModel, line : LineType, renderMode : RenderModeType, topBorder : boolean}, {}> {
|
class LineText extends React.Component<{sw : LineContainerModel, line : LineType, renderMode : RenderModeType, topBorder : boolean, noSelect? : boolean}, {}> {
|
||||||
@boundMethod
|
@boundMethod
|
||||||
clickHandler() {
|
clickHandler() {
|
||||||
let {line} = this.props;
|
let {line, noSelect} = this.props;
|
||||||
|
if (noSelect) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
GlobalCommandRunner.swSelectLine(String(line.linenum));
|
GlobalCommandRunner.swSelectLine(String(line.linenum));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -675,7 +681,7 @@ class ImageRenderer extends React.Component<{sw : LineContainerModel, line : Lin
|
|||||||
loadImage() : void {
|
loadImage() : void {
|
||||||
let {sw, line} = this.props;
|
let {sw, line} = this.props;
|
||||||
let model = GlobalModel;
|
let model = GlobalModel;
|
||||||
let cmd = model.getCmd(line);
|
let cmd = sw.getCmd(line);
|
||||||
if (cmd == null) {
|
if (cmd == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -782,7 +788,7 @@ class TerminalRenderer extends React.Component<{sw : LineContainerModel, line :
|
|||||||
loadTerminal() : void {
|
loadTerminal() : void {
|
||||||
let {sw, line} = this.props;
|
let {sw, line} = this.props;
|
||||||
let model = GlobalModel;
|
let model = GlobalModel;
|
||||||
let cmd = model.getCmd(line);
|
let cmd = sw.getCmd(line);
|
||||||
if (cmd == null) {
|
if (cmd == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -827,7 +833,7 @@ class TerminalRenderer extends React.Component<{sw : LineContainerModel, line :
|
|||||||
let swFocusType = sw.getFocusType();
|
let swFocusType = sw.getFocusType();
|
||||||
return isPhysicalFocused && (swFocusType == "cmd" || swFocusType == "cmd-fg")
|
return isPhysicalFocused && (swFocusType == "cmd" || swFocusType == "cmd-fg")
|
||||||
}, {name: "computed-isFocused"}).get();
|
}, {name: "computed-isFocused"}).get();
|
||||||
let cmd = GlobalModel.getCmd(line); // will not be null
|
let cmd = sw.getCmd(line); // will not be null
|
||||||
let usedRows = sw.getUsedRows(line, cmd, width);
|
let usedRows = sw.getUsedRows(line, cmd, width);
|
||||||
let termHeight = termHeightFromRows(usedRows, GlobalModel.termFontSize.get());
|
let termHeight = termHeightFromRows(usedRows, GlobalModel.termFontSize.get());
|
||||||
let termLoaded = this.termLoaded.get();
|
let termLoaded = this.termLoaded.get();
|
||||||
|
|||||||
+10
-1
@@ -37,6 +37,7 @@ type LineContainerModel = {
|
|||||||
getRenderer : (cmdId : string) => RendererModel,
|
getRenderer : (cmdId : string) => RendererModel,
|
||||||
getFocusType : () => "input" | "cmd" | "cmd-fg",
|
getFocusType : () => "input" | "cmd" | "cmd-fg",
|
||||||
getSelectedLine : () => number,
|
getSelectedLine : () => number,
|
||||||
|
getCmd : (line : LineType) => Cmd,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -365,6 +366,10 @@ class ScreenWindow {
|
|||||||
this.termLineNumFocus = mobx.observable.box(0, {name: "termLineNumFocus"});
|
this.termLineNumFocus = mobx.observable.box(0, {name: "termLineNumFocus"});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getCmd(line : LineType) : Cmd {
|
||||||
|
return GlobalModel.getCmd(line);
|
||||||
|
}
|
||||||
|
|
||||||
getAnchorStr() : string {
|
getAnchorStr() : string {
|
||||||
if (this.anchorLine == null || this.anchorLine == 0) {
|
if (this.anchorLine == null || this.anchorLine == 0) {
|
||||||
return "0";
|
return "0";
|
||||||
@@ -725,7 +730,7 @@ class Window {
|
|||||||
dispose() {
|
dispose() {
|
||||||
}
|
}
|
||||||
|
|
||||||
getCmd(cmdId : string) {
|
getCmd(cmdId : string) : Cmd {
|
||||||
return this.cmds[cmdId];
|
return this.cmds[cmdId];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1638,6 +1643,10 @@ class SpecialHistoryViewLineContainer {
|
|||||||
constructor(hitem : HistoryItem) {
|
constructor(hitem : HistoryItem) {
|
||||||
this.historyItem = hitem;
|
this.historyItem = hitem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getCmd(line : LineType) : Cmd {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
loadTerminalRenderer(elem : Element, line : LineType, cmd : Cmd, width : number) : void {
|
loadTerminalRenderer(elem : Element, line : LineType, cmd : Cmd, width : number) : void {
|
||||||
this.unloadRenderer(null);
|
this.unloadRenderer(null);
|
||||||
|
|||||||
Reference in New Issue
Block a user