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