import { apiFetch } from "./api.js"; import { dom } from "./dom.js"; import { state } from "./state.js"; const PAGE_SIZE = 10; let _page = 1; let _hasMore = false; let _loading = false; function formatTime(value) { return value || "--"; } function makeCard(item) { const row = document.createElement("div"); const level = (item.level || "info").toLowerCase(); row.className = "event-card"; row.innerHTML = `${level.toUpperCase()}${formatTime(item.created_at)}${item.event_type}`; return row; } async function loadMore() { if (_loading || !_hasMore) return; _loading = true; const params = new URLSearchParams({ page: String(_page), page_size: String(PAGE_SIZE) }); if (state.selectedUnitId) params.set("unit_id", state.selectedUnitId); try { const response = await apiFetch(`/api/event?${params.toString()}`); const items = response.data || []; items.forEach((item) => dom.eventList.appendChild(makeCard(item))); _hasMore = items.length === PAGE_SIZE; _page += 1; } finally { _loading = false; } } export async function loadEvents() { _page = 1; _hasMore = false; _loading = false; dom.eventList.innerHTML = ""; const params = new URLSearchParams({ page: "1", page_size: String(PAGE_SIZE) }); if (state.selectedUnitId) params.set("unit_id", state.selectedUnitId); _loading = true; try { const response = await apiFetch(`/api/event?${params.toString()}`); const items = response.data || []; if (!items.length) { dom.eventList.innerHTML = '