Phone system
Texting, call history, and voicemail behind three tabs. The one-import version of 'your product has a phone system now.'
Installation
npx shadcn@latest add @handset/phone-systemPulls in the whole tree: messaging (→ inbox, thread, composer), call-log (→ call-transcript), and voicemail-player. One command installs nine components.
Usage
import { HandsetProvider } from "@handset/react";
import { PhoneSystem } from "@/components/handset/phone-system";
export default function CommunicationsPage() {
return (
<HandsetProvider>
<div className="h-[700px]">
<PhoneSystem />
</div>
</HandsetProvider>
);
}This is the demo block — the fastest path from zero to "look what our product does now." Real products usually keep it as-is for an ops/communications page and use the individual components (ContactTimeline, ClickToCallButton) where they belong in context. The tabs are ~40 lines of the copy in your repo; restructure freely.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| tenantId | string | — | Scope to one tenant (usually handled server-side). |
| defaultTab | "messages" | "calls" | "voicemail" | "messages" | Which tab opens first. |
| className | string | — | Merged onto the wrapper. |