Quick replies

A row of tappable canned responses to drop above a composer. Await-aware: the chosen chip dims while your send resolves, so a slow network can't double-send.

Tap a reply.

Installation

npx shadcn@latest add @handset/quick-replies

Usage

import { QuickReplies } from "@/components/handset/quick-replies";

<QuickReplies
  replies={["On my way", "Running late", "Reschedule?"]}
  onSelect={(text) => thread.send({ body: text })}
/>

Pure UI — onSelect is yours to wire (to useThread().send, a template, wherever). Bring the replies from your own config or the top intents in a tenant's inbox.

Props

Props
PropTypeDefaultDescription
repliesstring[]—The canned responses to show.
onSelect(text: string) => void | Promise<void>—Fired with the chosen reply.
disabledboolean—Disable all chips.
classNamestring—Merged onto the row.