From e83abeaa5bcdef0f12caf155db220019603bcadf Mon Sep 17 00:00:00 2001 From: sawka Date: Tue, 28 Mar 2023 22:53:18 -0700 Subject: [PATCH] big refactor for webshare, reduce GlobalModel dependencies --- src/history.tsx | 2 +- src/imagerenderer.tsx | 3 +- src/linecomps.tsx | 109 ++++--- src/lineutil.ts | 76 +++++ src/main.tsx | 3 +- src/model.ts | 112 +------ src/plugins.ts | 67 ++++ src/settings.tsx | 3 +- src/sh2.less | 17 +- src/sh2.ts | 43 +-- src/simplerenderer.tsx | 15 +- src/term.ts | 34 +- src/textmeasure.ts | 33 +- src/types.ts | 54 +++- src/util.ts | 52 +++- src/webshare-elems.tsx | 293 +++++++++++++++++- src/webshare-model.ts | 8 +- src/webshare.ts | 14 +- .../fonts/fontawesome-webfont-4.7.woff2 | Bin 0 -> 77160 bytes .../fonts/jetbrains-mono-v13-latin-200.woff | Bin 0 -> 26636 bytes .../fonts/jetbrains-mono-v13-latin-200.woff2 | Bin 0 -> 21012 bytes .../fonts/jetbrains-mono-v13-latin-700.woff | Bin 0 -> 26760 bytes .../fonts/jetbrains-mono-v13-latin-700.woff2 | Bin 0 -> 21080 bytes .../jetbrains-mono-v13-latin-regular.woff | Bin 0 -> 25940 bytes .../jetbrains-mono-v13-latin-regular.woff2 | Bin 0 -> 20388 bytes 25 files changed, 705 insertions(+), 233 deletions(-) create mode 100644 src/lineutil.ts create mode 100644 src/plugins.ts create mode 100644 webshare/static/fonts/fontawesome-webfont-4.7.woff2 create mode 100644 webshare/static/fonts/jetbrains-mono-v13-latin-200.woff create mode 100644 webshare/static/fonts/jetbrains-mono-v13-latin-200.woff2 create mode 100644 webshare/static/fonts/jetbrains-mono-v13-latin-700.woff create mode 100644 webshare/static/fonts/jetbrains-mono-v13-latin-700.woff2 create mode 100644 webshare/static/fonts/jetbrains-mono-v13-latin-regular.woff create mode 100644 webshare/static/fonts/jetbrains-mono-v13-latin-regular.woff2 diff --git a/src/history.tsx b/src/history.tsx index 998073695..7aa891d26 100644 --- a/src/history.tsx +++ b/src/history.tsx @@ -547,7 +547,7 @@ class LineContainer extends React.Component<{historyId : string, width : number}
- +
); } diff --git a/src/imagerenderer.tsx b/src/imagerenderer.tsx index ec6063ee3..a01d8aeab 100644 --- a/src/imagerenderer.tsx +++ b/src/imagerenderer.tsx @@ -4,7 +4,8 @@ import * as mobxReact from "mobx-react"; import cn from "classnames"; import {If, For, When, Otherwise, Choose} from "tsx-control-statements/components"; import {WindowSize, RendererContext, TermOptsType, LineType, RendererOpts} from "./types"; -import {getPtyData, termWidthFromCols, termHeightFromRows, GlobalModel, LineContainerModel} from "./model"; +import {LineContainerModel} from "./model"; +import {termWidthFromCols, termHeightFromRows} from "./textmeasure"; import {incObs} from "./util"; import {PtyDataBuffer} from "./ptydata"; diff --git a/src/linecomps.tsx b/src/linecomps.tsx index 8e682064c..087ab4ff3 100644 --- a/src/linecomps.tsx +++ b/src/linecomps.tsx @@ -6,13 +6,17 @@ import {boundMethod} from "autobind-decorator"; import dayjs from "dayjs"; import localizedFormat from 'dayjs/plugin/localizedFormat'; import {If, For, When, Otherwise, Choose} from "tsx-control-statements/components"; -import {GlobalModel, GlobalCommandRunner, Session, Cmd, ScreenLines, Screen, windowWidthToCols, windowHeightToRows, termHeightFromRows, termWidthFromCols, getRendererContext, getRendererType} from "./model"; +import {GlobalModel, GlobalCommandRunner, Session, Cmd, ScreenLines, Screen, getRendererContext} from "./model"; +import {windowWidthToCols, windowHeightToRows, termHeightFromRows, termWidthFromCols} from "./textmeasure"; import type {LineType, CmdDataType, FeStateType, RemoteType, RemotePtrType, RenderModeType, RendererContext, RendererOpts, SimpleBlobRendererComponent, RendererPluginType} from "./types"; import cn from "classnames"; import {TermWrap} from "./term"; import type {LineContainerModel} from "./model"; import {renderCmdText} from "./elements"; import {SimpleBlobRendererModel, SimpleBlobRenderer} from "./simplerenderer"; +import {isBlank} from "./util"; +import {PluginModel} from "./plugins"; +import * as lineutil from "./lineutil"; dayjs.extend(localizedFormat) @@ -24,10 +28,6 @@ type HeightChangeCallbackType = (lineNum : number, newHeight : number, oldHeight type RendererComponentProps = {screen : LineContainerModel, line : LineType, width : number, staticRender : boolean, visible : OV, onHeightChange : HeightChangeCallbackType, collapsed : boolean}; type RendererComponentType = { new(props : RendererComponentProps) : React.Component }; -function isBlank(s : string) : boolean { - return (s == null || s == ""); -} - function makeFullRemoteRef(ownerName : string, remoteRef : string, name : string) : string { if (isBlank(ownerName) && isBlank(name)) { return remoteRef; @@ -75,40 +75,8 @@ function getCwdStr(remote : RemoteType, state : FeStateType) : string { return cwd; } -function getLineDateTimeStr(ts : number) : string { - let lineDate = new Date(ts); - let nowDate = new Date(); - - if (nowDate.getFullYear() != lineDate.getFullYear()) { - return dayjs(lineDate).format("ddd L LTS"); - } - else if (nowDate.getMonth() != lineDate.getMonth() || nowDate.getDate() != lineDate.getDate()) { - let yesterdayDate = (new Date()); - yesterdayDate.setDate(yesterdayDate.getDate()-1); - if (yesterdayDate.getMonth() == lineDate.getMonth() && yesterdayDate.getDate() == lineDate.getDate()) { - return "Yesterday " + dayjs(lineDate).format("LTS");; - } - return dayjs(lineDate).format("ddd L LTS"); - } - else { - return dayjs(lineDate).format("LTS"); - } -} - @mobxReact.observer -class LineAvatar extends React.Component<{line : LineType, cmd : Cmd}, {}> { - @boundMethod - handleRightClick(e : any) { - e.preventDefault(); - e.stopPropagation(); - let {line} = this.props; - if (line != null) { - mobx.action(() => { - GlobalModel.lineSettingsModal.set(line); - })(); - } - } - +class LineAvatar extends React.Component<{line : LineType, cmd : Cmd, onRightClick? : (e : any) => void}, {}> { render() { let {line, cmd} = this.props; let lineNumStr = (line.linenumtemp ? "~" : "") + String(line.linenum); @@ -116,7 +84,7 @@ class LineAvatar extends React.Component<{line : LineType, cmd : Cmd}, {}> { let rtnstate = (cmd != null ? cmd.getRtnState() : false); let isComment = (line.linetype == "text"); return ( -
this.handleRightClick(e)} className={cn("avatar", "num-"+lineNumStr.length, "status-" + status, {"ephemeral": line.ephemeral}, {"rtnstate": rtnstate})}> +
{lineNumStr} @@ -132,7 +100,6 @@ class LineAvatar extends React.Component<{line : LineType, cmd : Cmd}, {}> { } } - @mobxReact.observer class LineCmd extends React.Component<{screen : LineContainerModel, line : LineType, width : number, staticRender : boolean, visible : OV, onHeightChange : HeightChangeCallbackType, topBorder : boolean, renderMode : RenderModeType, overrideCollapsed : OV, noSelect? : boolean, showHints? : boolean}, {}> { lineRef : React.RefObject = React.createRef(); @@ -231,18 +198,18 @@ class LineCmd extends React.Component<{screen : LineContainerModel, line : LineT
-
{cmd.getFullCmdText()}
+
{lineutil.getFullCmdText(cmd.getCmdStr())}
); } - let isMultiLine = cmd.isMultiLineCmdText(); + let isMultiLine = lineutil.isMultiLineCmdText(cmd.getCmdStr()); return (
- {cmd.getSingleLineCmdText()} + {lineutil.getSingleLineCmdText(cmd.getCmdStr())}
...▼
@@ -389,6 +356,21 @@ class LineCmd extends React.Component<{screen : LineContainerModel, line : LineT return height; } + @boundMethod + onAvatarRightClick(e : any) : void { + let {line, noSelect} = this.props; + if (noSelect) { + return; + } + e.preventDefault(); + e.stopPropagation(); + if (line != null) { + mobx.action(() => { + GlobalModel.lineSettingsModal.set(line); + })(); + } + } + renderSimple() { let {screen, line, topBorder} = this.props; let cmd = screen.getCmd(line); @@ -436,7 +418,7 @@ class LineCmd extends React.Component<{screen : LineContainerModel, line : LineT renderMetaWrap(cmd : Cmd) { let {line} = this.props; let model = GlobalModel; - let formattedTime = getLineDateTimeStr(line.ts); + let formattedTime = lineutil.getLineDateTimeStr(line.ts); let termOpts = cmd.getTermOpts(); let remote = model.getRemote(cmd.remoteId); let renderer = line.renderer; @@ -459,6 +441,16 @@ class LineCmd extends React.Component<{screen : LineContainerModel, line : LineT
); } + + getRendererOpts(cmd : Cmd) : RendererOpts { + let {screen} = this.props; + return { + maxSize: screen.getMaxContentSize(), + idealSize: screen.getIdealContentSize(), + termOpts: cmd.getTermOpts(), + termFontSize: GlobalModel.termFontSize.get(), + }; + } render() { let {screen, line, width, staticRender, visible, topBorder, renderMode} = this.props; @@ -468,7 +460,7 @@ class LineCmd extends React.Component<{screen : LineContainerModel, line : LineT if (staticRender || !isVisible) { return this.renderSimple(); } - let formattedTime = getLineDateTimeStr(line.ts); + let formattedTime = lineutil.getLineDateTimeStr(line.ts); let cmd = screen.getCmd(line); if (cmd == null) { return ( @@ -507,16 +499,16 @@ class LineCmd extends React.Component<{screen : LineContainerModel, line : LineT let rendererPlugin : RendererPluginType = null; let isNoneRenderer = (line.renderer == "none"); if (!isBlank(line.renderer) && line.renderer != "terminal" && !isNoneRenderer) { - rendererPlugin = GlobalModel.getRendererPluginByName(line.renderer); + rendererPlugin = PluginModel.getRendererPluginByName(line.renderer); } - let rendererType = getRendererType(line); + let rendererType = lineutil.getRendererType(line); return (
- +
@@ -535,7 +527,7 @@ class LineCmd extends React.Component<{screen : LineContainerModel, line : LineT - +
@@ -622,9 +614,24 @@ class LineText extends React.Component<{screen : LineContainerModel, line : Line GlobalCommandRunner.screenSelectLine(String(line.linenum)); } + @boundMethod + onAvatarRightClick(e : any) : void { + let {line, noSelect} = this.props; + if (noSelect) { + return; + } + e.preventDefault(); + e.stopPropagation(); + if (line != null) { + mobx.action(() => { + GlobalModel.lineSettingsModal.set(line); + })(); + } + } + render() { let {screen, line, topBorder, renderMode} = this.props; - let formattedTime = getLineDateTimeStr(line.ts); + let formattedTime = lineutil.getLineDateTimeStr(line.ts); let isSelected = mobx.computed(() => (screen.getSelectedLine() == line.linenum), {name: "computed-isSelected"}).get(); let isFocused = mobx.computed(() => (screen.getFocusType() == "cmd"), {name: "computed-isFocused"}).get(); let isCollapsed = (renderMode == "collapsed"); @@ -638,7 +645,7 @@ class LineText extends React.Component<{screen : LineContainerModel, line : Line return (
- +
{formattedTime}
diff --git a/src/lineutil.ts b/src/lineutil.ts new file mode 100644 index 000000000..8f25210bb --- /dev/null +++ b/src/lineutil.ts @@ -0,0 +1,76 @@ +import dayjs from "dayjs"; +import localizedFormat from 'dayjs/plugin/localizedFormat'; +import {isBlank, getDateStr} from "./util"; +import {LineType, WebLine} from "./types"; + +dayjs.extend(localizedFormat) + +function getRendererType(line : LineType|WebLine) : "terminal" | "plugin" { + if (isBlank(line.renderer) || line.renderer == "terminal") { + return "terminal"; + } + return "plugin"; +} + +function getLineDateStr(todayDate : string, yesterdayDate : string, ts : number) : string { + let lineDate = new Date(ts); + let dateStr = getDateStr(lineDate); + if (dateStr == todayDate) { + return "today"; + } + if (dateStr == yesterdayDate) { + return "yesterday"; + } + return dateStr; +} + +function getLineDateTimeStr(ts : number) : string { + let lineDate = new Date(ts); + let nowDate = new Date(); + + if (nowDate.getFullYear() != lineDate.getFullYear()) { + return dayjs(lineDate).format("ddd L LTS"); + } + else if (nowDate.getMonth() != lineDate.getMonth() || nowDate.getDate() != lineDate.getDate()) { + let yesterdayDate = (new Date()); + yesterdayDate.setDate(yesterdayDate.getDate()-1); + if (yesterdayDate.getMonth() == lineDate.getMonth() && yesterdayDate.getDate() == lineDate.getDate()) { + return "Yesterday " + dayjs(lineDate).format("LTS");; + } + return dayjs(lineDate).format("ddd L LTS"); + } + else { + return dayjs(lineDate).format("LTS"); + } +} + +function isMultiLineCmdText(cmdText : string) : boolean { + if (cmdText == null) { + return false; + } + cmdText = cmdText.trim(); + let nlIdx = cmdText.indexOf("\n"); + return (nlIdx != -1); +} + +function getFullCmdText(cmdText : string) { + if (cmdText == null) { + return "(none)"; + } + cmdText = cmdText.trim(); + return cmdText; +} + +function getSingleLineCmdText(cmdText : string) { + if (cmdText == null) { + return "(none)"; + } + cmdText = cmdText.trim(); + let nlIdx = cmdText.indexOf("\n"); + if (nlIdx != -1) { + cmdText = cmdText.substr(0, nlIdx); + } + return cmdText; +} + +export {getRendererType, getLineDateStr, getLineDateTimeStr, isMultiLineCmdText, getFullCmdText, getSingleLineCmdText}; diff --git a/src/main.tsx b/src/main.tsx index 6c1b692da..dc09315e8 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -11,7 +11,8 @@ import dayjs from "dayjs"; import type {SessionDataType, LineType, CmdDataType, RemoteType, RemoteStateType, RemoteInstanceType, RemotePtrType, HistoryItem, HistoryQueryOpts, RemoteEditType, FeStateType, ContextMenuOpts, BookmarkType, RenderModeType, ClientMigrationInfo} from "./types"; import type * as T from "./types"; import localizedFormat from 'dayjs/plugin/localizedFormat'; -import {GlobalModel, GlobalCommandRunner, Session, Cmd, ScreenLines, Screen, riToRPtr, windowWidthToCols, windowHeightToRows, termHeightFromRows, termWidthFromCols, TabColors, RemoteColors} from "./model"; +import {GlobalModel, GlobalCommandRunner, Session, Cmd, ScreenLines, Screen, riToRPtr, TabColors, RemoteColors} from "./model"; +import {windowWidthToCols, windowHeightToRows, termHeightFromRows, termWidthFromCols} from "./textmeasure"; import {isModKeyPress, boundInt} from "./util"; import ReactMarkdown from 'react-markdown' import remarkGfm from 'remark-gfm' diff --git a/src/model.ts b/src/model.ts index 5a79adb11..e045baab7 100644 --- a/src/model.ts +++ b/src/model.ts @@ -5,9 +5,9 @@ import {debounce} from "throttle-debounce"; import {handleJsonFetchResponse, base64ToArray, genMergeData, genMergeDataMap, genMergeSimpleData, boundInt, isModKeyPress} from "./util"; import {TermWrap} from "./term"; import {v4 as uuidv4} from "uuid"; -import type {SessionDataType, LineType, RemoteType, HistoryItem, RemoteInstanceType, RemotePtrType, CmdDataType, FeCmdPacketType, TermOptsType, RemoteStateType, ScreenDataType, ScreenOptsType, PtyDataUpdateType, ModelUpdateType, UpdateMessage, InfoType, CmdLineUpdateType, UIContextType, HistoryInfoType, HistoryQueryOpts, FeInputPacketType, TermWinSize, RemoteInputPacketType, FeStateType, ContextMenuOpts, RendererContext, RendererModel, PtyDataType, BookmarkType, ClientDataType, HistoryViewDataType, AlertMessageType, HistorySearchParams, FocusTypeStrs, ScreenLinesType, HistoryTypeStrs, RendererPluginType, WindowSize, ClientMigrationInfo, WebShareOpts} from "./types"; +import type {SessionDataType, LineType, RemoteType, HistoryItem, RemoteInstanceType, RemotePtrType, CmdDataType, FeCmdPacketType, TermOptsType, RemoteStateType, ScreenDataType, ScreenOptsType, PtyDataUpdateType, ModelUpdateType, UpdateMessage, InfoType, CmdLineUpdateType, UIContextType, HistoryInfoType, HistoryQueryOpts, FeInputPacketType, TermWinSize, RemoteInputPacketType, FeStateType, ContextMenuOpts, RendererContext, RendererModel, PtyDataType, BookmarkType, ClientDataType, HistoryViewDataType, AlertMessageType, HistorySearchParams, FocusTypeStrs, ScreenLinesType, HistoryTypeStrs, RendererPluginType, WindowSize, ClientMigrationInfo, WebShareOpts, TermContextUnion} from "./types"; import {WSControl} from "./ws"; -import {measureText, getMonoFontSize} from "./textmeasure"; +import {measureText, getMonoFontSize, windowWidthToCols, windowHeightToRows, termWidthFromCols, termHeightFromRows} from "./textmeasure"; import dayjs from "dayjs"; import localizedFormat from 'dayjs/plugin/localizedFormat'; import customParseFormat from 'dayjs/plugin/customParseFormat'; @@ -18,8 +18,6 @@ dayjs.extend(localizedFormat) var GlobalUser = "sawka"; const RemotePtyRows = 8; // also in main.tsx const RemotePtyCols = 80; -const MinTermCols = 10; -const MaxTermCols = 1024; const ProdServerEndpoint = "http://localhost:1619"; const ProdServerWsEndpoint = "ws://localhost:1623"; const DevServerEndpoint = "http://localhost:8090"; @@ -60,13 +58,6 @@ type SWLinePtr = { screen : Screen, }; -function getRendererType(line : LineType) : "terminal" | "plugin" { - if (isBlank(line.renderer) || line.renderer == "terminal") { - return "terminal"; - } - return "plugin"; -} - function getRendererContext(line : LineType) : RendererContext { return { screenId: line.screenid, @@ -76,32 +67,6 @@ function getRendererContext(line : LineType) : RendererContext { }; } -function windowWidthToCols(width : number, fontSize : number) : number { - let dr = getMonoFontSize(fontSize); - let cols = Math.trunc((width - 50) / dr.width) - 1; - cols = boundInt(cols, MinTermCols, MaxTermCols); - return cols; -} - -function windowHeightToRows(height : number, fontSize : number) : number { - let dr = getMonoFontSize(fontSize); - let rows = Math.floor((height - 80) / dr.height) - 1; - if (rows <= 0) { - rows = 1; - } - return rows; -} - -function termWidthFromCols(cols : number, fontSize : number) : number { - let dr = getMonoFontSize(fontSize); - return Math.ceil(dr.width*cols) + 15; -} - -function termHeightFromRows(rows : number, fontSize : number) : number { - let dr = getMonoFontSize(fontSize); - return Math.ceil(dr.height*rows); -} - function cmdStatusIsRunning(status : string) : boolean { return status == "running" || status == "detached"; } @@ -227,38 +192,6 @@ class Cmd { return this.data.get().festate; } - isMultiLineCmdText() : boolean { - let cmdText = this.data.get().cmdstr; - if (cmdText == null) { - return false; - } - cmdText = cmdText.trim(); - let nlIdx = cmdText.indexOf("\n"); - return (nlIdx != -1); - } - - getSingleLineCmdText() { - let cmdText = this.data.get().cmdstr; - if (cmdText == null) { - return "(none)"; - } - cmdText = cmdText.trim(); - let nlIdx = cmdText.indexOf("\n"); - if (nlIdx != -1) { - cmdText = cmdText.substr(0, nlIdx); - } - return cmdText; - } - - getFullCmdText() { - let cmdText = this.data.get().cmdstr; - if (cmdText == null) { - return "(none)"; - } - cmdText = cmdText.trim(); - return cmdText; - } - isRunning() : boolean { let data = this.data.get(); return cmdStatusIsRunning(data.status); @@ -691,6 +624,8 @@ class Screen { isRunning: cmd.isRunning(), customKeyHandler: this.termCustomKeyHandler.bind(this), fontSize: GlobalModel.termFontSize.get(), + ptyDataSource: getTermPtyData, + onUpdateContentHeight: (termContext : RendererContext, height : number) => { GlobalModel.setContentHeight(termContext, height); }, }); this.terminals[cmdId] = termWrap; if ((this.focusType.get() == "cmd" || this.focusType.get() == "cmd-fg") && this.selectedLine.get() == line.linenum) { @@ -1639,6 +1574,8 @@ class InputModel { focusHandler: this.setRemoteTermWrapFocus.bind(this), isRunning: true, fontSize: GlobalModel.termFontSize.get(), + ptyDataSource: getTermPtyData, + onUpdateContentHeight: null, }); } } @@ -1757,7 +1694,8 @@ class SpecialHistoryViewLineContainer { isRunning: cmd.isRunning(), customKeyHandler: null, fontSize: GlobalModel.termFontSize.get(), - noSetTUR: true, + ptyDataSource: getTermPtyData, + onUpdateContentHeight: null, }); this.terminal = termWrap; return; @@ -2369,7 +2307,6 @@ class Model { sessionSettingsModal : OV = mobx.observable.box(null, {name: "sessionSettingsModal"}); clientSettingsModal : OV = mobx.observable.box(false, {name: "clientSettingsModal"}); lineSettingsModal : OV = mobx.observable.box(null, {name: "lineSettingsModal"}); - rendererPlugins : RendererPluginType[] = []; inputModel : InputModel; bookmarksModel : BookmarksModel; @@ -2423,20 +2360,6 @@ class Model { getApi().reloadWindow(); } - registerRendererPlugin(plugin : RendererPluginType) { - if (isBlank(plugin.name)) { - throw new Error("invalid plugin, no name"); - } - if (plugin.name == "terminal" || plugin.name == "none") { - throw new Error(sprintf("invalid plugin, name '%s' is reserved", plugin.name)); - } - let existingPlugin = this.getRendererPluginByName(plugin.name); - if (existingPlugin != null) { - throw new Error(sprintf("plugin with name %s already registered", plugin.name)); - } - this.rendererPlugins.push(plugin); - } - getHasClientStop() : boolean { if (this.clientData.get() == null) { return true; @@ -2448,16 +2371,6 @@ class Model { return false; } - getRendererPluginByName(name : string) : RendererPluginType { - for (let i=0; i { mobx.action(() => { this.alertMessage.set(alertMessage); @@ -3494,6 +3407,13 @@ function _getPtyDataFromUrl(url : string) : Promise { }); } +function getTermPtyData(termContext : TermContextUnion) : Promise { + if ("remoteId" in termContext) { + return getRemotePtyData(termContext.remoteId); + } + return getPtyData(termContext.screenId, termContext.cmdId, termContext.lineNum); +} + 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); @@ -3514,7 +3434,7 @@ if ((window as any).GlobalModel == null) { GlobalModel = (window as any).GlobalModel; GlobalCommandRunner = (window as any).GlobalCommandRunner; -export {Model, Session, ScreenLines, GlobalModel, GlobalCommandRunner, Cmd, Screen, riToRPtr, windowWidthToCols, windowHeightToRows, termWidthFromCols, termHeightFromRows, getPtyData, getRemotePtyData, TabColors, RemoteColors, getRendererType, getRendererContext}; +export {Model, Session, ScreenLines, GlobalModel, GlobalCommandRunner, Cmd, Screen, riToRPtr, TabColors, RemoteColors, getRendererContext, getTermPtyData}; export type {LineContainerModel}; diff --git a/src/plugins.ts b/src/plugins.ts new file mode 100644 index 000000000..c32f3ba65 --- /dev/null +++ b/src/plugins.ts @@ -0,0 +1,67 @@ +import {RendererPluginType} from "./types"; +import {SimpleImageRenderer} from "./imagerenderer"; +import {SimpleMarkdownRenderer} from "./markdownrenderer"; +import {isBlank} from "./util"; +import {sprintf} from "sprintf-js"; + +const ImagePlugin : RendererPluginType = { + name: "image", + rendererType: "simple", + heightType: "pixels", + dataType: "blob", + collapseType: "hide", + globalCss: null, + mimeTypes: ["image/*"], + component: SimpleImageRenderer, +}; + +const MarkdownPlugin : RendererPluginType = { + name: "markdown", + rendererType: "simple", + heightType: "pixels", + dataType: "blob", + collapseType: "hide", + globalCss: null, + mimeTypes: ["text/markdown"], + component: SimpleMarkdownRenderer, +}; + +let AllPlugins = [ImagePlugin, MarkdownPlugin]; + +class PluginModelClass { + rendererPlugins : RendererPluginType[] = []; + + registerRendererPlugin(plugin : RendererPluginType) { + if (isBlank(plugin.name)) { + throw new Error("invalid plugin, no name"); + } + if (plugin.name == "terminal" || plugin.name == "none") { + throw new Error(sprintf("invalid plugin, name '%s' is reserved", plugin.name)); + } + let existingPlugin = this.getRendererPluginByName(plugin.name); + if (existingPlugin != null) { + throw new Error(sprintf("plugin with name %s already registered", plugin.name)); + } + this.rendererPlugins.push(plugin); + } + + getRendererPluginByName(name : string) : RendererPluginType { + for (let i=0; i = mobx.IObservableValue; type OArr = mobx.IObservableArray; @@ -307,7 +308,7 @@ class LineSettingsModal extends React.Component<{line : LineType}, {}> { renderRendererDropdown() : any { let {line} = this.props; let renderer = this.tempRenderer.get() ?? "terminal"; - let plugins = GlobalModel.rendererPlugins; + let plugins = PluginModel.rendererPlugins; let plugin : RendererPluginType = null; return (
diff --git a/src/sh2.less b/src/sh2.less index a268ebbb9..3bc80609e 100644 --- a/src/sh2.less +++ b/src/sh2.less @@ -3185,7 +3185,15 @@ body.prompt-webshare #main { .logo-text { .mono-font(32px); - color: @prompt-green; + a { + color: @prompt-green; + } + } + + .screen-name { + color: white; + .mono-font(24px); + margin-left: 20px; } .download-button { @@ -3195,7 +3203,7 @@ body.prompt-webshare #main { .prompt-content { flex-grow: 1; - padding: 10px; + padding: 10px; } .prompt-footer { @@ -3218,4 +3226,9 @@ body.prompt-webshare #main { #app { color: white; } + + .lines .line-sep { + margin-left: 0px; + margin-right: 10px; + } } diff --git a/src/sh2.ts b/src/sh2.ts index 9c58f4e89..4c942c6eb 100644 --- a/src/sh2.ts +++ b/src/sh2.ts @@ -6,53 +6,14 @@ import {Terminal} from 'xterm'; import {Main} from "./main"; import {GlobalModel} from "./model"; import {v4 as uuidv4} from "uuid"; -import {RendererPluginType} from "./types"; -import {SimpleImageRenderer} from "./imagerenderer"; -import {SimpleMarkdownRenderer} from "./markdownrenderer"; +import {loadFonts} from "./util"; // @ts-ignore let VERSION = __PROMPT_VERSION__; // @ts-ignore let BUILD = __PROMPT_BUILD__; -let jbmFontNormal = new FontFace("JetBrains Mono", "url('static/fonts/jetbrains-mono-v13-latin-regular.woff2')", {style: "normal", weight: "400"}); -let jbmFont200 = new FontFace("JetBrains Mono", "url('static/fonts/jetbrains-mono-v13-latin-200.woff2')", {style: "normal", weight: "200"}); -let jbmFont700 = new FontFace("JetBrains Mono", "url('static/fonts/jetbrains-mono-v13-latin-700.woff2')", {style: "normal", weight: "700"}); -let faFont = new FontFace("FontAwesome", "url(static/fonts/fontawesome-webfont-4.7.woff2)", {style: "normal", weight: "normal"}); -let docFonts : any = document.fonts; // work around ts typing issue -docFonts.add(jbmFontNormal); -docFonts.add(jbmFont200); -docFonts.add(jbmFont700); -docFonts.add(faFont); -jbmFontNormal.load(); -jbmFont200.load(); -jbmFont700.load(); -faFont.load(); - -const ImagePlugin : RendererPluginType = { - name: "image", - rendererType: "simple", - heightType: "pixels", - dataType: "blob", - collapseType: "hide", - globalCss: null, - mimeTypes: ["image/*"], - component: SimpleImageRenderer, -}; - -const MarkdownPlugin : RendererPluginType = { - name: "markdown", - rendererType: "simple", - heightType: "pixels", - dataType: "blob", - collapseType: "hide", - globalCss: null, - mimeTypes: ["text/markdown"], - component: SimpleMarkdownRenderer, -}; - -GlobalModel.registerRendererPlugin(ImagePlugin); -GlobalModel.registerRendererPlugin(MarkdownPlugin); +loadFonts(); document.addEventListener("DOMContentLoaded", () => { let reactElem = React.createElement(Main, null, null); diff --git a/src/simplerenderer.tsx b/src/simplerenderer.tsx index ae4dba9c1..1c008db91 100644 --- a/src/simplerenderer.tsx +++ b/src/simplerenderer.tsx @@ -5,7 +5,7 @@ import {sprintf} from "sprintf-js"; import {boundMethod} from "autobind-decorator"; import {If, For, When, Otherwise, Choose} from "tsx-control-statements/components"; import type {RendererModelInitializeParams, TermOptsType, RendererContext, RendererOpts, SimpleBlobRendererComponent, RendererModelContainerApi, RendererPluginType, PtyDataType, RendererModel, RendererOptsUpdate, LineType} from "./types"; -import {GlobalModel, LineContainerModel, getPtyData, Cmd} from "./model"; +import {LineContainerModel, getTermPtyData, Cmd} from "./model"; import {PtyDataBuffer} from "./ptydata"; import {debounce, throttle} from "throttle-debounce"; @@ -72,7 +72,7 @@ class SimpleBlobRendererModel { mobx.action(() => { this.loading.set(true); })(); - let rtnp = getPtyData(this.context.screenId, this.context.cmdId, this.context.lineNum); + let rtnp = getTermPtyData(this.context); rtnp.then((ptydata) => { setTimeout(() => { this.ptyData = ptydata; @@ -120,14 +120,14 @@ function apiAdapter(lcm : LineContainerModel, line : LineType, cmd : Cmd) : Rend } @mobxReact.observer -class SimpleBlobRenderer extends React.Component<{lcm : LineContainerModel, line : LineType, cmd : Cmd, plugin : RendererPluginType, onHeightChange : () => void}, {}> { +class SimpleBlobRenderer extends React.Component<{lcm : LineContainerModel, line : LineType, cmd : Cmd, rendererOpts : RendererOpts, plugin : RendererPluginType, onHeightChange : () => void}, {}> { model : SimpleBlobRendererModel; wrapperDivRef : React.RefObject = React.createRef(); rszObs : ResizeObserver; constructor(props : any) { super(props); - let {lcm, line, cmd} = this.props; + let {lcm, line, cmd, rendererOpts} = this.props; let context = contextFromLine(line); let savedHeight = lcm.getContentHeight(context); if (savedHeight == null) { @@ -142,12 +142,7 @@ class SimpleBlobRenderer extends React.Component<{lcm : LineContainerModel, line context: context, isDone: !cmd.isRunning(), savedHeight: savedHeight, - opts: { - maxSize: lcm.getMaxContentSize(), - idealSize: lcm.getIdealContentSize(), - termOpts: cmd.getTermOpts(), - termFontSize: GlobalModel.termFontSize.get(), - }, + opts: rendererOpts, api: apiAdapter(lcm, line, cmd), }; this.model = new SimpleBlobRendererModel(); diff --git a/src/term.ts b/src/term.ts index c166a3200..a3f3ade5e 100644 --- a/src/term.ts +++ b/src/term.ts @@ -3,9 +3,9 @@ import {Terminal} from 'xterm'; import {sprintf} from "sprintf-js"; import {boundMethod} from "autobind-decorator"; import {v4 as uuidv4} from "uuid"; -import {GlobalModel, GlobalCommandRunner, termHeightFromRows, windowWidthToCols, windowHeightToRows, getPtyData, getRemotePtyData} from "./model"; +import {termHeightFromRows, windowWidthToCols, windowHeightToRows} from "./textmeasure"; import {boundInt} from "./util"; -import type {TermOptsType, TermWinSize, RendererContext, WindowSize, PtyDataType} from "./types"; +import type {TermContextUnion, TermOptsType, TermWinSize, RendererContext, WindowSize, PtyDataType} from "./types"; type DataUpdate = { data : Uint8Array, @@ -15,12 +15,8 @@ type DataUpdate = { const MinTermCols = 10; const MaxTermCols = 1024; -type RemoteTermContext = {remoteId : string}; - -type TermContext = RendererContext | RemoteTermContext; - type TermWrapOpts = { - termContext : TermContext, + termContext : TermContextUnion, usedRows? : number, termOpts : TermOptsType, winSize : WindowSize, @@ -30,13 +26,14 @@ type TermWrapOpts = { isRunning : boolean, customKeyHandler? : (event : any, termWrap : TermWrap) => boolean, fontSize : number, - noSetTUR? : boolean, + ptyDataSource : (termContext : TermContextUnion) => Promise, + onUpdateContentHeight : (termContext : RendererContext, height : number) => void, }; // cmd-instance class TermWrap { terminal : any; - termContext : TermContext; + termContext : TermContextUnion; atRowMax : boolean; usedRows : mobx.IObservableValue; flexRows : boolean; @@ -51,7 +48,8 @@ class TermWrap { focusHandler : (focus : boolean) => void; isRunning : boolean; fontSize : number; - noSetTUR : boolean; + onUpdateContentHeight : (termContext : RendererContext, height : number) => void; + ptyDataSource : (termContext : TermContextUnion) => Promise; constructor(elem : Element, opts : TermWrapOpts) { opts = opts ?? ({} as any); @@ -62,7 +60,8 @@ class TermWrap { this.focusHandler = opts.focusHandler; this.isRunning = opts.isRunning; this.fontSize = opts.fontSize; - this.noSetTUR = !!opts.noSetTUR; + this.ptyDataSource = opts.ptyDataSource; + this.onUpdateContentHeight = opts.onUpdateContentHeight; if (this.flexRows) { this.atRowMax = false; this.usedRows = mobx.observable.box(opts.usedRows ?? (opts.isRunning ? 1 : 0), {name: "term-usedrows"}); @@ -221,8 +220,8 @@ class TermWrap { return; } this.usedRows.set(tur); - if (!this.noSetTUR) { - GlobalModel.setContentHeight(termContext, tur); + if (this.onUpdateContentHeight != null) { + this.onUpdateContentHeight(termContext, tur); } })(); } @@ -272,14 +271,7 @@ class TermWrap { } this.reloading = true; this.terminal.reset(); - let rtnp : Promise = null; - if (this.getContextRemoteId() != null) { - rtnp = getRemotePtyData(this.getContextRemoteId()); - } - else { - let termContext = this.getRendererContext(); - rtnp = getPtyData(termContext.screenId, termContext.cmdId, termContext.lineNum); - } + let rtnp = this.ptyDataSource(this.termContext); rtnp.then((ptydata) => { setTimeout(() => { this._reloadThenHandler(ptydata); diff --git a/src/textmeasure.ts b/src/textmeasure.ts index 7e6eb4054..c4397d14e 100644 --- a/src/textmeasure.ts +++ b/src/textmeasure.ts @@ -1,3 +1,8 @@ +import {boundInt} from "./util"; + +const MinTermCols = 10; +const MaxTermCols = 1024; + let MonoFontSizes : {height : number, width : number}[] = []; MonoFontSizes[8] = {height: 11, width: 4.797}; @@ -41,4 +46,30 @@ function measureText(text : string, textOpts? : {pre? : boolean, mono? : boolean return measureDiv.getBoundingClientRect() } -export {measureText, getMonoFontSize}; +function windowWidthToCols(width : number, fontSize : number) : number { + let dr = getMonoFontSize(fontSize); + let cols = Math.trunc((width - 50) / dr.width) - 1; + cols = boundInt(cols, MinTermCols, MaxTermCols); + return cols; +} + +function windowHeightToRows(height : number, fontSize : number) : number { + let dr = getMonoFontSize(fontSize); + let rows = Math.floor((height - 80) / dr.height) - 1; + if (rows <= 0) { + rows = 1; + } + return rows; +} + +function termWidthFromCols(cols : number, fontSize : number) : number { + let dr = getMonoFontSize(fontSize); + return Math.ceil(dr.width*cols) + 15; +} + +function termHeightFromRows(rows : number, fontSize : number) : number { + let dr = getMonoFontSize(fontSize); + return Math.ceil(dr.height*rows); +} + +export {measureText, getMonoFontSize, windowWidthToCols, windowHeightToRows, termWidthFromCols, termHeightFromRows}; diff --git a/src/types.ts b/src/types.ts index f2712c98e..d104fd3f3 100644 --- a/src/types.ts +++ b/src/types.ts @@ -355,6 +355,10 @@ type RendererContext = { lineNum : number, }; +type RemoteTermContext = {remoteId : string}; + +type TermContextUnion = RendererContext | RemoteTermContext; + type RendererOpts = { maxSize : WindowSize, idealSize : WindowSize, @@ -482,4 +486,52 @@ type HistorySearchParams = { type RenderModeType = "normal" | "collapsed"; -export type {SessionDataType, LineType, RemoteType, RemoteStateType, RemoteInstanceType, HistoryItem, CmdRemoteStateType, FeCmdPacketType, TermOptsType, CmdStartPacketType, CmdDataType, ScreenDataType, ScreenOptsType, PtyDataUpdateType, ModelUpdateType, UpdateMessage, InfoType, CmdLineUpdateType, RemotePtrType, UIContextType, HistoryInfoType, HistoryQueryOpts, WatchScreenPacketType, TermWinSize, FeInputPacketType, RemoteInputPacketType, RemoteEditType, FeStateType, ContextMenuOpts, RendererContext, WindowSize, RendererModel, PtyDataType, BookmarkType, ClientDataType, PlaybookType, PlaybookEntryType, HistoryViewDataType, RenderModeType, AlertMessageType, HistorySearchParams, ScreenLinesType, FocusTypeStrs, HistoryTypeStrs, RendererOpts, RendererPluginType, SimpleBlobRendererComponent, RendererModelContainerApi, RendererModelInitializeParams, RendererOptsUpdate, ClientMigrationInfo, WebShareOpts, RemoteStatusTypeStrs}; +type WebScreen = { + screenid : string, + sharename : string, + vts : number, +}; + +type WebLine = { + screenid : string, + lineid : string, + ts : number, + linenum : number, + linetype : string, + text : string, + contentheight : number, + renderer : string, + archived : boolean, + vts : number, +}; + +type WebRemote = { + alias : string, + canonicalname : string, + name : string, +}; + +type WebCmd = { + screeid : string, + lineid : string, + remote : WebRemote, + cmdstr : string, + rawcmdstr : string, + festate : FeStateType, + termopts : TermOptsType, + status : string, + startpk : CmdStartPacketType, + doneinfo : CmdDoneInfoType, + rtnstate : boolean, + rtnstatestr : string, + vts : number, +}; + +type WebFullScreen = { + screen : WebScreen, + lines : WebLine[], + cmds : WebCmd[], + vts : number, +} + +export type {SessionDataType, LineType, RemoteType, RemoteStateType, RemoteInstanceType, HistoryItem, CmdRemoteStateType, FeCmdPacketType, TermOptsType, CmdStartPacketType, CmdDataType, ScreenDataType, ScreenOptsType, PtyDataUpdateType, ModelUpdateType, UpdateMessage, InfoType, CmdLineUpdateType, RemotePtrType, UIContextType, HistoryInfoType, HistoryQueryOpts, WatchScreenPacketType, TermWinSize, FeInputPacketType, RemoteInputPacketType, RemoteEditType, FeStateType, ContextMenuOpts, RendererContext, WindowSize, RendererModel, PtyDataType, BookmarkType, ClientDataType, PlaybookType, PlaybookEntryType, HistoryViewDataType, RenderModeType, AlertMessageType, HistorySearchParams, ScreenLinesType, FocusTypeStrs, HistoryTypeStrs, RendererOpts, RendererPluginType, SimpleBlobRendererComponent, RendererModelContainerApi, RendererModelInitializeParams, RendererOptsUpdate, ClientMigrationInfo, WebShareOpts, RemoteStatusTypeStrs, WebFullScreen, WebScreen, WebLine, WebCmd, RemoteTermContext, TermContextUnion}; diff --git a/src/util.ts b/src/util.ts index 628618ef8..b1435e458 100644 --- a/src/util.ts +++ b/src/util.ts @@ -1,5 +1,13 @@ import * as mobx from "mobx"; import {sprintf} from "sprintf-js"; +import dayjs from "dayjs"; +import localizedFormat from 'dayjs/plugin/localizedFormat'; + +dayjs.extend(localizedFormat) + +function isBlank(s : string) : boolean { + return (s == null || s == ""); +} function handleNotOkResp(resp : any, url : URL) : Promise { let errMsg = sprintf("Bad status code response from fetch '%s': code=%d %s", url.toString(), resp.status, resp.statusText); @@ -249,4 +257,46 @@ function incObs(inum : mobx.IObservableValue) { })(); } -export {handleJsonFetchResponse, base64ToArray, genMergeData, genMergeDataMap, genMergeSimpleData, parseEnv0, boundInt, isModKeyPress, incObs}; +function loadFonts() { + let jbmFontNormal = new FontFace("JetBrains Mono", "url('static/fonts/jetbrains-mono-v13-latin-regular.woff2')", {style: "normal", weight: "400"}); + let jbmFont200 = new FontFace("JetBrains Mono", "url('static/fonts/jetbrains-mono-v13-latin-200.woff2')", {style: "normal", weight: "200"}); + let jbmFont700 = new FontFace("JetBrains Mono", "url('static/fonts/jetbrains-mono-v13-latin-700.woff2')", {style: "normal", weight: "700"}); + let faFont = new FontFace("FontAwesome", "url(static/fonts/fontawesome-webfont-4.7.woff2)", {style: "normal", weight: "normal"}); + let docFonts : any = document.fonts; // work around ts typing issue + docFonts.add(jbmFontNormal); + docFonts.add(jbmFont200); + docFonts.add(jbmFont700); + docFonts.add(faFont); + jbmFontNormal.load(); + jbmFont200.load(); + jbmFont700.load(); + faFont.load(); +} + +const DOW_STRS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; + +function getTodayStr() : string { + return getDateStr(new Date()); +} + +function getYesterdayStr() : string { + let d = new Date(); + d.setDate(d.getDate()-1); + return getDateStr(d); +} + +function getDateStr(d : Date) : string { + let yearStr = String(d.getFullYear()); + let monthStr = String(d.getMonth()+1); + if (monthStr.length == 1) { + monthStr = "0" + monthStr; + } + let dayStr = String(d.getDate()); + if (dayStr.length == 1) { + dayStr = "0" + dayStr; + } + let dowStr = DOW_STRS[d.getDay()]; + return dowStr + " " + yearStr + "-" + monthStr + "-" + dayStr; +} + +export {handleJsonFetchResponse, base64ToArray, genMergeData, genMergeDataMap, genMergeSimpleData, parseEnv0, boundInt, isModKeyPress, incObs, isBlank, loadFonts, getTodayStr, getYesterdayStr, getDateStr}; diff --git a/src/webshare-elems.tsx b/src/webshare-elems.tsx index 8f7018ddc..0305125a2 100644 --- a/src/webshare-elems.tsx +++ b/src/webshare-elems.tsx @@ -6,6 +6,282 @@ import {boundMethod} from "autobind-decorator"; import {If, For, When, Otherwise, Choose} from "tsx-control-statements/components"; import cn from "classnames"; import {WebShareModel} from "./webshare-model"; +import * as T from "./types"; +import {isBlank} from "./util"; +import {PluginModel} from "./plugins"; +import * as lineutil from "./lineutil"; +import * as util from "./util"; + +// TODO selection +// TODO remotevars + +function makeFullRemoteRef(ownerName : string, remoteRef : string, name : string) : string { + if (isBlank(ownerName) && isBlank(name)) { + return remoteRef; + } + if (!isBlank(ownerName) && isBlank(name)) { + return ownerName + ":" + remoteRef; + } + if (isBlank(ownerName) && !isBlank(name)) { + return remoteRef + ":" + name; + } + return ownerName + ":" + remoteRef + ":" + name; +} + +function replaceHomePath(path : string, homeDir : string) : string { + if (path == homeDir) { + return "~"; + } + if (path.startsWith(homeDir + "/")) { + return "~" + path.substr(homeDir.length); + } + return path; +} + +function getCwdStr(state : FeStateType) : string { + if ((state == null || state.cwd == null) && remote != null) { + return "~"; + } + let cwd = "?"; + if (state && state.cwd) { + cwd = state.cwd; + } + // if (remote && remote.remotevars.home) { + // cwd = replaceHomePath(cwd, remote.remotevars.cwd) + // } + return cwd; +} + +function getRemoteStr(remote : WebRemote) : string { + if (remote == null) { + return "(invalid remote)"; + } + let remoteRef = (!isBlank(remote.alias) ? remote.alias : remote.canonicalname); + let fullRef = makeFullRemoteRef(null, remoteRef, remote.name); + return fullRef; +} + +@mobxReact.observer +class Prompt extends React.Component<{remote : T.WebRemote, festate : T.FeStateType}, {}> { + render() { + let {remote, festate} = this.props; + let remoteStr = getRemoteStr(remote); + let cwd = getCwdStr(festate); + let isRoot = false; + // if (remote && remote.remotevars) { + // if (remote.remotevars["sudo"] || remote.remotevars["bestuser"] == "root") { + // isRoot = true; + // } + // } + let remoteColorClass = (isRoot ? "color-red" : "color-green"); + if (remote && remote.remoteopts && remote.remoteopts.color) { + remoteColorClass = "color-" + remote.remoteopts.color; + } + let remoteTitle : string = null; + if (remote && remote.canonicalname) { + remoteTitle = remote.canonicalname; + } + return ( + [{remoteStr}] {cwd} {isRoot ? "#" : "$"} + ); + } +} + +@mobxReact.observer +class LineAvatar extends React.Component<{line : T.WebLine, cmd : T.WebCmd}, {}> { + render() { + let {line, cmd} = this.props; + let lineNumStr = String(line.linenum); + let status = (cmd != null ? cmd.status : "done"); + let rtnstate = (cmd != null ? cmd.rtnstate : false); + let isComment = (line.linetype == "text"); + return ( +
+ {lineNumStr} + + + + + + + + + +
+ ); + } +} + +@mobxReact.observer +class WebLineCmdView extends React.Component<{line : T.WebLine, cmd : T.WebCmd}, {}> { + isCmdExpanded : OV = mobx.observable.box(false, {name: "cmd-expanded"}); + isOverflow : OV = mobx.observable.box(false, {name: "line-overflow"}); + + renderSimple() { +
+ +
+ } + + renderCmdText(cmd : Cmd, remote : WebRemote) : any { + if (cmd == null) { + return ( +
+ (cmd not found) +
+ ); + } + if (this.isCmdExpanded.get()) { + return ( + +
+
+ +
+
+
+
{getFullCmdText(cmd.cmdstr)}
+
+
+ ); + } + let isMultiLine = lineutil.isMultiLineCmdText(cmd.cmdstr); + return ( +
+
+ + + {lineutil.getSingleLineCmdText(cmd.cmdstr)} +
+ +
...▼
+
+
+ ); + } + + renderMetaWrap() { + let {line, cmd} = this.props; + let formattedTime = lineutil.getLineDateTimeStr(line.ts); + let termOpts = cmd.termopts; + let remote = cmd.remote; + let renderer = line.renderer; + return ( +
+
+
{formattedTime}
+
 
+ +
{renderer} 
+
+
+ ({termOpts.rows}x{termOpts.cols}) +
+
+ {this.renderCmdText(cmd, remote)} +
+ ); + } + + render() { + let {line, cmd} = this.props; + let model = WebShareModel; + let isSelected = mobx.computed(() => (model.getSelectedLine() == line.linenum), {name: "computed-isSelected"}).get(); + let rendererPlugin : RendererPluginType = null; + let isNoneRenderer = (line.renderer == "none"); + if (!isBlank(line.renderer) && line.renderer != "terminal" && !isNoneRenderer) { + rendererPlugin = PluginModel.getRendererPluginByName(line.renderer); + } + let rendererType = lineutil.getRendererType(line); + return ( +
+
+
+ + {this.renderMetaWrap()} +
+
+ ); + } +} + +@mobxReact.observer +class WebLineTextView extends React.Component<{line : T.WebLine, cmd : T.WebCmd}, {}> { + render() { + let {line} = this.props; + let isSelected = mobx.computed(() => (model.getSelectedLine() == line.linenum), {name: "computed-isSelected"}).get(); + return ( +
+
+
+ +
+
+
{line.text}
+
+
+ ); + } +} + +@mobxReact.observer +class WebLineView extends React.Component<{line : T.WebLine, cmd : T.WebCmd}, {}> { + render() { + let {line} = this.props; + if (line.linetype == "text") { + return + } + if (line.linetype == "cmd") { + return + } + return ( +
invalid linetype "{line.linetype}"
+ ); + } +} + +@mobxReact.observer +class WebScreenView extends React.Component<{screen : T.WebFullScreen}, {}> { + render() { + let {screen} = this.props; + let lines = screen.lines ?? []; + let cmds = screen.cmds ?? []; + let cmdMap : Record = {}; + for (let i=0; i{dateSepStr}
+ lineElements.push(sepElem); + } + let topBorder = (dateSepStr == null) && (idx != 0); + let lineElem = ; + lineElements.push(lineElem); + } + return ( +
+
+
+ {lineElements} +
+
+ ); + } +} @mobxReact.observer class WebShareMain extends React.Component<{}, {}> { @@ -14,10 +290,17 @@ class WebShareMain extends React.Component<{}, {}> { } render() { + let screen = WebShareModel.screen.get(); + let errMessage = WebShareModel.errMessage.get(); return (
-
[prompt]
+
+ [prompt] +
+ +
{screen.screen.sharename}
+
-
screenid={WebShareModel.screenId}, viewkey={WebShareModel.viewKey}
-
{WebShareModel.errMessage.get()}
+ + + + +
{WebShareModel.errMessage.get()}
+
{this.renderCopy()} diff --git a/src/webshare-model.ts b/src/webshare-model.ts index ce9a2f276..02d3c72d5 100644 --- a/src/webshare-model.ts +++ b/src/webshare-model.ts @@ -1,6 +1,7 @@ import * as mobx from "mobx"; import {boundMethod} from "autobind-decorator"; import {handleJsonFetchResponse} from "./util"; +import * as T from "./types"; type OV = mobx.IObservableValue; type OArr = mobx.IObservableArray; @@ -19,6 +20,7 @@ class WebShareModelClass { viewKey : string; screenId : string; errMessage : OV = mobx.observable.box(null, {name: "errMessage"}); + screen : OV = mobx.observable.box(null, {name: "webScreen"}); constructor() { let urlParams = new URLSearchParams(window.location.search); @@ -34,6 +36,10 @@ class WebShareModelClass { })(); } + getSelectedLine() : number { + return 10; + } + loadFullScreenData() : void { if (isBlank(this.screenId)) { this.setErrMessage("No ScreenId Specified, Cannot Load."); @@ -46,7 +52,7 @@ class WebShareModelClass { let usp = new URLSearchParams({screenid: this.screenId, viewkey: this.viewKey}); let url = new URL(getBaseUrl() + "/webshare/screen?" + usp.toString()); fetch(url, {method: "GET", mode: "cors", cache: "no-cache"}).then((resp) => handleJsonFetchResponse(url, resp)).then((data) => { - console.log("got data", data); + mobx.action(() => this.screen.set(data))(); }).catch((err) => { this.errMessage.set("Cannot get screen: " + err.message); }); diff --git a/src/webshare.ts b/src/webshare.ts index 2cd45ce7c..42dbf3e71 100644 --- a/src/webshare.ts +++ b/src/webshare.ts @@ -3,12 +3,24 @@ import * as React from "react"; import {createRoot} from 'react-dom/client'; import {sprintf} from "sprintf-js"; import {WebShareMain} from "./webshare-elems"; +import {loadFonts} from "./util"; +import {WebShareModel} from "./webshare-model"; + +loadFonts(); document.addEventListener("DOMContentLoaded", () => { let elem = document.getElementById("app"); let root = createRoot(elem); let reactElem = React.createElement(WebShareMain, null, null); - root.render(reactElem); + let isFontLoaded = document.fonts.check("12px 'JetBrains Mono'"); + if (isFontLoaded) { + root.render(reactElem); + } + else { + document.fonts.ready.then(() => { + root.render(reactElem); + }); + } }); (window as any).mobx = mobx; diff --git a/webshare/static/fonts/fontawesome-webfont-4.7.woff2 b/webshare/static/fonts/fontawesome-webfont-4.7.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d13fc60404b91e398a37200c4a77b645cfd9586 GIT binary patch literal 77160 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 literal 0 HcmV?d00001 diff --git a/webshare/static/fonts/jetbrains-mono-v13-latin-200.woff b/webshare/static/fonts/jetbrains-mono-v13-latin-200.woff new file mode 100644 index 0000000000000000000000000000000000000000..2b8eeac6720706db45329067b0950bfb8172c964 GIT binary patch literal 26636 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 literal 0 HcmV?d00001 diff --git a/webshare/static/fonts/jetbrains-mono-v13-latin-700.woff b/webshare/static/fonts/jetbrains-mono-v13-latin-700.woff new file mode 100644 index 0000000000000000000000000000000000000000..78af45385ec1e508b081d92c887bd5a1a13d1db6 GIT binary patch literal 26760 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 literal 0 HcmV?d00001 diff --git a/webshare/static/fonts/jetbrains-mono-v13-latin-700.woff2 b/webshare/static/fonts/jetbrains-mono-v13-latin-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5737b146ef1ceec9adf352946f3b1aeead2c3fec GIT binary patch literal 21080 zcmV)HK)t_rPew8T0RR9108&^05C8xG0LuUX08#b;0RR9100000000000000000000 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
  • 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 literal 0 HcmV?d00001 diff --git a/webshare/static/fonts/jetbrains-mono-v13-latin-regular.woff2 b/webshare/static/fonts/jetbrains-mono-v13-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..de8b746b8142015e0156b76ccf4952b998968d50 GIT binary patch literal 20388 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 Tx<6w9f&is=W&He`$_fAg@n~t0 literal 0 HcmV?d00001