Replace breadcrumbs with back links; keep the zone header on tab switches

The zone page's breadcrumb (Zones › view) linked the view to a filtered
zone list while the view link below it opened the view. It is now a
single "← Zones" link back to the list with its filters, and a changeset
has "← History". View links carry where they came from, so the views page
offers "← example.org (external)" or "← Zones" (only the UI's own #/
addresses are accepted).

Switching a zone's tabs no longer blanks the page: the header and tabs
show at once and the previous tab stays, faded, until the next has
loaded. The router shows "Loading…" only for pages that take a while.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
abrown38andClaude Opus 5.5 committed 2026-10-09 15:07:55 +00:00
1 parent db9ebb14dd
commit 4b79abf296
8 files changed
+86 -40

No files matched your search

+2 -2
View File
@@ -1,4 +1,4 @@
import { h, mount, table, toast, confirmDialog, diffView, time, fmtTime, badge, plural, crumbs, lastList } from "../ui.js";
import { h, mount, table, toast, confirmDialog, diffView, time, fmtTime, badge, plural, backLink, lastList } from "../ui.js";
import { api, get, useDraft } from "../api.js";
export async function render(el, params) {
@@ -30,7 +30,7 @@ async function detail(el, id) {
mount(el,
h("div", { class: "page-head" },
h("div", { class: "grow" },
crumbs(["History", lastList.history || "#/history"]),
backLink("History", lastList.history || "#/history"),
h("h1", null, "Changeset #" + c.id),
h("div", { class: "muted" }, c.description || "(no description)")),
h("div", { class: "actions" },