swarm-ui: link a matrix account to an agent
New per-row action on AgentsPage: a quiet-variant icon badge (LinkIcon,
matching the LinksMenu/SettingsMenu chrome-not-chip convention) opens a
dialog with an account/token/homeserver form, PUTting
/api/hives/{hive}/agents/{agent}/matrix-accounts/{account} per the
contract atlas posted on hyperhive#3726 (issuecomment-72355).
Built against the contract before the backend endpoint exists per
atlas's explicit note that it doesn't change when the implementation
lands -- this 404s until that item merges. No linked-accounts list:
no route exposes one, and a credential store shouldn't hand a secret
back out anyway, so this is a blind set/update action, matching
mara's 1:1-for-now ruling on the issue.
Verified: tsc --noEmit and nix fmt clean, esbuild build clean. Real
DOM-interaction screenshots against a throwaway mock server (deleted
before this commit, never tracked) -- table column render + disabled
state on a hiveless row, dialog open, form filled with the token
masked, and the success path end to end (token field clears, success
message shows) against a mocked 200 response.
This commit is contained in:
parent
0d88ca5e7f
commit
767f87610a
3 changed files with 220 additions and 0 deletions
|
|
@ -0,0 +1,21 @@
|
|||
/* <LinkMatrixAccountForm> — rendered inside a `Dialog` from `AgentsPage`,
|
||||
one panel wide (no second info column — this form has no "what this
|
||||
creates" explanation worth a whole sibling card the way
|
||||
`CreateAgentForm` does, just the one-line note already in the JSX).
|
||||
Column layout + `.link-matrix-account-result-ok` mirror
|
||||
`CreateAgentForm.css`'s `.create-agent-form`/`.create-agent-result-ok`
|
||||
exactly — same shape, kept as its own file rather than sharing that
|
||||
one since "form" here means a different component's layout, not a
|
||||
generic kit primitive (see that file's own top comment on why
|
||||
`ui/form-field` stays the only truly shared piece). */
|
||||
.link-matrix-account-form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 0.75em;
|
||||
margin-top: 1em;
|
||||
}
|
||||
.link-matrix-account-result-ok {
|
||||
margin-top: 1em;
|
||||
color: var(--green);
|
||||
}
|
||||
Loading…
Reference in a new issue