shadcn.io is not affiliated with official shadcn/ui
Invite Link Empty Team Error Block for React
A members page for a team nobody has joined: a roster with you as Owner and dashed places, and an invite link with expiry, use limit and approval settings, a QR code, a real copy button and a reset.
Installation
Overview
Give a team with one member a way to fill up, with this invite link members page for React with Base UI. It's the screen of Crewmark, a crew-scheduling app: a whole page with the page's rails and one band across it, split by a hairline drawn with Guides. At the start the heading ("You're the only one here") over a framed roster: you as the Owner, then three dashed places for the people who have not joined. At the end a framed card with the invite link in a read-only Input Group, its QR Code, two Native Selects (how long the link works: 1, 7 or 30 days; how many people can use it: 1, 10 or 50) and a Switch for whether anyone with the link joins as a Member or you approve each person. Changing a setting makes a new link, so the token and the QR code redraw. The one Shine Button, Copy invite link, really copies it, and then the first dashed place reads "Waiting for the first person"; Reset link makes the next token. It's built from Input Group, Native Select, Switch, QR Code, Button, Shine Button and Guides, with a CSS entrance only. For any app that adds people with a link.
FAQ
Where does the token come from?
It is made up for the demo: a small deterministic function turns the settings and the number of resets into nine characters, so the same settings always give the same link and each reset gives the next one. Never build a real token like this. Create the link on your server (a long random token with an expiry, a use limit and a role stored beside it) and return it to the page.
Does Copy invite link really copy?
Yes. It writes the link to the clipboard and says so in the status line ("Copied the invite link. Nothing was sent."). If the browser refuses (a page that is not secure, or a blocked permission) it says that instead and you can select the link in the field by hand. Nothing is sent anywhere.
Why does nobody join?
Because a demo cannot honestly make someone join. The roster stays at one member; copying the link only changes the first dashed place to say what it waits for, and a setting change takes that back, since it makes a new link nobody has seen. In your product the roster fills from your members API.
What does the QR code encode?
The same link as the field, redrawn whenever it changes. It is hidden on a phone, where you share the link itself; it is drawn in black on white by the QR Code item so that scanners read it in any theme.
Related
- Pro
Invite Team Empty State
First runA full-height invite page for a team chat app: a drawn round table with five chairs that fill as email chips are added, a role select with a sentence per role, and one button that counts the invites and lists them.
- Pro
No Team Members Empty State
Team and accessA team directory's empty state as a bulk paste: a box for one person per line, a table that previews every line it reads and flags the ones it cannot, and an isometric office floor where a desk fills for each person.
- Pro
Team Invite Acceptance Login
Workspaces and rolesAn invitation page for a shared team calendar: the workspace tile, Maya invited you to Hollin Row Studio, the Editor role and three members as initials with 9 more beside a form with the invited address locked, a name and a new password, or just the password for an existing account.
- Pro
Expired Invitation Error
Locked and removedA full-screen page for an expired team invitation: the invitation drawn as a pass in a card in a card with an Expired stamp, its code with a Copy button, and an Ask for a new invite button that honestly sends nothing.
- Pro
Seats Full Error
Plans and checkoutA panel for an invite that can't go out because every seat is taken: six seat cells, two inactive members to remove, and one button that reads Add seats until a seat is free and then Send the invite.
- Pro
Expired Holds Empty Cart Error
Empty statesA cart page that is empty because its 30-minute hold ran out: the two released items, one still in stock and one sold out, with Add back, Tell me when it is back, a subtotal and a bar to free delivery.