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.
21 lines
889 B
CSS
21 lines
889 B
CSS
/* <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);
|
|
}
|