Skip to content

Commit

Permalink
refactor this2self + adapt passing of compiler
Browse files Browse the repository at this point in the history
  • Loading branch information
serapath committed Apr 15, 2018
1 parent 4080565 commit 078faca
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 11 deletions.
22 changes: 13 additions & 9 deletions src/app/plugin/pluginManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,14 @@
*
*/
module.exports = class PluginManager {
constructor (api = {}, events = {}, opts = {}) {
constructor (api = {}, events = {}, opts = {}) {
const self = this
self._opts = opts
self._api = api
self._events = events
self.plugins = {}
self.inFocus
var allowedapi = {'setConfig': 1, 'getConfig': 1, 'removeConfig': 1}
self.allowedapi = {'setConfig': 1, 'getConfig': 1, 'removeConfig': 1}
self._events.compiler.register('compilationFinished', (success, data, source) => {
if (self.inFocus) {
// trigger to the current focus
Expand All @@ -54,6 +55,7 @@ module.exports = class PluginManager {
}))
}
})

self._events.app.register('tabChanged', (tabName) => {
if (self.inFocus && self.inFocus !== tabName) {
// trigger unfocus
Expand All @@ -69,7 +71,7 @@ module.exports = class PluginManager {
self.inFocus = tabName
self.post(tabName, JSON.stringify({
type: 'compilationData',
value: self._api.getCompilationResult()
value: api.compiler.getCompilationResult()
}))
}
})
Expand All @@ -83,10 +85,10 @@ module.exports = class PluginManager {
result: result
}))
}
if (event.type === 'message' && this.inFocus && this.plugins[this.inFocus] && this.plugins[this.inFocus].origin === event.origin) {
if (event.type === 'message' && self.inFocus && self.plugins[self.inFocus] && self.plugins[self.inFocus].origin === event.origin) {
var data = JSON.parse(event.data)
data.arguments.unshift(this.inFocus)
if (allowedapi[data.type]) {
data.arguments.unshift(self.inFocus)
if (self.allowedapi[data.type]) {
data.arguments.push((error, result) => {
response(data.type, data.id, error, result)
})
Expand All @@ -96,11 +98,13 @@ module.exports = class PluginManager {
}, false)
}
register (desc, content) {
this.plugins[desc.title] = {content, origin: desc.url}
const self = this
self.plugins[desc.title] = {content, origin: desc.url}
}
post (name, value) {
if (this.plugins[name]) {
this.plugins[name].content.querySelector('iframe').contentWindow.postMessage(value, this.plugins[name].origin)
const self = this
if (self.plugins[name]) {
self.plugins[name].content.querySelector('iframe').contentWindow.postMessage(value, self.plugins[name].origin)
}
}
}
4 changes: 2 additions & 2 deletions src/app/tabs/plugin-tab.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@ module.exports = class plugintab {
constructor (api = {}, events = {}, opts = {}) {
const self = this
self.event = new EventManager()
self._opts = opts
self._api = api
self._events = events
self._view = { el: null }
self.data = { url: opts.url }
self._components = {}
}
render () {
const self = this
if (self._view.el) return self._view.el
self._view.el = yo`
<div class="${css.pluginTabView}" id="pluginView">
<iframe class="${css.iframe}" src="${self.data.url}/index.html"></iframe>
<iframe class="${css.iframe}" src="${self._opts.url}/index.html"></iframe>
</div>`
return self._view.el
}
Expand Down

0 comments on commit 078faca

Please sign in to comment.