diff --git a/packages/manager/.changeset/pr-10789-changed-1724075831126.md b/packages/manager/.changeset/pr-10789-changed-1724075831126.md new file mode 100644 index 00000000000..1a181987e1e --- /dev/null +++ b/packages/manager/.changeset/pr-10789-changed-1724075831126.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Changed +--- + +Open LISH in a popup window rather than a new tab ([#10789](https://github.com/linode/manager/pull/10789)) diff --git a/packages/manager/.changeset/pr-10789-changed-1724075913480.md b/packages/manager/.changeset/pr-10789-changed-1724075913480.md new file mode 100644 index 00000000000..4923307c7fb --- /dev/null +++ b/packages/manager/.changeset/pr-10789-changed-1724075913480.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Changed +--- + +Use static number of rows in column in LISH to prevent resize and cursor positioning problems ([#10789](https://github.com/linode/manager/pull/10789)) diff --git a/packages/manager/package.json b/packages/manager/package.json index 5598b70c01d..df94641a035 100644 --- a/packages/manager/package.json +++ b/packages/manager/package.json @@ -82,7 +82,6 @@ "typescript-fsa": "^3.0.0", "typescript-fsa-reducers": "^1.2.0", "@xterm/xterm": "^5.5.0", - "@xterm/addon-fit": "^0.10.0", "yup": "^0.32.9", "zxcvbn": "^4.4.2" }, diff --git a/packages/manager/src/features/Lish/Weblish.tsx b/packages/manager/src/features/Lish/Weblish.tsx index c99e547a6f9..d063a994c65 100644 --- a/packages/manager/src/features/Lish/Weblish.tsx +++ b/packages/manager/src/features/Lish/Weblish.tsx @@ -1,5 +1,4 @@ /* eslint-disable scanjs-rules/call_addEventListener */ -import { FitAddon } from '@xterm/addon-fit'; import { Terminal } from '@xterm/xterm'; import * as React from 'react'; @@ -23,8 +22,6 @@ type CombinedProps = Props & Pick; export class Weblish extends React.Component { - fitAddon: FitAddon; - mounted: boolean = false; socket: WebSocket; @@ -113,26 +110,17 @@ export class Weblish extends React.Component { const { group, label } = linode; this.terminal = new Terminal({ + cols: 120, cursorBlink: true, fontFamily: '"Ubuntu Mono", monospace, sans-serif', + rows: 40, screenReaderMode: true, }); - this.fitAddon = new FitAddon(); - this.terminal.loadAddon(this.fitAddon); - this.terminal.onData((data: string) => this.socket.send(data)); const terminalDiv = document.getElementById('terminal'); this.terminal.open(terminalDiv as HTMLElement); - window.onresize = () => { - this.fitAddon.fit(); - }; - - setInterval(() => { - this.fitAddon.fit(); - }, 2000); - this.terminal.writeln('\x1b[32mLinode Lish Console\x1b[m'); this.socket.addEventListener('message', (evt) => { diff --git a/packages/manager/src/features/Lish/lishUtils.ts b/packages/manager/src/features/Lish/lishUtils.ts index 0f021267ba9..e94f56c5958 100644 --- a/packages/manager/src/features/Lish/lishUtils.ts +++ b/packages/manager/src/features/Lish/lishUtils.ts @@ -1,6 +1,7 @@ export const lishLaunch = (linodeId: number) => { window.open( `${window.location.protocol}//${window.location.host}/linodes/${linodeId}/lish/weblish`, - `weblish_con_${linodeId}` + `weblish_con_${linodeId}`, + 'width=1080,height=730,toolbar=0,resizable=1' ); }; diff --git a/yarn.lock b/yarn.lock index ae496788710..5a0696c50ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4789,11 +4789,6 @@ loupe "^2.3.7" pretty-format "^29.7.0" -"@xterm/addon-fit@^0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@xterm/addon-fit/-/addon-fit-0.10.0.tgz#bebf87fadd74e3af30fdcdeef47030e2592c6f55" - integrity sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ== - "@xterm/xterm@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@xterm/xterm/-/xterm-5.5.0.tgz#275fb8f6e14afa6e8a0c05d4ebc94523ff775396"