diff --git a/assets/css/browser-solidity.css b/assets/css/browser-solidity.css index b8e5337d40..4c44f2fe87 100644 --- a/assets/css/browser-solidity.css +++ b/assets/css/browser-solidity.css @@ -407,18 +407,6 @@ body { bottom: 0; } -#dragbar { - background-color: transparent; - position: absolute; - width: 0.5em; - right: -3px; - top: 3em; - bottom: 0; - cursor: col-resize; - z-index: 999; - border-right: 2px solid hsla(215, 81%, 79%, .3); -} - input[readonly] { display: block; width: 100%; diff --git a/src/app.js b/src/app.js index 97c680b1a2..a2fb4489e3 100644 --- a/src/app.js +++ b/src/app.js @@ -31,12 +31,9 @@ var examples = require('./app/example-contracts') var css = csjs` .browsersolidity { - position : absolute; - top : 0; - left : 0; - width : auto; - bottom : 0; - right : 37em; + position : relative; + width : 100vw; + height : 100vh; } .editor-container { display : flex; @@ -51,6 +48,16 @@ var css = csjs` display : flex; width : 200px; } + .dragbar2 { + background-color : transparent; + position : absolute; + width : 0.5em; + top : 3em; + bottom : 0; + cursor : col-resize; + z-index : 999; + border-right : 2px solid hsla(215, 81%, 79%, .3); + } ` class App { @@ -66,6 +73,13 @@ class App { var self = this if (self._view.el) return self._view.el /***************************************************************************/ + self._view.rightpanel = yo`
` + self._view.centerpanel = yo` +
+
+
+
+ ` self._view.el = yo`
@@ -74,11 +88,9 @@ class App {
-
-
-
-
-
+ ${self._view.centerpanel} +
+ ${self._view.rightpanel}
` return self._view.el @@ -672,7 +684,8 @@ function run () { config: config, setEditorSize (delta) { $('#righthand-panel').css('width', delta) - self._view.el.style.right = delta + 'px' + self._view.centerpanel.style.right = delta + 'px' + document.querySelector(`.${css.dragbar2}`).style.right = delta + 'px' onResize() }, reAdjust: reAdjust, @@ -694,7 +707,9 @@ function run () { app: self.event, udapp: udapp.event } - var righthandPanel = new RighthandPanel(document.body, rhpAPI, rhpEvents, {}) // eslint-disable-line + var righthandPanel = new RighthandPanel(rhpAPI, rhpEvents, {}) // eslint-disable-line + self._view.rightpanel.replaceWith(righthandPanel.render()) + // ----------------- editor resize --------------- function onResize () { diff --git a/src/app/righthand-panel.js b/src/app/righthand-panel.js index e8438ed975..9d18f4145b 100644 --- a/src/app/righthand-panel.js +++ b/src/app/righthand-panel.js @@ -27,23 +27,26 @@ var css = csjs` module.exports = RighthandPanel -function RighthandPanel (container, appAPI, events, opts) { +function RighthandPanel (appAPI, events, opts) { var self = this self._api = appAPI var optionViews = yo`
` + var options = yo` + + ` var element = yo`
@@ -54,9 +57,10 @@ function RighthandPanel (container, appAPI, events, opts) { analysisTab(optionViews, appAPI, events, opts) debuggerTab(optionViews, appAPI, events, opts) filesTab(optionViews, appAPI, events, opts) - container.appendChild(element) - ;[...container.querySelectorAll('#header #options li')].forEach((el) => { el.classList.add(css.options) }) + self.render = function () { return element } + + ;[...options.children].forEach((el) => { el.classList.add(css.options) }) // ----------------- toggle right hand panel ----------------- @@ -73,9 +77,8 @@ function RighthandPanel (container, appAPI, events, opts) { warnCompilerLoading: appAPI.warnCompilerLoading } // load tabbed menu component - var tabContainer // @TODO var tabEvents = {compiler: events.compiler, app: events.app} - tabbedMenu(tabContainer, tabbedMenuAPI, tabEvents, {}) + tabbedMenu(options, tabbedMenuAPI, tabEvents, {}) // ----------------- resizeable ui --------------- @@ -118,7 +121,9 @@ function RighthandPanel (container, appAPI, events, opts) { }) if (appAPI.config.exists(EDITOR_WINDOW_SIZE)) { - self._api.setEditorSize(appAPI.config.get(EDITOR_WINDOW_SIZE)) + setTimeout(function () { + self._api.setEditorSize(appAPI.config.get(EDITOR_WINDOW_SIZE)) + }, 0) } else { appAPI.config.set(EDITOR_WINDOW_SIZE, getEditorSize()) } diff --git a/src/app/tabbed-menu.js b/src/app/tabbed-menu.js index 8959e4e709..86383c7acc 100644 --- a/src/app/tabbed-menu.js +++ b/src/app/tabbed-menu.js @@ -4,17 +4,16 @@ var loadingSpinner = require('./loading-spinner') module.exports = tabbedMenu function tabbedMenu (container, appAPI, events, opts) { - $('#options li').click(function (ev) { - var $el = $(this) - selectTab($el) + container.querySelectorAll('li').forEach(function (el) { + el.onclick = function (ev) { selectTab(this) } }) events.app.register('debuggingRequested', () => { - selectTab($('ul#options li.debugView')) + selectTab(container.querySelector('li.debugView')) }) // initialize tabbed menu - selectTab($('#options .envView')) + selectTab(container.querySelector('.envView')) // add event listeners for loading spinner events.compiler.register('loadingCompiler', function start () { @@ -34,6 +33,7 @@ function tabbedMenu (container, appAPI, events, opts) { // select tab function selectTab (el) { + el = $(el) var match = /[a-z]+View/.exec(el.get(0).className) if (!match) return var cls = match[0]