|
@@ -5,7 +5,7 @@ import withLayout from '@/layout'
|
5
|
5
|
import { API_QUERY_USERINFO_BYID } from '@/constants/api'
|
6
|
6
|
import { ROLE_CODE } from '@/constants/user'
|
7
|
7
|
import { uploadFiles, fetch } from '@/utils/request'
|
8
|
|
-import { queryChatHistory } from '@/services/chat'
|
|
8
|
+import { queryChatHistory, setMessageReaded } from '@/services/chat'
|
9
|
9
|
import im from '@/utils/im'
|
10
|
10
|
import { getDateForHumans } from '@/utils/chatDate'
|
11
|
11
|
import '@/assets/css/iconfont.css'
|
|
@@ -117,10 +117,6 @@ export default withLayout((props) => {
|
117
|
117
|
setReceiver(res)
|
118
|
118
|
getChatHistory({ pageNumber: 1 })
|
119
|
119
|
})
|
120
|
|
-
|
121
|
|
- const unsubsribe = im.listen((message) => {
|
122
|
|
-
|
123
|
|
- })
|
124
|
120
|
} else {
|
125
|
121
|
Taro.showToast({
|
126
|
122
|
title: '无聊天对象,请退出重试',
|
|
@@ -130,6 +126,17 @@ export default withLayout((props) => {
|
130
|
126
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
131
|
127
|
}, [friend])
|
132
|
128
|
|
|
129
|
+ useEffect(() => {
|
|
130
|
+ return im.listen((message) => {
|
|
131
|
+ const receiveData = JSON.parse(message)
|
|
132
|
+ setPageList(PageList.concat(receiveData))
|
|
133
|
+ // 滚动到底部
|
|
134
|
+ scroll()
|
|
135
|
+ // 更新记录为已读
|
|
136
|
+ setMessageReaded(receiveData.chatId)
|
|
137
|
+ })
|
|
138
|
+ }, [PageList, scroll])
|
|
139
|
+
|
133
|
140
|
return (
|
134
|
141
|
<view className='chatDetail flex-v'>
|
135
|
142
|
<view className='flex-item'>
|