ui: 在加載歷史消息時,自動回到加載前的消息位置

* 使用奇技淫巧
This commit is contained in:
CrescentLeaf
2025-09-25 00:31:40 +08:00
parent f063c4d165
commit 9395104c20

View File

@@ -1,4 +1,5 @@
import { Tab, TextField } from "mdui"
import { $ } from "mdui/jq"
import useEventListener from "../useEventListener.ts"
import Element_Message from "./Message.tsx"
import MessageContainer from "./MessageContainer.tsx"
@@ -86,7 +87,10 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
setTimeout(() => setShowNoMoreMessagesTip(false), 1000)
return
}
const oldest = messagesList[0]
setMessagesList(returnMsgs.concat(messagesList))
setTimeout(() => chatPanelRef.current!.scrollTo({ top: $(`#chat_${target}_message_${oldest.id}`).get(0).offsetTop, behavior: 'smooth' }), 100)
page.current++
}
@@ -245,6 +249,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
messagesList.map((msg) =>
<Element_Message
key={msg.id}
id={`chat_${target}_message_${msg.id}`}
userId={msg.user_id}>
<div dangerouslySetInnerHTML={{
__html: DOMPurify.sanitize(markedInstance.parse(msg.text) as string, {