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%;