MCPcopy
hub / github.com/stemdeckapp/stemdeck / wireCatalogToggle

Function wireCatalogToggle

static/js/catalog.js:1377–1410  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1375// ─── Catalog panel collapse ───
1376
1377function wireCatalogToggle() {
1378 const toggle = document.getElementById("catalogToggle");
1379 const collapseBtn = document.getElementById("sidebarCollapseBtn");
1380 const app = document.querySelector(".app");
1381 if (!app) return;
1382
1383 const collapsed = localStorage.getItem("stemdeck.catalog.collapsed") === "1";
1384 if (collapsed) {
1385 app.classList.add("cat-collapsed");
1386 collapseBtn?.setAttribute("aria-expanded", "false");
1387 }
1388
1389 function setSidebarCollapsed(isCollapsed) {
1390 app.classList.toggle("cat-collapsed", isCollapsed);
1391 collapseBtn?.setAttribute("aria-expanded", String(!isCollapsed));
1392 localStorage.setItem("stemdeck.catalog.collapsed", isCollapsed ? "1" : "0");
1393 }
1394
1395 collapseBtn?.addEventListener("click", () => {
1396 setSidebarCollapsed(!app.classList.contains("cat-collapsed"));
1397 });
1398
1399 if (toggle) {
1400 toggle.addEventListener("click", (e) => {
1401 // Only expand from within the sidebar body.
1402 if (!app.classList.contains("cat-collapsed")) return;
1403 setSidebarCollapsed(false);
1404 toggle.querySelector("input")?.focus();
1405 });
1406 toggle.addEventListener("keydown", (e) => {
1407 if (e.code === "Enter" || e.code === "Space") { e.preventDefault(); toggle.click(); }
1408 });
1409 }
1410}
1411
1412function wireCatalogRailViews() {
1413 document.querySelector(".rail-library")?.addEventListener("click", () => setCatalogView("library"));

Callers 1

initCatalogFunction · 0.85

Calls 1

setSidebarCollapsedFunction · 0.85

Tested by

no test coverage detected