From 95470b2ccdcf8092a3f7089189624854b554cf1f Mon Sep 17 00:00:00 2001 From: Dami Date: Sat, 25 Jul 2026 19:13:21 -0600 Subject: [PATCH] fix(website): the hero shows a download button and a link, nothing else MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The release note under the download had grown into a paragraph: version, platform, the Gatekeeper explanation, and an instruction to verify the SHA-256 — all of it repeating what the button already says or what belongs on the release page. The unavailable states were no better, explaining which platform comes first. A landing page hero is not the place for it. Both notes are now just "release history". Removing the only reader of `#portal-release-status` made three things dead: that element, `portalManifestReason`, and `portalManifestStatus`. They are gone rather than left assigned and never read. `build.note` goes with them. This also removes the element whose absence used to freeze the download button, since `updatePortalDownload` no longer looks it up at all. --- website/dither.js | 23 +++-------------------- website/index.html | 4 ++-- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/website/dither.js b/website/dither.js index 7fa782a..e658eb8 100644 --- a/website/dither.js +++ b/website/dither.js @@ -380,8 +380,6 @@ "windows-x86": null, }; var ARCH_NAMES = { arm: "arm64", x86: "x86_64" }; - var portalManifestStatus = "loading"; - var portalManifestReason = "checking the signed release manifest"; function portalBuildFromManifest(manifest) { if (!manifest || manifest.format !== 1 || manifest.product !== "portal-client" || @@ -393,7 +391,6 @@ if (build.available !== false || typeof build.reason !== "string" || !build.reason.trim()) { throw new Error("invalid unavailable Portal release entry"); } - portalManifestReason = build.reason.trim(); return null; } var version = build.version; @@ -410,7 +407,6 @@ return { href: build.download_url, label: "download Portal " + version + " · macOS arm64", - note: "Portal " + version + " · macOS arm64 · not notarized: macOS will block the first launch until you allow it in System Settings › Privacy & Security. Verify the SHA-256 before opening.", }; } @@ -419,39 +415,29 @@ return el ? el.value : null; } + // The button label already carries the state. The hero does not repeat it as + // prose, so nothing writes release notes into the panel. function updatePortalDownload() { var button = document.getElementById("portal-download"); - var note = document.getElementById("portal-release-status"); var os = pickedPortalValue("portal-os"); var arch = pickedPortalValue("portal-arch"); - if (!button || !note || !os || !arch) return; + if (!button || !os || !arch) return; var build = PORTAL_BUILDS[os + "-" + arch]; if (build) { button.classList.remove("disabled"); button.removeAttribute("aria-disabled"); button.setAttribute("href", build.href); button.textContent = build.label; - note.textContent = build.note; } else { button.classList.add("disabled"); button.setAttribute("aria-disabled", "true"); button.removeAttribute("href"); // href-less anchor: unfocusable, unclickable button.textContent = "no " + os + " " + ARCH_NAMES[arch] + " build yet"; - if (os === "macos" && arch === "arm" && portalManifestStatus !== "loaded") { - note.textContent = portalManifestReason + " · no download offered"; - } else if (os === "macos" && arch === "arm" && portalManifestReason) { - note.textContent = portalManifestReason; - } else { - note.textContent = "portal for " + os + "/" + ARCH_NAMES[arch] + - " is not released yet · macos arm64 comes first"; - } } } function loadPortalReleaseManifest() { if (typeof window.fetch !== "function") { - portalManifestStatus = "failed"; - portalManifestReason = "signed release manifest could not be loaded"; updatePortalDownload(); return; } @@ -464,11 +450,8 @@ return response.json(); }).then(function (manifest) { PORTAL_BUILDS["macos-arm"] = portalBuildFromManifest(manifest); - portalManifestStatus = "loaded"; }).catch(function () { PORTAL_BUILDS["macos-arm"] = null; - portalManifestStatus = "failed"; - portalManifestReason = "signed release manifest is unavailable or invalid"; }).then(updatePortalDownload); } diff --git a/website/index.html b/website/index.html index a99fe34..148053a 100644 --- a/website/index.html +++ b/website/index.html @@ -80,14 +80,14 @@ no macos arm64 build yet -

portal for macos/arm64 is not released yet · macos arm64 comes first · release history

+

release history

Games over QUIC: low-latency SteamOS streaming over iroh
Work in progress. Not a finished product.