diff --git a/plugins/minimap/web/CanvasMinimapPage.tsx b/plugins/minimap/web/CanvasMinimapPage.tsx index 7e1bbd1c..117b4c17 100644 --- a/plugins/minimap/web/CanvasMinimapPage.tsx +++ b/plugins/minimap/web/CanvasMinimapPage.tsx @@ -590,7 +590,7 @@ export default function CanvasMinimapPage() { if (!resp.positions) { return null; } const binStr = atob(resp.positions); const buf = new Uint8Array(binStr.length); - for (let i=0; i { const isTypingInInput = (): boolean => { const activeElement = document.activeElement; - if (!activeElement) return false; - + if (!activeElement) { return false; } + const tagName = activeElement.tagName.toLowerCase(); - const inputTypes = ['input', 'textarea', 'select']; - const isContentEditable = activeElement.getAttribute('contenteditable') === 'true'; - + const inputTypes = ["input", "textarea", "select"]; + const isContentEditable = activeElement.getAttribute("contenteditable") === "true"; + // Check if it's an input field or contenteditable element if (inputTypes.includes(tagName) || isContentEditable) { return true; } - + // Check if it's an Ant Design Select dropdown (they use divs with specific classes) - if (activeElement.closest('.ant-select-dropdown') || - activeElement.closest('.ant-select-selector') || - activeElement.classList.contains('ant-select-selection-search-input')) { + if (activeElement.closest(".ant-select-dropdown") + || activeElement.closest(".ant-select-selector") + || activeElement.classList.contains("ant-select-selection-search-input")) { return true; } - + return false; }; @@ -2191,7 +2191,7 @@ export default function CanvasMinimapPage() { }} > {/* Control Panel */} -
Required} + suffixIcon={selectedInstance + ? undefined + : Required} /> @@ -2280,16 +2282,16 @@ export default function CanvasMinimapPage() { DISPLAY OPTIONS -
{/* Timelapse Toggle */} -
@@ -2304,10 +2306,10 @@ export default function CanvasMinimapPage() { loading={loading} disabled={!selectedInstance} /> - {/* Chart Tags Toggle */} -
@@ -2334,23 +2336,25 @@ export default function CanvasMinimapPage() { }} disabled={!selectedInstance} /> - - {showChartTags ? `${getVisibleChartTags().length} shown` : "Hidden"} + {showChartTags + ? `${getVisibleChartTags().length} shown` + : "Hidden"}
{/* Recipes Toggle */} -
@@ -2364,10 +2368,10 @@ export default function CanvasMinimapPage() { }} disabled={!selectedInstance} /> - {/* Players Toggle */} -
@@ -2394,15 +2398,17 @@ export default function CanvasMinimapPage() { }} disabled={!selectedInstance} /> - - {showPlayerPositions ? `${playerPositions.size} online` : "Hidden"} + {showPlayerPositions + ? `${playerPositions.size} online` + : "Hidden"}
diff --git a/test/integration/index.js b/test/integration/index.js index fbbc5fb1..ec8e56bb 100644 --- a/test/integration/index.js +++ b/test/integration/index.js @@ -15,10 +15,12 @@ const { selectTargetCommand, initialize: initializeCtl } = require("@clusterio/c // Make sure permissions from plugins are loaded require("../../plugins/global_chat/dist/node/index"); +require("../../plugins/minimap/dist/node/index"); require("../../plugins/player_auth/dist/node/index"); require("../../plugins/research_sync/dist/node/index"); require("../../plugins/statistics_exporter/dist/node/index"); require("../../plugins/subspace_storage/dist/node/index"); +require("../../plugins/inventory_sync/dist/node/index"); class TestControl extends lib.Link { constructor(connector, subscribe = true) { @@ -319,6 +321,7 @@ before(async function() { await execCtlProcess("plugin add ../../plugins/subspace_storage"); await execCtlProcess("plugin add ../../plugins/inventory_sync"); await execCtlProcess("plugin add ../../plugins/player_auth"); + await execCtlProcess("plugin add ../../plugins/minimap"); console.log("Bootstrapping"); await execController("bootstrap create-admin test"); diff --git a/test/integration/instance.js b/test/integration/instance.js index acba6761..8224105d 100644 --- a/test/integration/instance.js +++ b/test/integration/instance.js @@ -39,6 +39,7 @@ describe("Clusterio Instance", function() { for (const plugin of [ "global_chat", "research_sync", "statistics_exporter", "subspace_storage", "player_auth", "inventory_sync", + "minimap", ]) { await execCtl(`instance config set ${instName} ${plugin}.load_plugin false`); }