Component

CustodyChoice

It makes a single child wait in intake until the user chooses Desk, Vault or Courier. The choice moves the actual content into a different named station, and Recall brings it back to intake.

Possible use

It could make a reviewer decide whether a handoff note belongs on the desk, in the vault or with a courier, or let a presenter route one agenda label to the table, the archive or the next speaker.

Reasonable alternative

A reasonable local alternative is one explicit state near the data and one conditional render. Publishing three ceremonial destinations as a reusable custody machine is difficult to defend.

01 / Preview

Try it yourself.

Preview Interactive
Custody decisionAwaiting a destination
intake
Needs a destination
Deskempty
Vaultempty
Courierempty
Mechanism
1
Start with the notice waiting in intake.
2
Choose Desk, Vault or Courier. Each button moves the actual notice into a different station.
3
The chosen destination stays visible while the other stations remain empty.
4
Recall the notice when a custody decision has become too official.

02 / Usage

Put it somewhere.

example.tsxTSX
import { CustodyChoice } from "gra-ui";
import "gra-ui/styles.css";

export function RoutedNotice() {
  return <CustodyChoice><span>Needs a destination</span></CustodyChoice>;
}

03 / API

Small surface area.

PropTypeDescription
childrenReactNodeThe content waiting in intake and moved to the chosen custody station.