refactor support tab

pull/3094/head
serapath 7 years ago
parent 2981da8d0c
commit 74458b6113
  1. 56
      src/app/tabs/styles/support-tab-styles.js
  2. 139
      src/app/tabs/support-tab.js

@ -1,56 +0,0 @@
var csjs = require('csjs-inject')
var styleGuide = require('../../ui/styles-guide/theme-chooser')
var styles = styleGuide.chooser()
var css = csjs`
.supportTabView {
height: 100vh;
padding: 2%;
padding-bottom: 3em;
display: flex;
flex-direction: column;
overflow: hidden;
}
.chat {
${styles.rightPanel.supportTab.box_IframeContainer}
display: flex;
flex-direction: column;
align-items: center;
height: 85%;
padding: 0;
}
.chatTitle {
height: 40px;
width: 90%;
display: flex;
align-items: center;
justify-content: center;
margin-top: 15px;
}
.chatTitle:hover {
cursor: pointer;
}
.icon {
height: 70%;
margin-right: 2%;
}
.chatTitleText {
font-size: 17px;
font-weight: bold;
}
.chatTitleText {
opacity: 0.8;
}
.chatIframe {
width: 100%;
height: 100%;
transform: scale(0.9);
padding: 0;
border: none;
}
.infoBox {
${styles.rightPanel.supportTab.box_SupportInfo}
}
`
module.exports = css

@ -1,57 +1,98 @@
var yo = require('yo-yo')
const yo = require('yo-yo')
const csjs = require('csjs-inject')
const remixLib = require('remix-lib')
var css = require('./styles/support-tab-styles')
const styles = require('../ui/styles-guide/theme-chooser').chooser()
var infoText = yo`
<div>
Have a question, found a bug or want to propose a feature? Have a look at the
<a target="_blank" href='https://github.com/ethereum/remix-ide/issues'> issues</a> or check out
<a target="_blank" href='https://remix.readthedocs.io/en/latest/'> the documentation page on Remix</a> or
<a target="_blank" href='https://solidity.readthedocs.io/en/latest/'> Solidity</a>.
</div>
`
let gitterIframe = yo`
<iframe class="${css.chatIframe}" src='https://gitter.im/ethereum/remix/~embed'>
`
const EventManager = remixLib.EventManager
function supportTabView (gitterIframe) {
return yo`
<div class="${css.supportTabView} "id="supportView">
<div>
module.exports = class SupportTab {
constructor (api = {}, events = {}, opts = {}) {
const self = this
self.event = new EventManager()
self._api = api
self._events = events
self._opts = opts
self._view = { el: null, gitterIframe: '' }
self.data = { gitterIsLoaded: false }
self._components = {}
self._events.app.register('tabChanged', (tabName) => {
if (tabName !== 'Support' || self.data.gitterIsLoaded) return
if (!self._view.gitterIframe) self._view.gitterIframe = yo`<iframe class="${css.chatIframe}" src='https://gitter.im/ethereum/remix/~embed'>`
yo.update(self._view.el, self.render())
self._view.el.style.display = 'block'
self.data.gitterIsLoaded = true
})
}
render () {
const self = this
self._view.el = yo`
<div class="${css.supportTabView} "id="supportView">
<div class="${css.infoBox}">
${infoText}
Have a question, found a bug or want to propose a feature? Have a look at the
<a target="_blank" href='https://github.com/ethereum/browser-solidity/issues'> issues</a> or check out
<a target="_blank" href='https://remix.readthedocs.io/en/latest/'> the documentation page on Remix</a> or
<a target="_blank" href='https://solidity.readthedocs.io/en/latest/'> Solidity</a>.
</div>
</div>
<div class="${css.chat}">
<div class="${css.chatTitle}" onclick=${openLink} title='Click to open chat in Gitter'>
<div class="${css.chatTitleText}">ethereum/remix community chat</div>
<div class="${css.chat}">
<div class="${css.chatTitle}" onclick=${openLink} title='Click to open chat in Gitter'>
<div class="${css.chatTitleText}">ethereum/remix community chat</div>
</div>
${self._view.gitterIframe}
</div>
${gitterIframe}
</div>
</div>
`
</div>`
return self._view.el
function openLink () { window.open('https://gitter.im/ethereum/remix') }
}
}
function supportTab (api = {}, events = {}, opts = {}) {
let el = supportTabView('')
let gitterIsLoaded = false
events.app.register('tabChanged', (tabName) => {
if (tabName !== 'Support' || gitterIsLoaded) {
return
}
yo.update(el, supportTabView(gitterIframe))
el.style.display = 'block'
gitterIsLoaded = true
})
return { render () { return el } }
}
function openLink () {
window.open('https://gitter.im/ethereum/remix')
}
module.exports = supportTab
const css = csjs`
.supportTabView {
height: 100vh;
padding: 2%;
padding-bottom: 3em;
display: flex;
flex-direction: column;
overflow: hidden;
}
.chat {
${styles.rightPanel.supportTab.box_IframeContainer}
display: flex;
flex-direction: column;
align-items: center;
height: 85%;
padding: 0;
}
.chatTitle {
height: 40px;
width: 90%;
display: flex;
align-items: center;
justify-content: center;
margin-top: 15px;
}
.chatTitle:hover {
cursor: pointer;
}
.icon {
height: 70%;
margin-right: 2%;
}
.chatTitleText {
font-size: 17px;
font-weight: bold;
}
.chatTitleText {
opacity: 0.8;
}
.chatIframe {
width: 100%;
height: 100%;
transform: scale(0.9);
padding: 0;
border: none;
}
.infoBox {
${styles.rightPanel.supportTab.box_SupportInfo}
}
`

Loading…
Cancel
Save