Repository navigation
Expand file tree
/
Copy pathChat.js
More file actions
56 lines (50 loc) · 1.52 KB
/
Copy pathChat.js
File metadata and controls
56 lines (50 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import React, { useState, useCallback, useEffect } from 'react'
import { GiftedChat } from 'react-native-gifted-chat'
import axios from 'axios';
export function Chat() {
const [messages, setMessages] = useState([]);
useEffect(() => {
setMessages([
{
_id: 1,
text: 'Hello developer',
createdAt: new Date(),
user: {
_id: 2,
name: 'Coach',
avatar: 'https://placeimg.com/140/140/any',
},
},
])
}, [])
const onSend = useCallback((messages = []) => {
setMessages(previousMessages => GiftedChat.append(previousMessages, messages))
axios.post(
"http://10.0.2.2:3000/messages",
{ "message": messages[0].text }
).then((response) => {
let answer = response.data.choices[0].text
console.log(answer)
let message = {
text: answer,
createdAt: new Date(),
user: {
_id: 2,
name: "Coach",
avatar: 'https://placeimg.com/140/140/any',
},
}
setMessages(previousMessages => GiftedChat.append(previousMessages, message))
}
)
}, [])
return (
<GiftedChat
messages={messages}
onSend={messages => onSend(messages)}
user={{
_id: 1,
}}
/>
)
}