cleanup screenlinecontainer model

This commit is contained in:
Red Adaya 2024-02-08 09:20:30 +08:00
parent d414657252
commit 35fa59aadd

View File

@ -1,109 +1,29 @@
// Copyright 2023, Command Line Inc.
// SPDX-License-Identifier: Apache-2.0
import type React from "react";
import * as mobx from "mobx";
import { sprintf } from "sprintf-js";
import { v4 as uuidv4 } from "uuid";
import { boundMethod } from "autobind-decorator";
import { debounce } from "throttle-debounce";
import * as mobxReact from "mobx-react";
import {
handleJsonFetchResponse,
base64ToString,
stringToBase64,
base64ToArray,
genMergeData,
genMergeDataMap,
genMergeSimpleData,
boundInt,
isModKeyPress,
} from "../util/util";
import { TermWrap } from "../plugins/terminal/term";
import { PluginModel } from "../plugins/plugins";
import {
SessionDataType,
LineType,
RemoteType,
HistoryItem,
RemoteInstanceType,
RemotePtrType,
CmdDataType,
FeCmdPacketType,
TermOptsType,
ScreenDataType,
ScreenOptsType,
PtyDataUpdateType,
ModelUpdateType,
UpdateMessage,
InfoType,
UIContextType,
HistoryInfoType,
HistoryQueryOpts,
FeInputPacketType,
RemoteInputPacketType,
ContextMenuOpts,
RendererContext,
RendererModel,
PtyDataType,
BookmarkType,
ClientDataType,
HistoryViewDataType,
AlertMessageType,
HistorySearchParams,
FocusTypeStrs,
ScreenLinesType,
HistoryTypeStrs,
RendererPluginType,
WindowSize,
WebShareOpts,
TermContextUnion,
RemoteEditType,
RemoteViewType,
CommandRtnType,
WebCmd,
WebRemote,
OpenAICmdInfoChatMessageType,
StatusIndicatorLevel,
} from "../types/types";
import * as T from "../types/types";
import { WSControl } from "./ws";
import {
getMonoFontSize,
windowWidthToCols,
windowHeightToRows,
termWidthFromCols,
termHeightFromRows,
} from "../util/textmeasure";
import dayjs from "dayjs";
import localizedFormat from "dayjs/plugin/localizedFormat";
import customParseFormat from "dayjs/plugin/customParseFormat";
import { getRendererContext, cmdStatusIsRunning } from "../app/line/lineutil";
import { MagicLayout } from "../app/magiclayout";
import { modalsRegistry } from "../app/common/modals/registry";
import * as appconst from "../app/appconst";
import { checkKeyPressed, adaptFromReactOrNativeKeyEvent, setKeyUtilPlatform } from "../util/keyutil";
import { OV, OArr, OMap, CV } from "../types/types";
import { Session } from "./session";
import { CommandRunner } from "./commandrunner";
import { ScreenLines } from "./screenlines";
import { InputModel } from "./input";
import { PluginsModel } from "./plugins";
import { BookmarksModel } from "./bookmarks";
import { LineType, RendererContext, RendererModel, FocusTypeStrs, WindowSize, LineContainerStrs } from "../types/types";
import { windowWidthToCols } from "../util/textmeasure";
import { getRendererContext } from "../app/line/lineutil";
import { getTermPtyData } from "../util/modelutil";
import { Cmd } from "./cmd";
import { Model } from "./model";
type CmdFinder = {
getCmdById(cmdId: string): Cmd;
};
class SpecialLineContainer {
globalModel: Model;
wsize: T.WindowSize;
wsize: WindowSize;
allowInput: boolean;
terminal: TermWrap;
renderer: RendererModel;
cmd: Cmd;
cmdFinder: CmdFinder;
containerType: T.LineContainerStrs;
containerType: LineContainerStrs;
constructor(cmdFinder: CmdFinder, wsize: T.WindowSize, allowInput: boolean, containerType: T.LineContainerStrs) {
constructor(cmdFinder: CmdFinder, wsize: WindowSize, allowInput: boolean, containerType: LineContainerStrs) {
this.globalModel = Model.getInstance();
this.cmdFinder = cmdFinder;
this.wsize = wsize;
@ -117,7 +37,7 @@ class SpecialLineContainer {
return this.cmd;
}
getContainerType(): T.LineContainerStrs {
getContainerType(): LineContainerStrs {
return this.containerType;
}