feat: 显示消息时间

This commit is contained in:
CrescentLeaf
2025-10-01 00:01:27 +08:00
parent 8163100559
commit 6c17a0e4eb

View File

@@ -14,6 +14,7 @@ import useAsyncEffect from "../useAsyncEffect.ts"
import * as marked from 'marked'
import DOMPurify from 'dompurify'
import randomUUID from "../../randomUUID.ts"
import { time } from "node:console";
interface Args extends React.HTMLAttributes<HTMLElement> {
target: string
@@ -257,22 +258,55 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
flexGrow: '1',
}}>
{
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, {
ALLOWED_TAGS: [
"chat-image",
"span",
"chat-link",
]
})
}}></div>
</Element_Message>
)
(() => {
let date = new Date(0)
return messagesList.map((msg) => {
const rendeText = DOMPurify.sanitize(markedInstance.parse(msg.text) as string, {
ALLOWED_TAGS: [
"chat-image",
"span",
"chat-link",
],
ALLOWED_ATTR: [
'src',
'alt',
'href',
],
})
const lastDate = date
date = new Date(msg.time)
const msgElement = <Element_Message
rawData={msg.text}
renderHTML={rendeText}
message={msg}
key={msg.id}
slot="trigger"
id={`chat_${target}_message_${msg.id}`}
userId={msg.user_id} />
return (
<>
{
(date.getMinutes() != lastDate.getMinutes() || date.getDate() != lastDate.getDate() || date.getMonth() != lastDate.getMonth() || date.getFullYear() != lastDate.getFullYear())
&& <mdui-tooltip content={`${date.getFullYear()}${date.getMonth() + 1}${date.getDate()}${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`}>
<div>
{
(date.getFullYear() != lastDate.getFullYear() ? `${date.getFullYear()}` : '')
+ (date.getMonth() != lastDate.getMonth() ? `${date.getMonth() + 1}` : '')
+ (date.getDate() != lastDate.getDate() ? `${date.getDate()}` : '')
+ ` ${date.getHours()}:${date.getMinutes()}`
}
</div>
</mdui-tooltip>
}
{
msgElement
}
</>
)
})
})()
}
</MessageContainer>
{