const ScreenShareConfig = { view() { const checked = ScreenShare.isOn const onclick = ScreenShare.toggle return m('label.styled', m('input[type=checkbox]', {checked, onclick}), 'screen-share', ) } } const ScreenShare = { isOn: false, start() { const screen = document.querySelector('video.screen') navigator.mediaDevices.getDisplayMedia() .then(s => {screen.srcObject = s}) .catch(e => console.error(e)) }, toggle() { ScreenShare.isOn = !ScreenShare.isOn // ScreenShare.start() }, view() { const style = { width: '80%', height: '80%', } return m('video.screen[playsinline][autoplay]', {style}) }, } addEventListener('load', () => { Headers.push([ScreenShareConfig]) Apps.push([ScreenShare, {key: 'screen-share-container'}]) })