mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-17 17:47:03 +00:00
44 lines
944 B
JavaScript
44 lines
944 B
JavaScript
import './main.css'
|
|
import { Elm } from './Main.elm'
|
|
import registerServiceWorker from './registerServiceWorker'
|
|
import registerMonitorPorts from './registerMonitor'
|
|
|
|
// App startup.
|
|
var app = Elm.Main.init({
|
|
node: document.getElementById('root'),
|
|
flags: sessionObject()
|
|
})
|
|
|
|
// Message monitor.
|
|
registerMonitorPorts(app)
|
|
|
|
// Session storage.
|
|
app.ports.storeSession.subscribe(function (session) {
|
|
localStorage.session = JSON.stringify(session)
|
|
})
|
|
|
|
window.addEventListener("storage", function (event) {
|
|
if (event.storageArea === localStorage && event.key === "session") {
|
|
app.ports.onSessionChange.send(sessionObject())
|
|
}
|
|
}, false)
|
|
|
|
function sessionObject() {
|
|
var s = localStorage.session
|
|
try {
|
|
if (s) {
|
|
return JSON.parse(s)
|
|
}
|
|
} catch (error) {
|
|
console.error(error)
|
|
}
|
|
return null
|
|
}
|
|
|
|
// Window title.
|
|
app.ports.windowTitle.subscribe(function (title) {
|
|
document.title = title
|
|
})
|
|
|
|
registerServiceWorker()
|