This commit is contained in:
freedakgmail
2025-11-24 14:02:34 +08:00
parent b7a8c9ee6e
commit 3d075c6076
941 changed files with 25613 additions and 27641 deletions
+5 -24
View File
@@ -1,41 +1,22 @@
"use client"
import { useState, useEffect } from "react"
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import { db } from "@/lib/db"
import { CircleUser, CircleUserRound } from "lucide-react"
import type { Gender } from "@/types/family"
interface AvatarDisplayProps {
imageId?: string
fallbackUrl?: string
imageUrl?: string // 改为 URL
fallbackText?: string
gender?: Gender
className?: string
}
export function AvatarDisplay({ imageId, fallbackUrl, fallbackText, gender, className }: AvatarDisplayProps) {
const [blobUrl, setBlobUrl] = useState<string | undefined>(undefined)
useEffect(() => {
if (imageId) {
db.images.get(imageId).then((image) => {
if (image) {
const url = URL.createObjectURL(image.blob)
setBlobUrl(url)
return () => URL.revokeObjectURL(url)
}
})
} else {
setBlobUrl(undefined)
}
}, [imageId])
// 如果有头像,显示头像
if (blobUrl) {
export function AvatarDisplay({ imageUrl, fallbackText, gender, className }: AvatarDisplayProps) {
// 如果有头像 URL,显示头像
if (imageUrl) {
return (
<Avatar className={className}>
<AvatarImage src={blobUrl} />
<AvatarImage src={imageUrl} />
<AvatarFallback className="text-lg font-serif bg-muted">{fallbackText}</AvatarFallback>
</Avatar>
)