diff --git a/apps/remix-ide/src/app/panels/terminal.js b/apps/remix-ide/src/app/panels/terminal.js
index 096dcb1ba6..df0510b150 100644
--- a/apps/remix-ide/src/app/panels/terminal.js
+++ b/apps/remix-ide/src/app/panels/terminal.js
@@ -86,8 +86,6 @@ class Terminal extends Plugin {
this.call('menuicons', 'select', 'debugger')
this.call('debugger', 'debug', hash)
})
- this.logHtmlResponse = []
- this.logResponse = []
}
onActivation () {
@@ -102,13 +100,11 @@ class Terminal extends Plugin {
}
logHtml (html) {
- this.logHtmlResponse.push(html.innerText)
- this.renderComponent()
+ this.terminalApi.logHtml(html)
}
log (message) {
- this.logResponse.push(message)
- this.renderComponent()
+ this.terminalApi.log(message)
}
render () {
@@ -116,9 +112,11 @@ class Terminal extends Plugin {
}
renderComponent () {
+ const onReady = (api) => { this.terminalApi = api }
ReactDOM.render(
,
this.element
)
diff --git a/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx b/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx
index 7cfe4bd8b1..3c13ed625c 100644
--- a/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx
+++ b/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx
@@ -24,7 +24,7 @@ export interface ClipboardEvent extends SyntheticEvent {
}
export const RemixUiTerminal = (props: RemixUiTerminalProps) => {
- const { call, _deps, on, config, event, gistHandler, logHtmlResponse, logResponse, version } = props.plugin
+ const { call, _deps, on, config, event, gistHandler, version } = props.plugin
const [toggleDownUp, setToggleDownUp] = useState('fa-angle-double-down')
const [_cmdIndex, setCmdIndex] = useState(-1)
const [_cmdTemp, setCmdTemp] = useState('')
@@ -68,11 +68,6 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => {
commandHistoryIndex: 0
})
- const [logState, setLogState] = useState({
- logIndex: 0,
- htmlLogIndex: 0
- })
-
const [searchInput, setSearchInput] = useState('')
const [showTableHash, setShowTableHash] = useState([])
@@ -89,18 +84,15 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => {
}
useEffect(() => {
- if (logHtmlResponse.length > 0) {
- scriptRunnerDispatch({ type: 'html', payload: { message: logHtmlResponse.slice(logState.htmlLogIndex) } })
- setLogState(prevState => ({ ...prevState, htmlLogIndex: logHtmlResponse.length }))
- }
- }, [logHtmlResponse.length])
-
- useEffect(() => {
- if (logResponse.length > 0) {
- scriptRunnerDispatch({ type: 'log', payload: { message: logResponse.slice(logState.logIndex) } })
- setLogState(prevState => ({ ...prevState, logIndex: logResponse.length }))
- }
- }, [logResponse.length])
+ props.onReady({
+ logHtml: (html) => {
+ scriptRunnerDispatch({ type: 'html', payload: { message: [html.innerText] } })
+ },
+ log: (message) => {
+ scriptRunnerDispatch({ type: 'log', payload: { message: [message] } })
+ }
+ })
+ }, [])
// events
useEffect(() => {
@@ -126,7 +118,7 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => {
useEffect(() => {
scrollToBottom()
- }, [newstate.journalBlocks.length, logHtmlResponse.length, toaster])
+ }, [newstate.journalBlocks.length, toaster])
function execute (file, cb) {
function _execute (content, cb) {
diff --git a/libs/remix-ui/terminal/src/lib/types/terminalTypes.ts b/libs/remix-ui/terminal/src/lib/types/terminalTypes.ts
index 66eea4d655..7a77b11dab 100644
--- a/libs/remix-ui/terminal/src/lib/types/terminalTypes.ts
+++ b/libs/remix-ui/terminal/src/lib/types/terminalTypes.ts
@@ -24,5 +24,6 @@ export const LISTEN_ON_NETWORK = 'listenOnNetWork'
export const CMD_HISTORY = 'cmdHistory'
export interface RemixUiTerminalProps {
- plugin: any
+ plugin: any,
+ onReady: (api: any) => void
}
diff --git a/package.json b/package.json
index 8faaf4c999..b4b82b7c5b 100644
--- a/package.json
+++ b/package.json
@@ -72,7 +72,7 @@
"nightwatch_local_staticAnalysis": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/staticAnalysis.spec.js --env=chrome",
"nightwatch_local_signingMessage": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/signingMessage.test.js --env=chrome",
"nightwatch_local_specialFunctions": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/specialFunctions.test.js --env=chrome",
- "nightwatch_local_solidityUnitTests": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/solidityUnittests.spec.js --env=chrome",
+ "nightwatch_local_solidityUnitTests": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/solidityUnittests.spec.js --env=firefox",
"nightwatch_local_remixd": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/remixd.test.js --env=chrome",
"nightwatch_local_terminal": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/terminal.test.js --env=chrome",
"nightwatch_local_gist": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/gist.spec.js --env=chrome",