// file: kb-app-demo-desktop/frontend/ts/main.ts // version: 1 import * as bootstrap from "bootstrap"; import MarkdownIt from "markdown-it"; import ResizeObserver from "resize-observer-polyfill"; import "simplebar"; import { invoke } from "@tauri-apps/api/core"; import { frontendDebug, frontendError, installFrontendConsoleBridge } from "./frontend_log.ts"; (window as Window & typeof globalThis & { bootstrap?: typeof bootstrap }).bootstrap = bootstrap; (window as Window & typeof globalThis & { ResizeObserver?: typeof ResizeObserver }).ResizeObserver = ResizeObserver; const markdownRenderer = new MarkdownIt({ html: false, linkify: true, typographer: true, }); async function loadReadme(readmeContent: HTMLElement): Promise { try { const readme = await invoke("load_project_readme"); readmeContent.innerHTML = markdownRenderer.render(readme); } catch (caughtError) { const message = caughtError instanceof Error ? caughtError.message : String(caughtError); readmeContent.textContent = `Erreur pendant le chargement du README : ${message}`; frontendError("kb-app-demo-desktop.frontend.main", `README loading failed: ${message}`); } } document.addEventListener("DOMContentLoaded", async () => { installFrontendConsoleBridge("kb-app-demo-desktop.frontend.main"); frontendDebug("kb-app-demo-desktop.frontend.main", "main window loaded"); const readmeContent = document.querySelector("#readmeContent"); if (readmeContent) { await loadReadme(readmeContent); } }); const openDemoBackfillLink = document.querySelector("#openDemoBackfillLink"); if (openDemoBackfillLink) { openDemoBackfillLink.addEventListener("click", event => { event.preventDefault(); void invoke("open_demo_backfill_window"); }); }