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}