I checked the latest build. The deploy completed, but the customer token expired.
Chat - Two-pane inbox
Compose a two-pane chat inbox with a persistent conversation rail and an active thread pane.
The two-pane inbox layers a persistent conversation rail on the left and an active thread on the right, on top of the minimal headless shell.
It's the most common production layout for support inboxes, internal copilots, and team communication surfaces.
The demo below shows the full two-pane inbox assembled from the headless primitives:
Key primitives
Chat.Layoutprovides the two-pane frame.ConversationList.Rootowns selection, keyboard navigation, and focus restoration.Conversation.Headergives the thread a stable title and metadata region.MessageList.RootandComposer.Rootcomplete the active thread pane.
When to use this pattern
Use this layout for:
- Support inboxes.
- Internal copilots with conversation history.
- Team communication surfaces with a stable rail of threads.
Use it when users need to switch threads frequently without losing context in the active conversation pane.
Implementation notes
- Keep the default pane order so users learn the layout's mental model before you customize it.
- Render a real thread header instead of jumping straight from the list to the message log.
- Focus on structural composition before layering styling on top.
- Include enough preview metadata in the conversation list to make the persistent rail valuable at a glance.
Composition details
ConversationList.RootandConversation.Rootcoordinate through active conversation state, so the page-level layout code stays small.- Keep
Chat.Layoutas the structural owner of the two-pane arrangement even when you customize the visual layout.
See also
- See Conversation list for details.