diff --git a/src/app/components/swap-panel-api.js b/src/app/components/swap-panel-api.js index 28cb4e7ec9..f603dfedc3 100644 --- a/src/app/components/swap-panel-api.js +++ b/src/app/components/swap-panel-api.js @@ -17,6 +17,10 @@ class SwapPanelApi { }) } + showContent (moduleName) { + this.component.showContent(moduleName) + } + /* content: DOM element by appManager diff --git a/src/framingService.js b/src/framingService.js index 96db4e30ff..bb15139d32 100644 --- a/src/framingService.js +++ b/src/framingService.js @@ -2,23 +2,27 @@ export default { start: (appStore, swapPanelApi, verticalIconApi, mainPanelApi, resizeFeature) => { swapPanelApi.event.on('toggle', () => { resizeFeature.panel1.clientWidth !== 0 ? resizeFeature.minimize() : resizeFeature.maximise() + if (moduleName === 'file explorers') { + mainPanelApi.showContent('code editor') + } + }) + mainPanelApi.event.on('toggle', () => { + verticalIconApi.select('code editor') + resizeFeature.maximise() }) swapPanelApi.event.on('showing', (moduleName) => { + if (moduleName === 'file explorers') { + mainPanelApi.showContent('code editor') + } resizeFeature.panel1.clientWidth === 0 ? resizeFeature.maximise() : '' var current = appStore.getOne(moduleName) - // warn the content that it is being displayed. TODO should probably be done in each view + // warn the content that it is being displayed. TODO should probably be done in each view if (current && current.api.__showing) current.api.__showing() }) - mainPanelApi.event.on('showing', (moduleName) => { - if (moduleName === 'code editor') { - verticalIconApi.select('file explorers') - resizeFeature.maximise() - return - } - resizeFeature.minimize() - }) + mainPanelApi.event.on('showing', (moduleName) => {}) + + verticalIconApi.select('file explorers') resizeFeature.minimize() verticalIconApi.select('homepage') } } - diff --git a/src/remixAppManager.js b/src/remixAppManager.js index 763832fc64..27e5c74550 100644 --- a/src/remixAppManager.js +++ b/src/remixAppManager.js @@ -61,7 +61,10 @@ export class RemixAppManager extends AppManagerApi { domEl.style.width = '100%' domEl.style.border = '0' panel.add(profile, domEl) - this.verticalIconsApi.addIcon(profile) + // TODO perhaps should not be here + if (profile.name !== 'code editor') { + this.verticalIconsApi.addIcon(profile) + } return } this.hiddenNodes[profile.name] = domEl @@ -79,6 +82,15 @@ export class RemixAppManager extends AppManagerApi { } plugins () { + let vyper = { + name: 'vyper', + events: [], + methods: [], + notifications: {}, + url: 'https://plugin.vyper.live', + description: 'compile vyper contracts', + icon: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMjYyIDEwNzVxLTM3IDEyMS0xMzggMTk1dC0yMjggNzQtMjI4LTc0LTEzOC0xOTVxLTgtMjUgNC00OC41dDM4LTMxLjVxMjUtOCA0OC41IDR0MzEuNSAzOHEyNSA4MCA5Mi41IDEyOS41dDE1MS41IDQ5LjUgMTUxLjUtNDkuNSA5Mi41LTEyOS41cTgtMjYgMzItMzh0NDktNCAzNyAzMS41IDQgNDguNXptLTQ5NC00MzVxMCA1My0zNy41IDkwLjV0LTkwLjUgMzcuNS05MC41LTM3LjUtMzcuNS05MC41IDM3LjUtOTAuNSA5MC41LTM3LjUgOTAuNSAzNy41IDM3LjUgOTAuNXptNTEyIDBxMCA1My0zNy41IDkwLjV0LTkwLjUgMzcuNS05MC41LTM3LjUtMzcuNS05MC41IDM3LjUtOTAuNSA5MC41LTM3LjUgOTAuNSAzNy41IDM3LjUgOTAuNXptMjU2IDI1NnEwLTEzMC01MS0yNDguNXQtMTM2LjUtMjA0LTIwNC0xMzYuNS0yNDguNS01MS0yNDguNSA1MS0yMDQgMTM2LjUtMTM2LjUgMjA0LTUxIDI0OC41IDUxIDI0OC41IDEzNi41IDIwNCAyMDQgMTM2LjUgMjQ4LjUgNTEgMjQ4LjUtNTEgMjA0LTEzNi41IDEzNi41LTIwNCA1MS0yNDguNXptMTI4IDBxMCAyMDktMTAzIDM4NS41dC0yNzkuNSAyNzkuNS0zODUuNSAxMDMtMzg1LjUtMTAzLTI3OS41LTI3OS41LTEwMy0zODUuNSAxMDMtMzg1LjUgMjc5LjUtMjc5LjUgMzg1LjUtMTAzIDM4NS41IDEwMyAyNzkuNSAyNzkuNSAxMDMgMzg1LjV6Ii8+PC9zdmc+' + } let ethDoc = { name: 'eth doc', events: ['newDoc'], @@ -100,6 +112,7 @@ export class RemixAppManager extends AppManagerApi { prefferedLocation: 'mainPanel' } return [{ profile: ethDoc, api: new Plugin(ethDoc, { resolveLocaton: (iframe) => { return this.resolveLocation(ethDoc, iframe) } }) }, - { profile: pipeline, api: new Plugin(pipeline, { resolveLocaton: (iframe) => { return this.resolveLocation(pipeline, iframe) } }) }] + { profile: pipeline, api: new Plugin(pipeline, { resolveLocaton: (iframe) => { return this.resolveLocation(pipeline, iframe) } }) }, + { profile: vyper, api: new Plugin(vyper, { resolveLocaton: (iframe) => { return this.resolveLocation(vyper, iframe) } }) }] } }