underbbs/frontend/ts/index.ts

57 lines
2 KiB
TypeScript
Raw Permalink Normal View History

import util from "./util"
import {AdapterState, AdapterData} from "./adapter";
import {Message, Attachment, Author} from "./message"
import {Settings} from "./settings"
import { TabBarElement } from "./tabbar-element"
import { MessageElement } from "./message-element"
import { SettingsElement } from "./settings-element"
import { AdapterElement } from "./adapter-element"
import { ThreadSummaryElement } from "./thread-summary-element"
2024-04-22 00:02:44 +00:00
function main() {
2024-07-16 20:11:46 +00:00
const saveData = localStorage.getItem("settings");
Settings._instance = saveData ? <Settings>JSON.parse(saveData) : new Settings();
2024-04-27 16:50:27 +00:00
customElements.define("underbbs-tabbar", TabBarElement);
customElements.define("underbbs-message", MessageElement);
customElements.define("underbbs-settings", SettingsElement);
customElements.define("underbbs-adapter", AdapterElement);
customElements.define("underbbs-thread-summary", ThreadSummaryElement);
util._("closeErr", util.closeErr);
tabbarInit(Settings._instance.adapters?.map(a=>a.nickname) ?? []);
2024-05-13 00:26:44 +00:00
registerServiceWorker();
}
function tabbarInit(adapters: string[]) {
const nav = util.$("tabbar_injectparent");
if (nav) {
nav.innerHTML = `<underbbs-tabbar data-adapters="" data-currentadapter=""></underbbs-tabbar>`;
}
}
2024-04-22 00:02:44 +00:00
2024-05-13 00:26:44 +00:00
async function registerServiceWorker() {
if ("serviceWorker" in navigator) {
try {
const registration = await navigator.serviceWorker.register("/serviceWorker.js", {
scope: "/",
});
if (registration.installing) {
console.log("Service worker installing");
} else if (registration.waiting) {
console.log("Service worker installed");
} else if (registration.active) {
console.log("Service worker active");
}
} catch (error) {
console.error(`Registration failed with ${error}`);
}
const registration = await navigator.serviceWorker.ready;
(registration as any).sync.register("testdata").then((r:any)=>{console.log("but i will see this!")});
}
}
2024-04-27 16:50:27 +00:00
main();