43 lines
1.4 KiB
JavaScript
43 lines
1.4 KiB
JavaScript
'use strict'
|
|
var h = require('hyperscript')
|
|
var o = require('observable')
|
|
var com = require('../com')
|
|
var app = require('../app')
|
|
var ui = require('../ui')
|
|
var ssbref = require('ssb-ref')
|
|
|
|
module.exports = function (opts) {
|
|
var param = (opts && opts.param) ? opts.param : app.page.param
|
|
var port = (ssbref.isLink(param)) ? 7777 : 7778
|
|
var url = 'http://localhost:' + port + '/' + param
|
|
|
|
// markup
|
|
|
|
var webview = com.webview({ url: url })
|
|
ui.setPage('webview', h('.layout-grid',
|
|
h('.layout-grid-col.webview-left', webview),
|
|
(opts && opts.sideview) ? h('.layout-grid-col.webview-right', { style: showhide(app.observ.sideview) }, opts.sideview) : ''
|
|
), { onPageTeardown: function () {
|
|
window.removeEventListener('resize', resize)
|
|
}})
|
|
|
|
function showhide (input) {
|
|
return { display: o.transform(input, function (v) { return (v) ? 'block' : 'none' }) }
|
|
}
|
|
|
|
// dynamically size various controls
|
|
resize()
|
|
window.addEventListener('resize', resize)
|
|
function resize () {
|
|
[
|
|
[webview.querySelector('::shadow object'), 0],
|
|
[document.querySelector('.webview-page .layout-grid'), 0],
|
|
[document.querySelector('.webview-page .webview-left'), 0],
|
|
[document.querySelector('.webview-page .webview-right'), 0]
|
|
].forEach(function (entry) {
|
|
if (entry[0])
|
|
entry[0].style.height = (window.innerHeight - 40 - entry[1]) + 'px'
|
|
})
|
|
}
|
|
}
|