---
title: Assistant Chat
description: Bespoke Assistant chat text area, with support for a commands Popover.
component: true
---
## Usage
```tsx
import { AssistantChatForm } from 'ui-patterns/AssistantChat'
```
```tsx
}
value={value}
loading={loading}
disabled={loading}
onValueChange={(e) => setValueState(e.target.value)}
onSubmit={async (event) => {
event.preventDefault()
handleSubmit(event)
}}
/>
```
## Commands
The Assistant Chat support a commands Popover that can be used to display a list of available commands.
It requires a useState and a ref though for it to work correctly.
This is so that the input is still in focus, and the user can still interact with the Popover with the keyboard.
```tsx
const [commandsOpen, setCommandsOpen] = useState(false)
const textAreaRef = createRef()
```