FuzeFront
AR

States — contract, not decoration

Every state the directory must render is frozen here for RED Playwright specs.

b1 · loading

Loading members…

aria-busy="true" row skeletons while the directory page is in flight.

b2 · empty (real)
👤

Just you, for now

A freshly-seeded install has exactly one member: you. Empty is a real state — the directory renders one row, never an error.

b3 · no results (≠ empty)

No members match “zzxq”

No-results is distinct from empty — the directory has members, the query matched none. Offer to clear the search.

b4 · error + retry
⚠️

Couldn't load the directory

A non-2xx from the directory endpoint. Show retry; keep the search box populated.

b5 · pager boundaries

Last page

Showing 2,476–2,481 of 2,481
Page 100 of 100

Prev disabled on page 1, Next disabled on the last page. Page count derives from total / pageSize.

b6 · fail-closed · 403 in place
⛔

You don't have access to the member directory

The directory is an admin/owner (or Employee/ReBAC) capability. A non-privileged caller gets 403 FORBIDDEN rendered in place with zero member data — never a sign-in redirect; only a 401 re-authenticates.

Frame (b) · States · loading · empty · no-results · error · pager-boundary · 403-in-place ← directory  ·  index →
Review · member-directory approve or reject each flow ↓
member-directorypendingApproveReject