Files
Zauberwald/src/app.ts
T

33 lines
843 B
TypeScript
Raw Normal View History

import type { ScreenName } from "./types";
import { openDB, getProgress } from "./storage/db";
import { initWelcomeScreen } from "./ui/screens";
let db: IDBDatabase;
export function showScreen(name: ScreenName): void {
document.querySelectorAll(".screen").forEach((el) => {
el.classList.remove("screen--active");
});
const target = document.getElementById(`screen-${name}`);
if (target) {
target.classList.add("screen--active");
}
}
export function getDB(): IDBDatabase {
return db;
}
export async function initApp(): Promise<void> {
db = await openDB();
const progress = await getProgress(db);
if (progress && progress.selectedCharacter) {
// Returning user — skip welcome, go to forest
showScreen("forest");
} else {
// First time — show welcome
initWelcomeScreen(db, showScreen);
showScreen("welcome");
}
}