Просмотр исходного кода

fix(web): chat input auto resize by window (#2696)

tags/0.5.9
Rhon Joe 1 год назад
Родитель
Сommit
c439952a41
Аккаунт пользователя с таким Email не найден
1 измененных файлов: 12 добавлений и 3 удалений
  1. 12
    3
      web/app/components/base/chat/chat/index.tsx

+ 12
- 3
web/app/components/base/chat/chat/index.tsx Просмотреть файл

@@ -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) => {

Загрузка…
Отмена
Сохранить