## Usage
```jsx
import React from "react";
import { Amplify } from "aws-amplify";
import {AmplifyChatbot} from "@aws-amplify/ui-react";
import awsconfig from "./aws-exports";
Amplify.configure(awsconfig);
const App = () => (
);
```
import all0 from "/src/fragments/ui/angular/configure-module.mdx";
_app.component.html_
```html
```
import all2 from "/src/fragments/ui/vue/configure-app.mdx";
_App.vue_
```html
```
## Use Cases
### Setting Up Voice Chat
In order for voice input to work with Amazon Lex, you may have to enable output voice in [AWS Management Console](https://console.aws.amazon.com/console/home). Under the Amazon Lex service, click on your configured Lex chatbot and go to settings -> General and pick your desired output voice.
### Listening to Chat Fulfillment
Once a conversation session is finished, `amplify-chatbot` emits a custom event `chatCompleted` that your app can listen to:
```js
function App() {
const handleChatComplete = (event) => {
const {data, err} = event.detail;
if (data) console.log("Chat fulfilled!", JSON.stringify(data));
if (err) console.error("Chat failed:", err);
};
useEffect(() => {
const chatbotElement = document.querySelector("amplify-chatbot");
chatbotElement.addEventListener("chatCompleted", handleChatComplete);
return function cleanup() {
chatbotElement.removeEventListener("chatCompleted", handleChatComplete);
};
}, []);
}
```
```html
```
```html
```
```js
const handleChatComplete = (event: Event) => {
const { data, err } = (event as any).detail;
if (data) console.log('Chat fulfilled!', JSON.stringify(data));
if (err) console.error('Chat failed:', err);
};
export class AppComponent implements OnInit, OnDestroy {
ngOnInit(): void {
const chatbotElement = document.querySelector('amplify-chatbot');
chatbotElement.addEventListener('chatCompleted', handleChatComplete);
}
ngOnDestroy(): void {
const chatbotElement = document.querySelector('amplify-chatbot');
chatbotElement.removeEventListener('chatCompleted', handleChatComplete);
}
}
```