Compare commits

...

27 Commits

Author SHA1 Message Date
Red Adaya 1d0b7bd770 split models/model 2024-02-08 16:40:15 +08:00
Red Adaya a9b9ff3362 fix conflicts 2024-02-08 14:48:29 +08:00
Red Adaya d2829c466d fix ptyDataSource errors 2024-02-08 14:26:49 +08:00
Red Adaya f65e632c35 move model_old to models 2024-02-08 13:37:42 +08:00
Red Adaya acb3bd303b rename model to models 2024-02-08 13:37:02 +08:00
Red Adaya 3ad7feedad replace /model_old imports with /model 2024-02-08 13:34:46 +08:00
Red Adaya 24690ff931 add index.ts inside model dir 2024-02-08 09:35:52 +08:00
Red Adaya f510e1c904 cleanup connectionsview model 2024-02-08 09:23:44 +08:00
Red Adaya 35fa59aadd cleanup screenlinecontainer model 2024-02-08 09:20:30 +08:00
Red Adaya d414657252 cleanup session model 2024-02-08 09:16:02 +08:00
Red Adaya b59dd6960f cleanup screenlines model 2024-02-08 09:14:30 +08:00
Red Adaya 1ae74b767d cleanup screen model 2024-02-08 09:13:04 +08:00
Red Adaya 7fa862b402 cleanup remote model 2024-02-08 09:09:16 +08:00
Red Adaya 970c5c30fd cleanup plugins model 2024-02-08 09:07:26 +08:00
Red Adaya 2bcc8756e7 cleanup main model 2024-02-08 09:06:09 +08:00
Red Adaya 5ad26b10cd cleanup mainsidebar model 2024-02-08 09:02:31 +08:00
Red Adaya ef7acda1bb cleanup linecontainer model 2024-02-08 09:01:08 +08:00
Red Adaya 29cd754358 cleanup input model 2024-02-08 08:59:40 +08:00
Red Adaya 648d98f065 cleanup historyview model 2024-02-08 08:55:56 +08:00
Red Adaya 5770e482a1 cleanup commandrunner model 2024-02-08 08:44:01 +08:00
Red Adaya 23b3250f18 remove dayjs import from bookmarks model 2024-02-08 08:41:22 +08:00
Red Adaya b62977470b cleanup cmd model 2024-02-08 08:40:33 +08:00
Red Adaya 07f2794b1b cleanup clientsettingsview model 2024-02-08 08:37:56 +08:00
Red Adaya cf27a8baff cleanup bookmarks model 2024-02-08 08:37:17 +08:00
Red Adaya aace48d42a init 2024-02-08 08:35:30 +08:00
sawka ff855cf308 add AI and the blog 2024-02-07 17:20:28 -03:00
Red J Adaya bf1b556537 Split components in common (#276)
* split settings modals

* init

* init

* remove styles not related to checkbox

* remove styles not related to CmdStrCode

* renderCmdText doesn't need styles

* remove styles not related to dropdown

* IconButton doesn't need styles because it extends Button

* remove old connections

* InfoMessage conmponent no longer needed

* fix import error

* remove styles not related to InlineSettingsTextEdit

* remove styles not related to InputDecoration

* LinkButton doesn't need styles cos it's extends Button component

* remove styles not related to markdown

* remove styles not related to modal

* NumberField doesn't need styles cos it extends TextField

* remove styles not related to PasswordField

* RemoteStatusLight no longer used. It's replaced by Status component.

* remove styles not related to ResizableSidebar

* SettingsError doesn't need styles cos it uses classnames in app.less

* remove styles not related to Status

* remove styles not related to TextField

* remove styles not related to Toggle

* remove styles not related to Tooltip
2024-02-06 18:23:56 -03:00
67 changed files with 5393 additions and 114 deletions
+3 -1
View File
@@ -10,7 +10,7 @@
# Wave Terminal # Wave Terminal
A open-source, cross-platform, modern terminal for seamless workflows. A open-source, cross-platform, AI-integrated, modern terminal for seamless workflows.
Wave isn't just another terminal emulator; it's a rethink on how terminals are built. Wave combines command line with the power of the open web to help veteran CLI users and new developers alike. Wave isn't just another terminal emulator; it's a rethink on how terminals are built. Wave combines command line with the power of the open web to help veteran CLI users and new developers alike.
@@ -18,6 +18,7 @@ Wave isn't just another terminal emulator; it's a rethink on how terminals are b
* Persistent sessions that can restore state across network disconnections and reboots * Persistent sessions that can restore state across network disconnections and reboots
* Searchable contextual command history across all remote sessions (saved locally) * Searchable contextual command history across all remote sessions (saved locally)
* Workspaces, tabs, and command blocks to keep you organized * Workspaces, tabs, and command blocks to keep you organized
* AI Integration with ChatGPT (or ChatGPT compatible APIs) to help write commands and get answers inline
## Installation ## Installation
@@ -35,6 +36,7 @@ brew install --cask wave
* Homepage — https://www.waveterm.dev * Homepage — https://www.waveterm.dev
* Download Page — https://www.waveterm.dev/download * Download Page — https://www.waveterm.dev/download
* Documentation — https://docs.waveterm.dev/ * Documentation — https://docs.waveterm.dev/
* Blog — https://blog.waveterm.dev/
* Quick Start Guide — https://docs.waveterm.dev/quickstart/ * Quick Start Guide — https://docs.waveterm.dev/quickstart/
* Discord Community — https://discord.gg/XfvZ334gwU * Discord Community — https://discord.gg/XfvZ334gwU
+2 -2
View File
@@ -9,7 +9,7 @@ import { If } from "tsx-control-statements/components";
import dayjs from "dayjs"; import dayjs from "dayjs";
import type { ContextMenuOpts } from "../types/types"; import type { ContextMenuOpts } from "../types/types";
import localizedFormat from "dayjs/plugin/localizedFormat"; import localizedFormat from "dayjs/plugin/localizedFormat";
import { GlobalModel } from "../model/model"; import { GlobalModel } from "../models";
import { isBlank } from "../util/util"; import { isBlank } from "../util/util";
import { WorkspaceView } from "./workspace/workspaceview"; import { WorkspaceView } from "./workspace/workspaceview";
import { PluginsView } from "./pluginsview/pluginsview"; import { PluginsView } from "./pluginsview/pluginsview";
@@ -32,7 +32,7 @@ class App extends React.Component<{}, {}> {
dcWait: OV<boolean> = mobx.observable.box(false, { name: "dcWait" }); dcWait: OV<boolean> = mobx.observable.box(false, { name: "dcWait" });
mainContentRef: React.RefObject<HTMLDivElement> = React.createRef(); mainContentRef: React.RefObject<HTMLDivElement> = React.createRef();
constructor(props: any) { constructor(props: {}) {
super(props); super(props);
if (GlobalModel.isDev) document.body.className = "is-dev"; if (GlobalModel.isDev) document.body.className = "is-dev";
} }
+30
View File
@@ -16,3 +16,33 @@ export const LineContainer_Sidebar = "sidebar";
export const ConfirmKey_HideShellPrompt = "hideshellprompt"; export const ConfirmKey_HideShellPrompt = "hideshellprompt";
export const NoStrPos = -1; export const NoStrPos = -1;
export const RemotePtyRows = 8; // also in main.tsx
export const RemotePtyCols = 80;
export const ProdServerEndpoint = "http://127.0.0.1:1619";
export const ProdServerWsEndpoint = "ws://127.0.0.1:1623";
export const DevServerEndpoint = "http://127.0.0.1:8090";
export const DevServerWsEndpoint = "ws://127.0.0.1:8091";
export const DefaultTermFontSize = 12;
export const MinFontSize = 8;
export const MaxFontSize = 24;
export const InputChunkSize = 500;
export const RemoteColors = ["red", "green", "yellow", "blue", "magenta", "cyan", "white", "orange"];
export const TabColors = ["red", "orange", "yellow", "green", "mint", "cyan", "blue", "violet", "pink", "white"];
export const TabIcons = [
"sparkle",
"fire",
"ghost",
"cloud",
"compass",
"crown",
"droplet",
"graduation-cap",
"heart",
"file",
];
// @ts-ignore
export const VERSION = __WAVETERM_VERSION__;
// @ts-ignore
export const BUILD = __WAVETERM_BUILD__;
+14 -2
View File
@@ -8,7 +8,7 @@ import { boundMethod } from "autobind-decorator";
import { If, For } from "tsx-control-statements/components"; import { If, For } from "tsx-control-statements/components";
import cn from "classnames"; import cn from "classnames";
import type { BookmarkType } from "../../types/types"; import type { BookmarkType } from "../../types/types";
import { GlobalModel } from "../../model/model"; import { GlobalModel } from "../../models";
import { CmdStrCode, Markdown } from "../common/elements"; import { CmdStrCode, Markdown } from "../common/elements";
import { ReactComponent as XmarkIcon } from "../assets/icons/line/xmark.svg"; import { ReactComponent as XmarkIcon } from "../assets/icons/line/xmark.svg";
@@ -19,8 +19,16 @@ import { ReactComponent as FavoritesIcon } from "../assets/icons/favourites.svg"
import "./bookmarks.less"; import "./bookmarks.less";
type BookmarkProps = {
bookmark: BookmarkType;
};
@mobxReact.observer @mobxReact.observer
class Bookmark extends React.Component<{ bookmark: BookmarkType }, {}> { class Bookmark extends React.Component<BookmarkProps, {}> {
constructor(props: BookmarkProps) {
super(props);
}
@boundMethod @boundMethod
handleDeleteClick(): void { handleDeleteClick(): void {
let { bookmark } = this.props; let { bookmark } = this.props;
@@ -179,6 +187,10 @@ class Bookmark extends React.Component<{ bookmark: BookmarkType }, {}> {
@mobxReact.observer @mobxReact.observer
class BookmarksView extends React.Component<{}, {}> { class BookmarksView extends React.Component<{}, {}> {
constructor(props: {}) {
super(props);
}
@boundMethod @boundMethod
closeView(): void { closeView(): void {
GlobalModel.bookmarksModel.closeView(); GlobalModel.bookmarksModel.closeView();
+12 -16
View File
@@ -6,24 +6,20 @@ import * as mobxReact from "mobx-react";
import * as mobx from "mobx"; import * as mobx from "mobx";
import { boundMethod } from "autobind-decorator"; import { boundMethod } from "autobind-decorator";
import cn from "classnames"; import cn from "classnames";
import { GlobalModel, GlobalCommandRunner, MinFontSize, MaxFontSize, RemotesModel } from "../../model/model"; import { GlobalModel, GlobalCommandRunner, RemotesModel } from "../../models";
import { Toggle, InlineSettingsTextEdit, SettingsError, Dropdown } from "../common/elements"; import { Toggle, InlineSettingsTextEdit, SettingsError, Dropdown } from "../common/elements";
import { CommandRtnType, ClientDataType } from "../../types/types"; import * as types from "../../types/types";
import { commandRtnHandler, isBlank } from "../../util/util"; import { commandRtnHandler, isBlank } from "../../util/util";
import * as appconst from "../appconst";
import "./clientsettings.less"; import "./clientsettings.less";
type OV<V> = mobx.IObservableValue<V>;
// @ts-ignore
const VERSION = __WAVETERM_VERSION__;
// @ts-ignore
const BUILD = __WAVETERM_BUILD__;
@mobxReact.observer @mobxReact.observer
class ClientSettingsView extends React.Component<{ model: RemotesModel }, { hoveredItemId: string }> { class ClientSettingsView extends React.Component<{ model: RemotesModel }, { hoveredItemId: string }> {
fontSizeDropdownActive: OV<boolean> = mobx.observable.box(false, { name: "clientSettings-fontSizeDropdownActive" }); fontSizeDropdownActive: types.OV<boolean> = mobx.observable.box(false, {
errorMessage: OV<string> = mobx.observable.box(null, { name: "ClientSettings-errorMessage" }); name: "clientSettings-fontSizeDropdownActive",
});
errorMessage: types.OV<string> = mobx.observable.box(null, { name: "ClientSettings-errorMessage" });
@boundMethod @boundMethod
dismissError(): void { dismissError(): void {
@@ -52,7 +48,7 @@ class ClientSettingsView extends React.Component<{ model: RemotesModel }, { hove
@boundMethod @boundMethod
handleChangeTelemetry(val: boolean): void { handleChangeTelemetry(val: boolean): void {
let prtn: Promise<CommandRtnType> = null; let prtn: Promise<types.CommandRtnType> = null;
if (val) { if (val) {
prtn = GlobalCommandRunner.telemetryOn(false); prtn = GlobalCommandRunner.telemetryOn(false);
} else { } else {
@@ -63,7 +59,7 @@ class ClientSettingsView extends React.Component<{ model: RemotesModel }, { hove
@boundMethod @boundMethod
handleChangeReleaseCheck(val: boolean): void { handleChangeReleaseCheck(val: boolean): void {
let prtn: Promise<CommandRtnType> = null; let prtn: Promise<types.CommandRtnType> = null;
if (val) { if (val) {
prtn = GlobalCommandRunner.releaseCheckAutoOn(false); prtn = GlobalCommandRunner.releaseCheckAutoOn(false);
} else { } else {
@@ -74,7 +70,7 @@ class ClientSettingsView extends React.Component<{ model: RemotesModel }, { hove
getFontSizes(): any { getFontSizes(): any {
let availableFontSizes: { label: string; value: number }[] = []; let availableFontSizes: { label: string; value: number }[] = [];
for (let s = MinFontSize; s <= MaxFontSize; s++) { for (let s = appconst.MinFontSize; s <= appconst.MaxFontSize; s++) {
availableFontSizes.push({ label: s + "px", value: s }); availableFontSizes.push({ label: s + "px", value: s });
} }
return availableFontSizes; return availableFontSizes;
@@ -116,7 +112,7 @@ class ClientSettingsView extends React.Component<{ model: RemotesModel }, { hove
return null; return null;
} }
let cdata: ClientDataType = GlobalModel.clientData.get(); let cdata: types.ClientDataType = GlobalModel.clientData.get();
let openAIOpts = cdata.openaiopts ?? {}; let openAIOpts = cdata.openaiopts ?? {};
let apiTokenStr = isBlank(openAIOpts.apitoken) ? "(not set)" : "********"; let apiTokenStr = isBlank(openAIOpts.apitoken) ? "(not set)" : "********";
let maxTokensStr = String( let maxTokensStr = String(
@@ -151,7 +147,7 @@ class ClientSettingsView extends React.Component<{ model: RemotesModel }, { hove
<div className="settings-field"> <div className="settings-field">
<div className="settings-label">Client Version</div> <div className="settings-label">Client Version</div>
<div className="settings-input"> <div className="settings-input">
{VERSION} {BUILD} {appconst.VERSION} {appconst.BUILD}
</div> </div>
</div> </div>
<div className="settings-field"> <div className="settings-field">
+1 -1
View File
@@ -6,7 +6,7 @@ import * as mobxReact from "mobx-react";
import ReactMarkdown from "react-markdown"; import ReactMarkdown from "react-markdown";
import remarkGfm from "remark-gfm"; import remarkGfm from "remark-gfm";
import cn from "classnames"; import cn from "classnames";
import { GlobalModel } from "../../../model/model"; import { GlobalModel } from "../../../models";
import "./markdown.less"; import "./markdown.less";
+1 -1
View File
@@ -6,7 +6,7 @@ import * as mobxReact from "mobx-react";
import * as mobx from "mobx"; import * as mobx from "mobx";
import { boundMethod } from "autobind-decorator"; import { boundMethod } from "autobind-decorator";
import cn from "classnames"; import cn from "classnames";
import { GlobalModel, GlobalCommandRunner } from "../../../model/model"; import { GlobalModel, GlobalCommandRunner } from "../../../models";
import { MagicLayout } from "../../magiclayout"; import { MagicLayout } from "../../magiclayout";
import "./resizablesidebar.less"; import "./resizablesidebar.less";
@@ -1,7 +1,7 @@
// Copyright 2023, Command Line Inc. // Copyright 2023, Command Line Inc.
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
import { GlobalModel } from "../../../model/model"; import { GlobalModel } from "../../../models";
import * as appconst from "../../appconst"; import * as appconst from "../../appconst";
function ShowWaveShellInstallPrompt(callbackFn: () => void) { function ShowWaveShellInstallPrompt(callbackFn: () => void) {
+5 -9
View File
@@ -5,18 +5,14 @@ import * as React from "react";
import * as mobxReact from "mobx-react"; import * as mobxReact from "mobx-react";
import * as mobx from "mobx"; import * as mobx from "mobx";
import { boundMethod } from "autobind-decorator"; import { boundMethod } from "autobind-decorator";
import { GlobalModel } from "../../../model/model"; import { GlobalModel } from "../../../models";
import { Modal, LinkButton } from "../elements"; import { Modal, LinkButton } from "../elements";
import * as util from "../../../util/util"; import * as util from "../../../util/util";
import * as appconst from "../../appconst";
import logo from "../../assets/waveterm-logo-with-bg.svg"; import logo from "../../assets/waveterm-logo-with-bg.svg";
import "./about.less"; import "./about.less";
// @ts-ignore
const VERSION = __WAVETERM_VERSION__;
// @ts-ignore
let BUILD = __WAVETERM_BUILD__;
@mobxReact.observer @mobxReact.observer
class AboutModal extends React.Component<{}, {}> { class AboutModal extends React.Component<{}, {}> {
@boundMethod @boundMethod
@@ -42,7 +38,7 @@ class AboutModal extends React.Component<{}, {}> {
return ( return (
<div className="status updated"> <div className="status updated">
<div className="text-selectable"> <div className="text-selectable">
Client Version {VERSION} ({BUILD}) Client Version {appconst.VERSION} ({appconst.BUILD})
</div> </div>
</div> </div>
); );
@@ -55,7 +51,7 @@ class AboutModal extends React.Component<{}, {}> {
<span>Up to Date</span> <span>Up to Date</span>
</div> </div>
<div className="selectable"> <div className="selectable">
Client Version {VERSION} ({BUILD}) Client Version {appconst.VERSION} ({appconst.BUILD})
</div> </div>
</div> </div>
); );
@@ -67,7 +63,7 @@ class AboutModal extends React.Component<{}, {}> {
<span>Outdated Version</span> <span>Outdated Version</span>
</div> </div>
<div className="selectable"> <div className="selectable">
Client Version {VERSION} ({BUILD}) Client Version {appconst.VERSION} ({appconst.BUILD})
</div> </div>
<div> <div>
<button onClick={this.updateApp} className="button color-green text-secondary"> <button onClick={this.updateApp} className="button color-green text-secondary">
+1 -1
View File
@@ -6,7 +6,7 @@ import * as mobxReact from "mobx-react";
import { boundMethod } from "autobind-decorator"; import { boundMethod } from "autobind-decorator";
import { If } from "tsx-control-statements/components"; import { If } from "tsx-control-statements/components";
import { Markdown, Modal, Button, Checkbox } from "../elements"; import { Markdown, Modal, Button, Checkbox } from "../elements";
import { GlobalModel, GlobalCommandRunner } from "../../../model/model"; import { GlobalModel, GlobalCommandRunner } from "../../../models";
import "./alert.less"; import "./alert.less";
+1 -1
View File
@@ -5,7 +5,7 @@ import * as React from "react";
import * as mobxReact from "mobx-react"; import * as mobxReact from "mobx-react";
import { boundMethod } from "autobind-decorator"; import { boundMethod } from "autobind-decorator";
import { If } from "tsx-control-statements/components"; import { If } from "tsx-control-statements/components";
import { GlobalModel } from "../../../model/model"; import { GlobalModel } from "../../../models";
import { Modal, Button } from "../elements"; import { Modal, Button } from "../elements";
import "./clientstop.less"; import "./clientstop.less";
+1 -1
View File
@@ -6,7 +6,7 @@ import * as mobxReact from "mobx-react";
import * as mobx from "mobx"; import * as mobx from "mobx";
import { boundMethod } from "autobind-decorator"; import { boundMethod } from "autobind-decorator";
import { If } from "tsx-control-statements/components"; import { If } from "tsx-control-statements/components";
import { GlobalModel, GlobalCommandRunner, RemotesModel } from "../../../model/model"; import { GlobalModel, GlobalCommandRunner, RemotesModel } from "../../../models";
import * as T from "../../../types/types"; import * as T from "../../../types/types";
import { import {
Modal, Modal,
+1 -1
View File
@@ -5,7 +5,7 @@ import * as React from "react";
import * as mobxReact from "mobx-react"; import * as mobxReact from "mobx-react";
import * as mobx from "mobx"; import * as mobx from "mobx";
import { boundMethod } from "autobind-decorator"; import { boundMethod } from "autobind-decorator";
import { GlobalModel } from "../../../model/model"; import { GlobalModel } from "../../../models";
import { Modal, Button } from "../elements"; import { Modal, Button } from "../elements";
import "./disconnected.less"; import "./disconnected.less";
+1 -1
View File
@@ -6,7 +6,7 @@ import * as mobxReact from "mobx-react";
import * as mobx from "mobx"; import * as mobx from "mobx";
import { If } from "tsx-control-statements/components"; import { If } from "tsx-control-statements/components";
import { boundMethod } from "autobind-decorator"; import { boundMethod } from "autobind-decorator";
import { GlobalModel, GlobalCommandRunner, RemotesModel } from "../../../model/model"; import { GlobalModel, GlobalCommandRunner, RemotesModel } from "../../../models";
import * as T from "../../../types/types"; import * as T from "../../../types/types";
import { Modal, TextField, InputDecoration, Dropdown, PasswordField, Tooltip } from "../elements"; import { Modal, TextField, InputDecoration, Dropdown, PasswordField, Tooltip } from "../elements";
import * as util from "../../../util/util"; import * as util from "../../../util/util";
+1 -1
View File
@@ -5,7 +5,7 @@ import * as React from "react";
import * as mobxReact from "mobx-react"; import * as mobxReact from "mobx-react";
import * as mobx from "mobx"; import * as mobx from "mobx";
import { boundMethod } from "autobind-decorator"; import { boundMethod } from "autobind-decorator";
import { GlobalModel, GlobalCommandRunner } from "../../../model/model"; import { GlobalModel, GlobalCommandRunner } from "../../../models";
import { SettingsError, Modal, Dropdown } from "../elements"; import { SettingsError, Modal, Dropdown } from "../elements";
import { LineType, RendererPluginType } from "../../../types/types"; import { LineType, RendererPluginType } from "../../../types/types";
import { PluginModel } from "../../../plugins/plugins"; import { PluginModel } from "../../../plugins/plugins";
+1 -1
View File
@@ -3,7 +3,7 @@
import * as React from "react"; import * as React from "react";
import * as mobxReact from "mobx-react"; import * as mobxReact from "mobx-react";
import { GlobalModel } from "../../../model/model"; import { GlobalModel } from "../../../models";
import { TosModal } from "./tos"; import { TosModal } from "./tos";
@mobxReact.observer @mobxReact.observer
+4 -3
View File
@@ -7,7 +7,7 @@ import * as mobx from "mobx";
import { boundMethod } from "autobind-decorator"; import { boundMethod } from "autobind-decorator";
import { If, For } from "tsx-control-statements/components"; import { If, For } from "tsx-control-statements/components";
import cn from "classnames"; import cn from "classnames";
import { GlobalModel, GlobalCommandRunner, TabColors, TabIcons, Screen } from "../../../model/model"; import { GlobalModel, GlobalCommandRunner, Screen } from "../../../models";
import { Toggle, InlineSettingsTextEdit, SettingsError, Modal, Dropdown, Tooltip } from "../elements"; import { Toggle, InlineSettingsTextEdit, SettingsError, Modal, Dropdown, Tooltip } from "../elements";
import { RemoteType } from "../../../types/types"; import { RemoteType } from "../../../types/types";
import * as util from "../../../util/util"; import * as util from "../../../util/util";
@@ -15,6 +15,7 @@ import { commandRtnHandler } from "../../../util/util";
import { ReactComponent as SquareIcon } from "../../assets/icons/tab/square.svg"; import { ReactComponent as SquareIcon } from "../../assets/icons/tab/square.svg";
import { ReactComponent as GlobeIcon } from "../../assets/icons/globe.svg"; import { ReactComponent as GlobeIcon } from "../../assets/icons/globe.svg";
import { ReactComponent as StatusCircleIcon } from "../../assets/icons/statuscircle.svg"; import { ReactComponent as StatusCircleIcon } from "../../assets/icons/statuscircle.svg";
import * as appconst from "../../appconst";
import "./screensettings.less"; import "./screensettings.less";
@@ -281,7 +282,7 @@ class ScreenSettingsModal extends React.Component<{}, {}> {
<span className="tab-color-name">{screen.getTabColor()}</span> <span className="tab-color-name">{screen.getTabColor()}</span>
</div> </div>
<div className="tab-color-sep">|</div> <div className="tab-color-sep">|</div>
<For each="color" of={TabColors}> <For each="color" of={appconst.TabColors}>
<div <div
key={color} key={color}
className="tab-color-select" className="tab-color-select"
@@ -307,7 +308,7 @@ class ScreenSettingsModal extends React.Component<{}, {}> {
<span className="tab-icon-name">{screen.getTabIcon()}</span> <span className="tab-icon-name">{screen.getTabIcon()}</span>
</div> </div>
<div className="tab-icon-sep">|</div> <div className="tab-icon-sep">|</div>
<For each="icon" index="index" of={TabIcons}> <For each="icon" index="index" of={appconst.TabIcons}>
<div <div
key={`${color}-${index}`} key={`${color}-${index}`}
className="tab-icon-select" className="tab-icon-select"
+1 -1
View File
@@ -5,7 +5,7 @@ import * as React from "react";
import * as mobxReact from "mobx-react"; import * as mobxReact from "mobx-react";
import * as mobx from "mobx"; import * as mobx from "mobx";
import { boundMethod } from "autobind-decorator"; import { boundMethod } from "autobind-decorator";
import { GlobalModel, GlobalCommandRunner, Session } from "../../../model/model"; import { GlobalModel, GlobalCommandRunner, Session } from "../../../models";
import { Toggle, InlineSettingsTextEdit, SettingsError, Modal, Tooltip } from "../elements"; import { Toggle, InlineSettingsTextEdit, SettingsError, Modal, Tooltip } from "../elements";
import * as util from "../../../util/util"; import * as util from "../../../util/util";
import { commandRtnHandler } from "../../../util/util"; import { commandRtnHandler } from "../../../util/util";
+2 -2
View File
@@ -7,10 +7,10 @@ import * as mobx from "mobx";
import { boundMethod } from "autobind-decorator"; import { boundMethod } from "autobind-decorator";
import { For } from "tsx-control-statements/components"; import { For } from "tsx-control-statements/components";
import cn from "classnames"; import cn from "classnames";
import { GlobalModel, GlobalCommandRunner } from "../../../model/model"; import { GlobalModel, GlobalCommandRunner } from "../../../models";
import { Modal, TextField, InputDecoration, Tooltip } from "../elements"; import { Modal, TextField, InputDecoration, Tooltip } from "../elements";
import * as util from "../../../util/util"; import * as util from "../../../util/util";
import { Screen } from "../../../model/model"; import { Screen } from "../../../models";
import { ReactComponent as SquareIcon } from "../../assets/icons/tab/square.svg"; import { ReactComponent as SquareIcon } from "../../assets/icons/tab/square.svg";
import "./tabswitcher.less"; import "./tabswitcher.less";
+1 -1
View File
@@ -4,7 +4,7 @@
import * as React from "react"; import * as React from "react";
import * as mobxReact from "mobx-react"; import * as mobxReact from "mobx-react";
import { boundMethod } from "autobind-decorator"; import { boundMethod } from "autobind-decorator";
import { GlobalModel, GlobalCommandRunner } from "../../../model/model"; import { GlobalModel, GlobalCommandRunner } from "../../../models";
import { Toggle, Modal, Button } from "../elements"; import { Toggle, Modal, Button } from "../elements";
import * as util from "../../../util/util"; import * as util from "../../../util/util";
import { ClientDataType } from "../../../types/types"; import { ClientDataType } from "../../../types/types";

Some files were not shown because too many files have changed in this diff Show More