From bcc6bdd2d7b764208eb13210c02aaa37c2cdac3c Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Wed, 19 Aug 2026 18:47:45 +0200 Subject: [PATCH] refactor(webui): adopt semantic workspace actions --- .../DistributionListsPage.tsx | 82 +++++++++---------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/webui/src/features/distributionLists/DistributionListsPage.tsx b/webui/src/features/distributionLists/DistributionListsPage.tsx index a5abffd..fae882e 100644 --- a/webui/src/features/distributionLists/DistributionListsPage.tsx +++ b/webui/src/features/distributionLists/DistributionListsPage.tsx @@ -14,7 +14,7 @@ import { useRef, useState } from "react"; -import { DialogSection, ToolbarGroup, FormGrid, ActionToolbar, +import { DialogSection, FormGrid, ActionToolbar, ApiError, Button, ConfirmDialog, @@ -38,6 +38,7 @@ import { DialogSection, ToolbarGroup, FormGrid, ActionToolbar, StatePanel, StatusBadge, ToggleSwitch, + WorkspaceActionBar, WorkspaceFrame, WorkspaceLayout, formatDateTime, @@ -549,27 +550,21 @@ export default function DistributionListsPage({ settings, auth }: Props) { contentLabel="Distribution list workspace" contentClassName="dist-lists-workspace" primary={<> - - Distribution Lists - - } - variant="ghost" - disabled={loading || busy} - disabledReason={loading ? DIST_LISTS_I18N.loading : busy ? DIST_LISTS_I18N.busy : undefined} - onClick={() => void reload(selectedId)} - /> - } - variant="primary" - disabled={!canWrite} - disabledReason={!canWrite ? DIST_LISTS_I18N.writeReason : undefined} - onClick={() => requestDiscard(() => setCreateOpen(true))} - /> - - + void reload(selectedId), loading: loading || busy }} + contextActions={Distribution Lists} + createAction={} + variant="primary" + disabled={!canWrite} + disabledReason={!canWrite ? DIST_LISTS_I18N.writeReason : undefined} + onClick={() => requestDiscard(() => setCreateOpen(true))} + />} + /> } > - - + {selected?.name ?? "No distribution list selected"} {selected ? Revision {selected.current_revision} ยท {selected.scope_type} scope : null} - - - - + } + helpAction={} + primaryActions={ ariaLabel="Distribution-list workspace" value={view} onChange={(next) => next === "snapshots" ? void openSnapshots() : setView(next)} @@ -612,25 +610,27 @@ export default function DistributionListsPage({ settings, auth }: Props) { { id: "preview", label: "Preview" }, { id: "snapshots", label: "Snapshots" } ]} - /> - - } + destructiveActions={} variant="danger" disabled={!selected || !canWrite} disabledReason={!canWrite ? DIST_LISTS_I18N.writeReason : !selected ? DIST_LISTS_I18N.noSelection : undefined} onClick={() => setDeleteOpen(true)} - /> - - + />} + discardAction={{ + label: "Discard changes", + onClick: () => requestDiscard(() => void reload(selectedId)), + disabled: !selected + }} + saveAction={{ + label: <> Save revision, + disabled: !selected || busy || !canWrite, + disabledReason: busy ? DIST_LISTS_I18N.busy : !canWrite ? DIST_LISTS_I18N.writeReason : !selected ? DIST_LISTS_I18N.noSelection : undefined, + onClick: () => void saveItem() + }} + />
{error ? {error} : null}