Member Inbox And ThreadPRO

A two-pane messaging panel: a selectable conversation list with unread dots on the left, and the chosen thread on the right with member and staff bubbles, timestamps, and a composer row.

Chat22: Member Inbox And Thread

Two-pane messaging panel: a selectable conversation list carrying snippets, times, and unread dots on the left, and the chosen thread on the right with member and staff bubbles, timestamps, and a composer row along the bottom.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/chat22?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/chat22?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/chat22.tsx plus the badge23 component it uses for the eyebrow.

Quick start

The installed file exports chat22Demo alongside the block: the exact props behind the preview above. Spread it to get a working inbox in one line.

tsx
import { Chat22, chat22Demo } from "@/components/beste/block/chat22";

export default function Page() {
  return <Chat22 {...chat22Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Chat22 } from "@/components/beste/block/chat22";

export default function Page() {
  return (
    <Chat22
      badge={{ label: "Messaging" }}
      heading="The conversation stays on the record"
      description="Members message the practice, not a person's phone."
      items={[
        {
          name: "Rowan Blake",
          role: "Care plan, week 6",
          snippet: "That works, thank you.",
          time: "09:12",
          unread: true,
          status: "Replies usually within an hour",
          messages: [
            { from: "member", text: "Can I move Thursday to the afternoon?", time: "08:54" },
            { from: "staff", text: "We have 14:30 or 15:15 with Priya.", time: "09:02" },
            { from: "member", text: "That works, thank you.", time: "09:12" },
          ],
        },
      ]}
      labels={{
        inboxLabel: "Inbox",
        composerPlaceholder: "Write a reply",
        sendLabel: "Send",
      }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Monospace eyebrow above the hairline rule, rendered via Badge23
headingstringSection heading in the left column
descriptionstringSupporting paragraph, right-aligned from md up
itemsConversation[][]Inbox entries, each carrying its own thread
labelsChat22Labels{}Inbox kicker and composer copy, see below
classNamestringExtra classes for the outer <section>
ts
type Message = {
  from: "member" | "staff";
  text: string;
  time: string;
};

type Conversation = {
  name: string;
  role: string;
  snippet: string;
  time: string;
  unread?: boolean;
  status: string;
  messages?: Message[];
};

type Chat22Labels = {
  inboxLabel?: string;
  composerPlaceholder?: string;
  sendLabel?: string;
};

Behavior notes

Wiring the form up

This block ships the composer markup only; state, validation, and sending are yours to add. Our guide wires field markup like this to React Hook Form, TanStack Form, and Formisch on one field system.

More Chat blocks

View all Chat
PRO

chat31

Two Sides Of One Conversation

A messaging section splitting a hairline matrix between the staff view and the member view, each half floating its own live asset above a title and a list of what that side gets.

PRO

chat12

Conversational Thread with Reactions

Chat message thread with rich formatting, copy and thumbs-up/down action buttons on AI messages, and time-grouped message sections. Features hover-revealed action bars and smooth animations.

PRO

chat23

Messaging Overview Split

A messaging section pairing a light heading, a hairline table of response figures, and two actions with an image tile that floats a live conversation thread.

PRO

chat11

Complete AI Chat Interface

Full-featured chatbot window with message thread, AI and user avatars, timestamp display, typing indicator, and rich input area with send button. Suitable as the primary chat experience.

PRO

chat4

Rich Prompt Input with Smart Suggestions

Sophisticated AI prompt input area with auto-expanding textarea, attachment and image upload buttons, model selector, and a grid of contextual prompt suggestion cards. Inspired by ChatGPT and Claude home screens.

PRO

chat27

Inverted Out Of Hours Panel

A support section built as one dark panel, with a light heading, three hairline promises about who answers, two actions, and a bordered column floating a live on-call conversation.