shadcn.io is not affiliated with official shadcn/ui
Discord Linked Members List Integration Block for React
A linked-members list for a community tool connected to Discord: a search that marks the letters you type, fourteen members six to a page with their level roles and link state, a Retry on the one link that failed, and a pager.
Installation
Overview
An integration synced-objects list for React with Base UI, written for Hearthbell, a fictional community announcements and role-sync tool, and its Discord bot. A compact header ("Hearthbell knows who is linked") has the mark pair under its sentence and a search field at its end. Rows run from rail to rail under a band rule: an initial, the handle (the letters you type are marked as you type), the member's level roles and a state word with an icon: Linked, Pending or Unlinked. Fourteen members show six to a page. One link failed, and its row has a Retry that turns to "Retrying" and then to Linked, in the same row height. The pagination sits in a closing band at the foot with a polite line ("Showing 1 to 6 of 14 members") that also says search and retries work here only. Every row has one fixed height and the list keeps six rows of room, so a short last page or a narrow search never moves the pager. The page's rails and top rule come from the Guides spine, so it lines up with its neighbours in a stack. It's built from Input Group, Search Highlight Text, Pagination, Avatar, Badge, Button, Status and Guides, with your theme's tokens for every colour. Discord is named in text only: no logo, colour or wordmark ships with the block. The product and the members are example data.
FAQ
How does the search work?
It filters as you type: a member shows when their handle contains what you typed (case ignored), and every match is marked in the handle by Search Highlight Text with a light foreground tint, so any theme reads it. Typing returns to page 1; "Clear" empties the field and puts focus back in it. The polite line counts what matched ("Showing 1 to 3 of 3 matching members"), and a search that finds nothing says so in the list's space. Edit matching to search more than the handle.
Why doesn't the page move when I change page or search?
Every row has the same fixed height (taller on a phone, where the state sits on its own line) and the list reserves the height of six rows, so a page of two members, or a search with one result, leaves the pager exactly where it was. The pager links are real addresses (?page=2) that the click turns into a state change in place.
What does Retry do?
One member, cobb.ember, has a link that failed. Its Retry turns to "Retrying" for about 900 milliseconds, with a timer that is cleared if the block unmounts, then the row reads Linked. It is a stand-in for your own request: nothing is sent, and the polite line says "Retry queued in this demo, nothing was sent." The button stays focusable while it works (it is aria-disabled, not removed).
How are the states told apart?
By an icon and a word in an outline badge, never colour alone: Linked, Pending and Unlinked. The failed link adds a small red dot, the only colour on the page, because it is the one exception. Roles are quiet secondary badges: change roles on a member to list theirs.
How does it fit on a phone and in right-to-left layouts?
On a phone each row stacks the handle, the roles and the state on three lines beside the initial, and the search sits under the header. Handles keep their left-to-right order in a right-to-left layout, while the rows and the pager flip. The header fades up once on load; with reduced motion it simply appears.
Related
- Pro
Discord Detail Integration
Scopes and stepsAn integration detail section for a community announcements tool joining a Discord server: an invite card whose permissions integer and link follow eight permission switches, each with its documented bit value.
- Pro
Discord Level Roles Grid Integration
Switch and tick gridsA grid of six Discord level roles for a community tool: each cell a role chip, a switch and a number stepper for the messages that earn it, with a derived time line and an error when the thresholds stop rising.
- Pro
Discord Setup Integration
Choose and verifyA connect flow for a community tool and Discord: a three-step wizard (authorize, pick a server, map three plans to roles with Selects) beside the server's role ladder with the bot's own role marked, ending in Finish setup.
- Pro
Datadog Monitors List Integration
Grouped and triagedA synced-monitors list for a post-incident review tool connected to Datadog: a facet rail of checkbox groups with live counts beside nine monitors, each with its query, place and state, and a Retry on the one that could not be read.
- Pro
Pagination Blog
Post listsA transit-planning blog's archive as rows, four to a page over three pages, with the catalog pagination in a band at the foot, a polite 'Showing 5 to 8 of 12' line and a height that never changes between pages.
- Pro
Search Grid Blog
Card gridsA developer-tools blog behind a search field: a slash shortcut focuses it, typing keeps the posts whose title or summary holds the words and marks them, and six cells draw tiny tool windows as covers.