diff --git a/apps/remix-ide/src/app/components/hidden-panel.tsx b/apps/remix-ide/src/app/components/hidden-panel.tsx
index ba5fd4f59c..fbd1a46790 100644
--- a/apps/remix-ide/src/app/components/hidden-panel.tsx
+++ b/apps/remix-ide/src/app/components/hidden-panel.tsx
@@ -4,6 +4,7 @@ import ReactDOM from 'react-dom' // eslint-disable-line
import { AbstractPanel } from './panel'
import * as packageJson from '../../../../../package.json'
import { RemixPluginPanel } from '@remix-ui/panel'
+import { ViewPluginUI } from '../plugins/ViewPluginUI'
const profile = {
name: 'hiddenPanel',
@@ -28,7 +29,7 @@ export class HiddenPanel extends AbstractPanel {
this.renderComponent()
}
- render (state: any) {
+ updateComponent (state: any) {
return
>} plugins={state.plugins}/>
}
@@ -36,6 +37,12 @@ export class HiddenPanel extends AbstractPanel {
this.dispatch = dispatch
}
+ render() {
+ return (
+
+ );
+ }
+
renderComponent () {
this.dispatch({
plugins: this.plugins,
diff --git a/apps/remix-ide/src/app/components/main-panel.tsx b/apps/remix-ide/src/app/components/main-panel.tsx
index b9d180f194..2fdde8548d 100644
--- a/apps/remix-ide/src/app/components/main-panel.tsx
+++ b/apps/remix-ide/src/app/components/main-panel.tsx
@@ -3,6 +3,7 @@ import { AbstractPanel } from './panel'
import ReactDOM from 'react-dom' // eslint-disable-line
import { RemixPluginPanel } from '@remix-ui/panel'
import packageJson from '../../../../../package.json'
+import { ViewPluginUI } from '../plugins/ViewPluginUI'
const profile = {
name: 'mainPanel',
@@ -14,6 +15,7 @@ const profile = {
export class MainPanel extends AbstractPanel {
element: HTMLDivElement
+ dispatch: React.Dispatch = () => {}
constructor (config) {
super(profile)
this.element = document.createElement('div')
@@ -22,6 +24,10 @@ export class MainPanel extends AbstractPanel {
// this.config = config
}
+ setDispatch (dispatch: React.Dispatch) {
+ this.dispatch = dispatch
+ }
+
onActivation () {
this.renderComponent()
}
@@ -47,11 +53,17 @@ export class MainPanel extends AbstractPanel {
this.renderComponent()
}
- render () {
- return this.element
+ renderComponent () {
+ this.dispatch({
+ plugins: this.plugins
+ })
+ }
+
+ render() {
+ return
}
- renderComponent () {
- ReactDOM.render(>} plugins={this.plugins}/>, this.element)
+ updateComponent (state: any) {
+ return >} plugins={state.plugins}/>
}
}
diff --git a/apps/remix-ide/src/app/components/plugin-manager-component.js b/apps/remix-ide/src/app/components/plugin-manager-component.js
index 6b578743d1..d2a192dee0 100644
--- a/apps/remix-ide/src/app/components/plugin-manager-component.js
+++ b/apps/remix-ide/src/app/components/plugin-manager-component.js
@@ -82,10 +82,6 @@ class PluginManagerComponent extends ViewPlugin {
_paq.push(['trackEvent', 'manager', 'deactivate', name])
}
- onActivation () {
-
- }
-
setDispatch (dispatch) {
this.dispatch = dispatch
this.renderComponent()
diff --git a/apps/remix-ide/src/app/components/side-panel.tsx b/apps/remix-ide/src/app/components/side-panel.tsx
index 610653f205..9d1d954bb2 100644
--- a/apps/remix-ide/src/app/components/side-panel.tsx
+++ b/apps/remix-ide/src/app/components/side-panel.tsx
@@ -5,6 +5,7 @@ import { AbstractPanel } from './panel'
import { RemixPluginPanel } from '@remix-ui/panel'
import packageJson from '../../../../../package.json'
import RemixUIPanelHeader from 'libs/remix-ui/panel/src/lib/plugins/panel-header'
+import { ViewPluginUI } from '../plugins/ViewPluginUI'
// const csjs = require('csjs-inject')
const sidePanel = {
@@ -83,7 +84,13 @@ export class SidePanel extends AbstractPanel {
this.dispatch = dispatch
}
- render(state: any) {
+ render() {
+ return (
+
+ );
+ }
+
+ updateComponent(state: any) {
return } plugins={state.plugins} />
}
diff --git a/apps/remix-ide/src/app/components/vertical-icons.tsx b/apps/remix-ide/src/app/components/vertical-icons.tsx
index a55dd5a7d4..ed482b740b 100644
--- a/apps/remix-ide/src/app/components/vertical-icons.tsx
+++ b/apps/remix-ide/src/app/components/vertical-icons.tsx
@@ -6,6 +6,7 @@ import { Plugin } from '@remixproject/engine'
import { EventEmitter } from 'events'
import { IconRecord, RemixUiVerticalIconsPanel } from '@remix-ui/vertical-icons-panel'
import { Profile } from '@remixproject/plugin-utils'
+import { ViewPluginUI } from '../plugins/ViewPluginUI'
const profile = {
name: 'menuicons',
@@ -111,10 +112,16 @@ export class VerticalIcons extends Plugin {
this.events.emit('toggleContent', name)
}
- render (state: any) {
+ updateComponent(state: any){
return
+ />
+ }
+
+ render() {
+ return (
+
+ );
}
}
diff --git a/libs/remix-ui/app/src/lib/remix-app/remix-app.tsx b/libs/remix-ui/app/src/lib/remix-app/remix-app.tsx
index 0eb62e790b..c4f117c140 100644
--- a/libs/remix-ui/app/src/lib/remix-app/remix-app.tsx
+++ b/libs/remix-ui/app/src/lib/remix-app/remix-app.tsx
@@ -69,46 +69,18 @@ const RemixApp = (props: IRemixAppUi) => {
-
-
+
{props.app.menuicons.render()}
+
{props.app.sidePanel.render()}
-
+ {props.app.hiddenPanel.render()}
)
}
-export interface IViewPluginUI {
- plugin: any
-}
-
-export const ViewPluginUI = (props: IViewPluginUI) => {
-
- const [state, setState] = useState(null)
-
- useEffect(() => {
- // console.log(props.plugin)
- if(props.plugin.setDispatch){
- props.plugin.setDispatch(setState)
- }
- }, [])
-
- useEffect(() => {
- // console.log(state)
- }, [state])
-
- return (
- <>{state?
- props.plugin.render(state)
- :<>>
- }>
- )
-}
-
-
export default RemixApp
diff --git a/libs/remix-ui/panel/src/lib/plugins/panel.css b/libs/remix-ui/panel/src/lib/plugins/panel.css
index d2b2133667..8356d6ef15 100644
--- a/libs/remix-ui/panel/src/lib/plugins/panel.css
+++ b/libs/remix-ui/panel/src/lib/plugins/panel.css
@@ -76,11 +76,6 @@ iframe {
display: block;
}
-.pluginsContainer {
- height: 100%;
- overflow-y: hidden;
-}
-
#editorView {
height: 100%;
width: 100%;