fix typescript errors

This commit is contained in:
sawka 2022-08-11 11:49:46 -07:00
parent 291d1dc704
commit 034995ef2a
4 changed files with 34 additions and 24 deletions

View File

@ -8,7 +8,7 @@ import dayjs from 'dayjs'
import {If, For, When, Otherwise, Choose} from "tsx-control-statements/components";
import cn from "classnames"
import {TermWrap} from "./term";
import type {SessionDataType, LineType, CmdDataType, RemoteType} from "./types";
import type {SessionDataType, LineType, CmdDataType, RemoteType, RemoteStateType, RemoteInstanceType} from "./types";
import localizedFormat from 'dayjs/plugin/localizedFormat';
import {GlobalModel, GlobalInput, Session, Cmd, Window, Screen, ScreenWindow} from "./model";
@ -641,7 +641,7 @@ class ScreenTabs extends React.Component<{session : Session}, {}> {
e.preventDefault();
console.log("handle context menu!", screenId);
let model = GlobalModel;
model.contextScreen(screenId);
model.contextScreen(e, screenId);
}
render() {

View File

@ -4,7 +4,7 @@ import {boundMethod} from "autobind-decorator";
import {handleJsonFetchResponse, base64ToArray, genMergeData, genMergeSimpleData} from "./util";
import {TermWrap} from "./term";
import {v4 as uuidv4} from "uuid";
import type {SessionDataType, WindowDataType, LineType, RemoteType, HistoryItem, RemoteInstanceType, CmdDataType, FeCmdPacketType, TermOptsType, RemoteStateType, ScreenDataType, ScreenWindowType, ScreenOptsType, LayoutType, PtyDataUpdateType, SessionUpdateType, WindowUpdateType, UpdateMessage, LineCmdUpdateType} from "./types";
import type {SessionDataType, WindowDataType, LineType, RemoteType, HistoryItem, RemoteInstanceType, CmdDataType, FeCmdPacketType, TermOptsType, RemoteStateType, ScreenDataType, ScreenWindowType, ScreenOptsType, LayoutType, PtyDataUpdateType, SessionUpdateType, WindowUpdateType, UpdateMessage, LineCmdUpdateType, InfoType, CmdLineUpdateType} from "./types";
import {WSControl} from "./ws";
var GlobalUser = "sawka";
@ -30,7 +30,7 @@ type ElectronApi = {
onICmd : (callback : (mods : KeyModsType) => void) => void,
onBracketCmd : (callback : (event : any, arg : {relative : number}, mods : KeyModsType) => void) => void,
onDigitCmd : (callback : (event : any, arg : {digit : number}, mods : KeyModsType) => void) => void,
contextScreen : (screenId : string) => void,
contextScreen : (screenOpts : {screenId : string}, position : {x : number, y : number}) => void,
};
function getApi() : ElectronApi {
@ -296,7 +296,7 @@ class Window {
if (load) {
this.loaded.set(true);
}
genMergeSimpleData(this.lines, win.lines, (l) => String(l.lineid), (l) => l.lineid);
genMergeSimpleData(this.lines, win.lines, (l : LineType) => String(l.lineid), (l : LineType) => l.lineid);
this.history = win.history || [];
let cmds = win.cmds || [];
for (let i=0; i<cmds.length; i++) {
@ -498,19 +498,6 @@ class Session {
}
}
type InfoType = {
infotitle : string,
infomsg : string,
infoerror : string,
infocomps : string[],
infocompsmore : boolean,
};
type CmdLineUpdateType = {
insertchars : string,
insertpos : number,
};
class InputModel {
historyIndex : mobx.IObservableValue<number> = mobx.observable.box(0, {name: "history-index"});
modHistory : mobx.IObservableArray<string> = mobx.observable.array([""], {name: "mod-history"});
@ -730,11 +717,12 @@ class Model {
this.updateWindow(winMsg.window, false);
}
if ("info" in update) {
let info = update.info;
let info : InfoType = update.info;
this.flashInfoMsg(info, info.timeoutms);
}
if ("cmdline" in update) {
this.inputModel.updateCmdLine(update.cmdline);
let cmdline : CmdLineUpdateType = update.cmdline;
this.inputModel.updateCmdLine(cmdline);
}
console.log("run-update>", interactive, update);
}

View File

@ -7,6 +7,7 @@ type SessionDataType = {
activescreenid : string,
sessionidx : number,
screens : ScreenDataType[],
remotes : RemoteInstanceType[],
// for updates
remove? : boolean,
@ -22,6 +23,7 @@ type LineType = {
linetype : string,
text : string,
cmdid : string,
remove? : boolean,
};
type ScreenOptsType = {
@ -175,18 +177,38 @@ type PtyDataUpdateType = {
type SessionUpdateType = {
sessions : SessionDataType[],
activesessionid? : string,
};
type LineCmdUpdateType = {
line : LineType,
cmd : CmdDataType,
remove : boolean,
}
};
type UpdateMessage = PtyDataUpdateType | SessionUpdateType | LineCmdUpdateType;
type CmdLineUpdateType = {
insertchars : string,
insertpos : number,
};
type InfoUpdateType = {
cmdline : CmdLineUpdateType,
info : InfoType,
};
type UpdateMessage = PtyDataUpdateType | SessionUpdateType | LineCmdUpdateType | InfoUpdateType;
type WindowUpdateType = {
window: WindowDataType,
}
export type {SessionDataType, LineType, RemoteType, RemoteStateType, RemoteInstanceType, WindowDataType, HistoryItem, CmdRemoteStateType, FeCmdPacketType, TermOptsType, CmdStartPacketType, CmdDonePacketType, CmdDataType, ScreenDataType, ScreenOptsType, ScreenWindowType, LayoutType, PtyDataUpdateType, SessionUpdateType, WindowUpdateType, UpdateMessage, LineCmdUpdateType};
type InfoType = {
infotitle? : string,
infomsg? : string,
infoerror? : string,
infocomps? : string[],
infocompsmore? : boolean,
timeoutms? : number,
};
export type {SessionDataType, LineType, RemoteType, RemoteStateType, RemoteInstanceType, WindowDataType, HistoryItem, CmdRemoteStateType, FeCmdPacketType, TermOptsType, CmdStartPacketType, CmdDonePacketType, CmdDataType, ScreenDataType, ScreenOptsType, ScreenWindowType, LayoutType, PtyDataUpdateType, SessionUpdateType, WindowUpdateType, UpdateMessage, LineCmdUpdateType, InfoType, CmdLineUpdateType};

View File

@ -62,7 +62,7 @@ interface ISimpleDataType {
remove? : boolean;
}
function genMergeSimpleData<T extends ISimpleDataType>(objs : mobx.IObservableArray<T>, dataArr : T, idFn : (obj : T) => string, sortIdxFn : (obj : T) => number) {
function genMergeSimpleData<T extends ISimpleDataType>(objs : mobx.IObservableArray<T>, dataArr : T[], idFn : (obj : T) => string, sortIdxFn : (obj : T) => number) {
if (dataArr == null || dataArr.length == 0) {
return;
}