1
0
watterblock/ui/app.js

44 lines
1008 B
JavaScript

"use strict";
import WbDb from "/data/db.js";
import Shell from "/ui/shell.js";
export default class App {
#needsHandler = true;
constructor() {
WbDb.get().addEventListener(WbDb.EVENT_CHANGE, () => {
if (this.#needsHandler) {
WbDb.get().db.addEventListener("error", e => console.log(e));
this.#needsHandler = false;
}
m.redraw();
});
}
view() {
let db = WbDb.get();
if (db.failed)
return m.fragment([
m("h1", "Watterblock kann nicht geöffnet werden"),
m("p", "Die IndexedDB-Verbindung funktioniert gerade nicht"),
]);
if (db.blocked)
return m.fragment([
m("h1", "Watterblock muss warten"),
m("p",
"Bitte schließe alle anderen Tabs, in denen der Watterblock " +
"geöffnet ist"
),
m("p", "Die Spieledatenbank muss aktualisiert werden."),
]);
if (!db.open)
return m("p", "Öffne Datenbank, bitte warten…");
return m(Shell);
}
}