|
@@ -9,6 +9,7 @@ import {
|
|
|
} from 'react'
|
|
|
import { useTranslation } from 'react-i18next'
|
|
|
import { useThrottleEffect } from 'ahooks'
|
|
|
+import { debounce } from 'lodash-es'
|
|
|
import type {
|
|
|
ChatConfig,
|
|
|
ChatItem,
|
|
@@ -81,16 +82,24 @@ const Chat: FC<ChatProps> = ({
|
|
|
chatContainerRef.current.scrollTop = chatContainerRef.current.scrollHeight
|
|
|
}
|
|
|
|
|
|
- useThrottleEffect(() => {
|
|
|
- handleScrolltoBottom()
|
|
|
-
|
|
|
+ const handleWindowResize = () => {
|
|
|
if (chatContainerRef.current && chatFooterRef.current)
|
|
|
chatFooterRef.current.style.width = `${chatContainerRef.current.clientWidth}px`
|
|
|
|
|
|
if (chatContainerInnerRef.current && chatFooterInnerRef.current)
|
|
|
chatFooterInnerRef.current.style.width = `${chatContainerInnerRef.current.clientWidth}px`
|
|
|
+ }
|
|
|
+
|
|
|
+ useThrottleEffect(() => {
|
|
|
+ handleScrolltoBottom()
|
|
|
+ handleWindowResize()
|
|
|
}, [chatList], { wait: 500 })
|
|
|
|
|
|
+ useEffect(() => {
|
|
|
+ window.addEventListener('resize', debounce(handleWindowResize))
|
|
|
+ return () => window.removeEventListener('resize', handleWindowResize)
|
|
|
+ }, [])
|
|
|
+
|
|
|
useEffect(() => {
|
|
|
if (chatFooterRef.current && chatContainerRef.current) {
|
|
|
const resizeObserver = new ResizeObserver((entries) => {
|