From d2effb5df758457f13df79d9f1984dd9b51ca3f6 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Wed, 24 Apr 2024 17:13:58 +0200 Subject: [PATCH] getshells --- .../src/lib/api/compiler-api.ts | 17 +++++++++------- libs/remix-ui/xterm/src/lib/actions/index.ts | 2 -- .../lib/components/remix-ui-xterminals.tsx | 20 +++++++++++-------- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/libs/remix-ui/solidity-compiler/src/lib/api/compiler-api.ts b/libs/remix-ui/solidity-compiler/src/lib/api/compiler-api.ts index 0528aeda0a..58e4fefc8c 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/api/compiler-api.ts +++ b/libs/remix-ui/solidity-compiler/src/lib/api/compiler-api.ts @@ -203,14 +203,17 @@ export const CompilerApiMixin = (Base) => class extends Base { return this.call('fileManager', 'saveCurrentFile') } - resetResults () { - this.currentFile = '' - this.compilationDetails = { - contractsDetails: {}, - contractMap: {} + resetResults() { + try { + this.currentFile = '' + this.compilationDetails = { + contractsDetails: {}, + contractMap: {} + } + this.statusChanged({ key: 'none' }) + } catch (e) { + // do nothing } - this.statusChanged({ key: 'none' }) - // if (this.onResetResults) this.onResetResults() } listenToEvents () { diff --git a/libs/remix-ui/xterm/src/lib/actions/index.ts b/libs/remix-ui/xterm/src/lib/actions/index.ts index 956c850296..5489af6206 100644 --- a/libs/remix-ui/xterm/src/lib/actions/index.ts +++ b/libs/remix-ui/xterm/src/lib/actions/index.ts @@ -2,8 +2,6 @@ import { Actions } from "@remix-ui/xterm" import { Plugin } from "@remixproject/engine" export const createTerminal = async (shell: string = '', plugin: Plugin, workingDir: string, dispatch: React.Dispatch) => { - const shells: string[] = await plugin.call('xterm', 'getShells') - dispatch({ type: 'ADD_SHELLS', payload: shells }) const pid = await plugin.call('xterm', 'createTerminal', workingDir, shell) dispatch({ type: 'SHOW_OUTPUT', payload: false }) dispatch({ type: 'HIDE_ALL_TERMINALS', payload: null }) diff --git a/libs/remix-ui/xterm/src/lib/components/remix-ui-xterminals.tsx b/libs/remix-ui/xterm/src/lib/components/remix-ui-xterminals.tsx index 7e5b67d429..bad7bdfadf 100644 --- a/libs/remix-ui/xterm/src/lib/components/remix-ui-xterminals.tsx +++ b/libs/remix-ui/xterm/src/lib/components/remix-ui-xterminals.tsx @@ -25,6 +25,10 @@ export const RemixUiXterminals = (props: RemixUiXterminalsProps) => { useEffect(() => { setTimeout(async () => { + plugin.call('xterm', 'getShells').then((shells) => { + dispatchXterm({ type: 'ADD_SHELLS', payload: shells }) + }) + plugin.on('xterm', 'data', async (data: string, pid: number) => { writeToTerminal(data, pid) }) @@ -34,10 +38,10 @@ export const RemixUiXterminals = (props: RemixUiXterminalsProps) => { }) plugin.on('xterm', 'new', async () => { - const pid = await plugin.call('xterm', 'createTerminal', workingDir, null) - dispatchXterm({ type: 'HIDE_ALL_TERMINALS', payload: null }) - dispatchXterm({ type: 'SHOW_OUTPUT', payload: false }) - dispatchXterm({ type: 'ADD_TERMINAL', payload: { pid, queue: '', timeStamp: Date.now(), ref: null, hidden: false } }) + const pid = await plugin.call('xterm', 'createTerminal', workingDir, null) + dispatchXterm({ type: 'HIDE_ALL_TERMINALS', payload: null }) + dispatchXterm({ type: 'SHOW_OUTPUT', payload: false }) + dispatchXterm({ type: 'ADD_TERMINAL', payload: { pid, queue: '', timeStamp: Date.now(), ref: null, hidden: false } }) }) @@ -47,7 +51,7 @@ export const RemixUiXterminals = (props: RemixUiXterminalsProps) => { }) const workingDir = await plugin.call('fs', 'getWorkingDir') - if(workingDir && workingDir !== '') { + if (workingDir && workingDir !== '') { dispatchXterm({ type: 'ENABLE_TERMINALS', payload: null }) dispatchXterm({ type: 'SET_WORKING_DIR', payload: workingDir }) } @@ -76,7 +80,7 @@ export const RemixUiXterminals = (props: RemixUiXterminalsProps) => { useEffect(() => { setTerminals(xtermState.terminals) - if(xtermState.terminals.length === 0) { + if (xtermState.terminals.length === 0) { dispatchXterm({ type: 'SHOW_OUTPUT', payload: true }) } }, [xtermState.terminals]) @@ -137,9 +141,9 @@ export const RemixUiXterminals = (props: RemixUiXterminalsProps) => { } return (<> - {
+ {
<> - {
+ {
{terminals.map((xtermState) => { return (