TeamCard
Who takes clients, in setup, and the invite each gets on Create my studio, read at a glance: each person a grey box — the owner first with their badge and sign-in email (ownerEmail), everyone else with email · permissions, or that the email is still needed. Edit and Add person open the person's sheet (a bottom sheet on a phone, a dialog from sm): name, email and permissions — the owner's, their name alone.
Playground
Team
MilaOwner
Katka
Email needed
Everyone gets an invite to Okami when you create the studio. They all work the studio hours and do every service; change that later.
Edit a field: the patch it sends shows here.
import { TeamCard } from "@/components/shared/team-card";
<TeamCard
staff={draft.staff}
onChange={(patch) => saveDraft(patch)}
/>Adding and removing
Edit opens someone's sheet, filled in; Add person opens it empty — the first person added is the owner, by name alone. Save or Add checks them whole and points at the field to fix: a name or an email already on the team, an email that isn't one. Remove asks first, then offers Undo in a toast that stays until it's taken or dismissed.
Team
No one yet.
Everyone gets an invite to Okami when you create the studio. They all work the studio hours and do every service; change that later.
import { TeamCard } from "@/components/shared/team-card";
<TeamCard staff={draft.staff} onChange={saveDraft} />Collapsed
import { TeamCard } from "@/components/shared/team-card";
<TeamCard staff={draft.staff} onChange={saveDraft} collapsed />API reference
| Prop | Type | Default | Description |
|---|---|---|---|
| staff | string[] | — | The names of the people who take clients. |
| onChange | (patch: DraftPatch) => void | — | Called with the whole checked list after each saved change. |
| labels | Partial<TeamCardLabels> | English | Every word, including person(position), remove(name) and removed(name). |
| collapsed | boolean | false | One line: the names. |
| hideTitle | boolean | false | The heading is read, not shown — in the conversation, where Okami's line introduces the card. |
Guidelines
- “Just me, me and my team, or my team, not me” is Okami's question, asked with chips. The card holds the answer: names.
- With “Just me”, the one name is the owner's. Don't ask for it twice.