Files
khadhroony-bot3/kb-app-demo-desktop/frontend/ts/demo_store_raw.ts

43 lines
2.3 KiB
TypeScript

// file: kb-app-demo-desktop/frontend/ts/demo_store_raw.ts
// version: 7
import * as bootstrap from "bootstrap";
import "simplebar";
import ResizeObserver from "resize-observer-polyfill";
import { invoke } from "@tauri-apps/api/core";
import { frontendDebug, frontendError, installFrontendConsoleBridge } from "./frontend_log";
import { renderJsonViewer, renderTables, setText } from "./demo_store_tables";
import type { DemoStoreRawPayload } from "./bindings/kb_app_demo_desktop/demo_store_raw/DemoStoreRawPayload";
(window as Window & typeof globalThis & { bootstrap?: typeof bootstrap }).bootstrap = bootstrap;
(window as Window & typeof globalThis & { ResizeObserver?: typeof ResizeObserver }).ResizeObserver = ResizeObserver;
async function refreshRaw(): Promise<void> {
setText("#storeRawStatus", "Chargement...");
try {
const payload = await invoke<DemoStoreRawPayload>("load_demo_store_raw");
setText("#storeRawProfile", payload.activeProfileName);
setText("#storeRawConnection", payload.connectionDescriptor);
setText("#storeRawStatus", "OK");
renderTables("#storeRawTable", "#storeRawTableBody", payload.resources);
renderJsonViewer("#storeRawJson", payload);
frontendDebug("kb_app_demo_desktop.frontend.demo_store_raw", "Raw store diagnostics refreshed");
} catch (caughtError) {
const message = caughtError instanceof Error ? caughtError.message : String(caughtError);
setText("#storeRawStatus", `Erreur : ${message}`);
renderJsonViewer("#storeRawJson", { error: message });
frontendError("kb_app_demo_desktop.frontend.demo_store_raw", `Raw store diagnostics loading failed: ${message}`);
}
}
document.addEventListener("DOMContentLoaded", () => {
installFrontendConsoleBridge("kb_app_demo_desktop.frontend.demo_store_raw");
frontendDebug("kb_app_demo_desktop.frontend.demo_store_raw", "Raw store demo window loaded");
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
Array.from(tooltipTriggerList).map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl));
document.querySelector<HTMLButtonElement>("#refreshStoreRawButton")?.addEventListener("click", () => {
void refreshRaw();
});
void refreshRaw();
});