swarm-ui: show a failed wanted-state change in the agent details
The failure was recorded but only the roster card drew it, so the details dialog on a terminal page said nothing when a declaration failed. AgentDetail now shows it under the wanted menu, which the roster's detail panel gets too.
This commit is contained in:
parent
103c842890
commit
fd6953ed7c
1 changed files with 10 additions and 0 deletions
|
|
@ -6,6 +6,7 @@
|
||||||
//
|
//
|
||||||
// Takes the agent's *live* row and the shared `AgentActions`, so a state
|
// Takes the agent's *live* row and the shared `AgentActions`, so a state
|
||||||
// change or a link made here shows wherever else the same row is drawn.
|
// change or a link made here shows wherever else the same row is drawn.
|
||||||
|
import { ApiErrorPanel } from "@hive/shared/api-error-panel.js";
|
||||||
import { Badge } from "@hive/shared/badge.js";
|
import { Badge } from "@hive/shared/badge.js";
|
||||||
import { RelativeTime } from "../../ui/relative-time/RelativeTime.js";
|
import { RelativeTime } from "../../ui/relative-time/RelativeTime.js";
|
||||||
import type { AgentActions } from "./AgentActions.js";
|
import type { AgentActions } from "./AgentActions.js";
|
||||||
|
|
@ -28,6 +29,7 @@ export function AgentDetail({
|
||||||
withTerminal?: boolean;
|
withTerminal?: boolean;
|
||||||
}) {
|
}) {
|
||||||
const { tone, label } = FRESHNESS[row.freshness];
|
const { tone, label } = FRESHNESS[row.freshness];
|
||||||
|
const declareError = actions.actionErrors.get(row.name);
|
||||||
return (
|
return (
|
||||||
<div class="ui-agent-detail">
|
<div class="ui-agent-detail">
|
||||||
<dl class="ui-agent-detail-fields">
|
<dl class="ui-agent-detail-fields">
|
||||||
|
|
@ -62,6 +64,14 @@ export function AgentDetail({
|
||||||
onSelectPaused={actions.selectPaused}
|
onSelectPaused={actions.selectPaused}
|
||||||
onDestroy={actions.requestDestroy}
|
onDestroy={actions.requestDestroy}
|
||||||
/>
|
/>
|
||||||
|
{/* A failed declaration shows here too: on a terminal page's
|
||||||
|
dialog there is no roster card to carry the "failed" badge. */}
|
||||||
|
{declareError ? (
|
||||||
|
<ApiErrorPanel
|
||||||
|
context="the declaration failed"
|
||||||
|
problem={declareError}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
</dd>
|
</dd>
|
||||||
<dt>hive</dt>
|
<dt>hive</dt>
|
||||||
<dd>{row.hive ?? "—"}</dd>
|
<dd>{row.hive ?? "—"}</dd>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue