diff --git a/main.js b/main.js index 514fa4a7..8b9602ff 100644 --- a/main.js +++ b/main.js @@ -317,7 +317,7 @@ async function generateMapOnLoad() { applyPreset(); // apply saved layers preset fitMapToScreen(); focusOn(); // based on searchParams focus on point, cell or burg from MFCG - loadAssistant(); + toggleAssistant(); } // focus on coordinates, cell or burg provided in searchParams @@ -367,9 +367,17 @@ function focusOn() { } } -function loadAssistant() { +let isAssistantLoaded = false; +function toggleAssistant() { + const assistantContainer = byId("chat-widget-container"); const showAssistant = byId("azgaarAssistant").value === "show"; - if (showAssistant) import("./libs/openwidget.min.js"); + + if (showAssistant) { + if (isAssistantLoaded) assistantContainer.style.display = "block"; + else import("./libs/openwidget.min.js").then(() => (isAssistantLoaded = true)); + } else if (isAssistantLoaded) { + assistantContainer.style.display = "none"; + } } // find burg for MFCG and focus on it diff --git a/modules/ui/options.js b/modules/ui/options.js index b7b643a1..b24409f5 100644 --- a/modules/ui/options.js +++ b/modules/ui/options.js @@ -148,6 +148,7 @@ optionsContent.addEventListener("change", event => { else if (id === "yearInput") changeYear(); else if (id === "eraInput") changeEra(); else if (id === "stateLabelsModeInput") options.stateLabelsMode = value; + else if (id === "azgaarAssistant") toggleAssistant(); }); optionsContent.addEventListener("click", event => {