@@ -127,6 +127,9 @@ const Chat = { | |||
) | |||
}, | |||
} | |||
marked.setOptions({ | |||
breaks: true, | |||
}) | |||
addEventListener('focus', m.redraw) | |||
addEventListener('post', ({detail}) => { | |||
Chat.posts.push(detail) | |||
@@ -137,6 +140,7 @@ addEventListener('logout', () => { | |||
Chat.posts = [] | |||
Chat.unseenCount = 0 | |||
}) | |||
marked.setOptions({ | |||
breaks: true, | |||
addEventListener('load', () => { | |||
Headers.push([ChatConfig]) | |||
Apps.push([Shadow, {key: 'chat-shadow', app: Chat}]) | |||
}) |
@@ -210,7 +210,12 @@ const StreamContainer = { | |||
) | |||
}, | |||
} | |||
const signalPeerStop = (username) => signal({kind: 'peerInfo', value: {type: 'stop'}, source: username}) | |||
const signalPeerStop = (username) => { | |||
signal({kind: 'peerInfo', value: {type: 'stop'}, source: username}) | |||
} | |||
addEventListener('pagehide', () => State.online.forEach(signalPeerStop)) | |||
addEventListener('logout', () => State.online.forEach(signalPeerStop)) | |||
addEventListener('load', () => { | |||
Headers.push([VideoConfig]) | |||
Apps.push([StreamContainer, {key: 'stream-container'}]) | |||
}) |
@@ -7,11 +7,11 @@ | |||
<script src="/libs/mithril.min.js"></script> | |||
<script src="/libs/marked.min.js"></script> | |||
<script src="/libs/purify.min.js"></script> | |||
<script src="/pico.js" defer></script> | |||
<script src="/apps/streams.js"></script> | |||
<script src="/apps/chat.js"></script> | |||
<script src="/apps/volume.js"></script> | |||
<!-- <script src="/apps/volume.js"></script> --> | |||
<!-- <script src="/apps/screen.js"></script> --> | |||
<script src="/pico.js" defer></script> | |||
</head> | |||
<body style="margin: 0; padding: 0;"> | |||
<div>PicoChat requires JS</div> |
@@ -191,13 +191,7 @@ const Base = { | |||
} | |||
return m('main', {style: mainStyle}, | |||
m('header', {style: headerStyle}, | |||
State.isConnected ? [ | |||
m('button', {onclick: Base.sendLogout}, 'log-out'), | |||
m(VideoConfig), | |||
m(ChatConfig), | |||
m('button', {onclick: VolumeMap.toggle}, 'volume'), | |||
// m('button', {onclick: ScreenShare.toggle}, 'screen'), | |||
] : [ | |||
State.isConnected ? Headers.map(h => m(...h)) : [ | |||
m('form.login', | |||
{onsubmit: Base.sendLogin}, | |||
m('input', attrs), | |||
@@ -206,13 +200,17 @@ const Base = { | |||
], | |||
m('span.error', State.info), | |||
), | |||
State.isConnected ? [ | |||
m(StreamContainer, {key: 'lolo'}), | |||
m(Shadow, {key: 'chat-shadow', app: Chat}), | |||
m(Shadow, {key: 'map-shadow', app: VolumeMap}), | |||
// m(Shadow, {key: 'screen-shadow', app: ScreenShare}), | |||
] : m(Settings), | |||
State.isConnected ? Apps.map(a => m(...a)) : null, | |||
) | |||
}, | |||
} | |||
m.mount(document.body, Base) | |||
const Headers = [ | |||
['button', {onclick: Base.sendLogout}, 'log-out'], | |||
// m('button', {onclick: VolumeMap.toggle}, 'volume'), | |||
// m('button', {onclick: ScreenShare.toggle}, 'screen'), | |||
] | |||
const Apps = [ | |||
// m(Shadow, {key: 'map-shadow', app: VolumeMap}), | |||
// m(Shadow, {key: 'screen-shadow', app: ScreenShare}), | |||
] | |||
addEventListener('load', () => m.mount(document.body, Base)) |