diff --git a/bundles/media/manifest.json b/bundles/media/manifest.json index e9bbd0e97..85f6b94c0 100644 --- a/bundles/media/manifest.json +++ b/bundles/media/manifest.json @@ -1,7 +1,7 @@ { "id": "media", "name": "Media Hub", - "version": "1.1.2", + "version": "1.1.3", "description": "News aggregation, RSS feeds, YouTube channels, podcasts, a daily spoken briefing read by the local voice, playlists, smart folders, email digests", "type": "mcp-server", "author": "Crow", diff --git a/bundles/media/panel/media.js b/bundles/media/panel/media.js index 531179728..99782cbd8 100644 --- a/bundles/media/panel/media.js +++ b/bundles/media/panel/media.js @@ -550,7 +550,7 @@ export default { if (hasLibrary) tabs.push({ id: "library", label: "Library" }); if (hasIptv) tabs.push({ id: "live", label: "Live" }); if (hasKodi) tabs.push({ id: "remote", label: "Remote" }); - const tabNav = `
+ const tabNav = `
${tabs.map((t) => `${t.label}`).join("")}
`; diff --git a/registry/add-ons.json b/registry/add-ons.json index d5c2557f0..29727c972 100644 --- a/registry/add-ons.json +++ b/registry/add-ons.json @@ -3310,7 +3310,7 @@ { "id": "media", "name": "Media Hub", - "version": "1.1.2", + "version": "1.1.3", "description": "News aggregation, RSS feeds, YouTube channels, podcasts, a daily spoken briefing read by the local voice, playlists, smart folders, email digests", "type": "mcp-server", "author": "Crow", diff --git a/tests/media-panel.test.js b/tests/media-panel.test.js index 9d1cc9fc5..77b901513 100644 --- a/tests/media-panel.test.js +++ b/tests/media-panel.test.js @@ -182,3 +182,11 @@ test("the page script is plain JavaScript inside a template literal: it parses, assert.doesNotMatch(src.slice(tabStart, tabEnd), /onclick=/, "the Briefings tab has no inline handlers"); assert.doesNotMatch(src, /process\.env\.HOME \|\| "", "\.crow", "bundles"/, "the panel looks for its own instance's installed copy"); }); + +test("the tab row wraps on a narrow screen instead of widening the page", async () => { + const { document } = await render({ tab: "briefings" }); + const nav = document.querySelector(".media-tabs"); + assert.ok(nav, "the tab row is there"); + assert.match(nav.getAttribute("style"), /flex-wrap:\s*wrap/); + assert.ok(nav.querySelectorAll("a").length >= 7); +});