Frontend: space member picker — candidate dropdown + type-ahead + already-member / not-found validation #217

Closed
opened 2026-08-13 15:17:44 +00:00 by Cordy · 1 comment
Owner

Parent: #211. The UX half of #210.

Replace the free-text add-member field with a real picker over the app-owned membership model:

  • Dropdown of candidate users to pick from, and type-ahead filtering as you type.
  • On select, validate: user exists, and whether they're already a member of this space — show that state instead of silently doing nothing.
  • Clear success/failure feedback on add/remove; reflect role (write/read).

Candidate source: the users the instance knows (local users; or via the read-only IdP client if configured). Where no candidate list is available, fall back to validated free-text with an existence check. Use the frontend-design skill for the picker; keep it inside the insecure-context constraints (no async clipboard etc.).

Acceptance: typing filters candidates; selecting an existing member is flagged; add/remove give feedback; works against the app-owned store.

Parent: #211. The UX half of #210. Replace the free-text add-member field with a real picker over the app-owned membership model: - **Dropdown of candidate users** to pick from, and **type-ahead** filtering as you type. - On select, **validate**: user exists, and whether they're **already a member** of this space — show that state instead of silently doing nothing. - Clear success/failure feedback on add/remove; reflect role (write/read). Candidate source: the users the instance knows (local users; or via the read-only IdP client if configured). Where no candidate list is available, fall back to validated free-text with an existence check. Use the `frontend-design` skill for the picker; keep it inside the insecure-context constraints (no async clipboard etc.). **Acceptance:** typing filters candidates; selecting an existing member is flagged; add/remove give feedback; works against the app-owned store.
Cordy referenced this issue from a commit 2026-08-13 17:12:07 +00:00
Author
Owner

Core UX delivered (PR #225): live already-member/owner validation + a disabled no-op Add + clear "Added {u}" feedback, working on every instance. The candidate dropdown/autocomplete needs an enumerable user directory (OIDC-without-admin-client can't provide one), so it's split into #226. Closing this as the validation/feedback goal; #226 tracks the autocomplete polish.

Core UX delivered (PR #225): live already-member/owner validation + a disabled no-op Add + clear "Added {u}" feedback, working on every instance. The candidate **dropdown/autocomplete** needs an enumerable user directory (OIDC-without-admin-client can't provide one), so it's split into #226. Closing this as the validation/feedback goal; #226 tracks the autocomplete polish.
Cordy closed this issue 2026-08-13 17:13:45 +00:00
Sign in to join this conversation.
No labels
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#217
No description provided.