Преглед изворни кода

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

tags/0.5.9
Rhon Joe пре 1 година
родитељ
комит
c439952a41
No account linked to committer's email address
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) => {

Loading…
Откажи
Сачувај