import Client from "../../api/Client.ts" import DataCaches from "../../api/DataCaches.ts" import Avatar from "../Avatar.tsx" import useAsyncEffect from "../useAsyncEffect.ts" import React from "react" interface Args extends React.HTMLAttributes { userId: string } export default function Message({ userId, children, ...props }: Args) { const isAtRight = Client.myUserProfile?.id == userId const [ nickName, setNickName ] = React.useState("") const [ avatarUrl, setAvatarUrl ] = React.useState("") useAsyncEffect(async () => { const user = await DataCaches.getUserProfile(userId) setNickName(user.nickname) setAvatarUrl(user?.avatar) }, [userId]) return (
{ // 发送者昵称(左) isAtRight && {nickName} } { // 发送者头像 } { // 发送者昵称(右) !isAtRight && {nickName} }
{ // 消息内容 children }
) }