fix: profile date, avatar system, UserRead schema
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s

This commit is contained in:
fullsizemalt 2025-12-29 21:26:48 -08:00
parent d20cc75085
commit a87c0cc8a3
2 changed files with 11 additions and 6 deletions

View file

@ -18,6 +18,9 @@ class UserRead(SQLModel):
profile_public: bool = True profile_public: bool = True
show_attendance_public: bool = True show_attendance_public: bool = True
appear_in_leaderboards: bool = True appear_in_leaderboards: bool = True
bio: Optional[str] = None
username: Optional[str] = None
joined_at: Optional[datetime] = None
class Token(SQLModel): class Token(SQLModel):
access_token: str access_token: str

View file

@ -19,7 +19,7 @@ interface UserProfile {
email: string email: string
username: string | null username: string | null
bio: string | null bio: string | null
created_at: string joined_at: string | null
} }
interface UserBadge { interface UserBadge {
@ -97,16 +97,18 @@ export default function PublicProfilePage({ params }: { params: Promise<{ slug:
<Card className="border-0 shadow-none bg-transparent"> <Card className="border-0 shadow-none bg-transparent">
<div className="flex flex-col md:flex-row gap-8 items-start"> <div className="flex flex-col md:flex-row gap-8 items-start">
<Avatar className="h-32 w-32 border-4 border-background shadow-lg"> <div
<AvatarImage src={`https://api.dicebear.com/7.x/notionists/svg?seed=${user.id}`} /> className="h-32 w-32 rounded-full border-4 border-background shadow-lg flex items-center justify-center text-white text-4xl font-bold"
<AvatarFallback><User className="h-12 w-12" /></AvatarFallback> style={{ backgroundColor: (user as any).avatar_bg_color || '#3B82F6' }}
</Avatar> >
{(user as any).avatar_text || displayName.substring(0, 2).toUpperCase()}
</div>
<div className="space-y-4 flex-1"> <div className="space-y-4 flex-1">
<div> <div>
<h1 className="text-4xl font-bold tracking-tight">{displayName}</h1> <h1 className="text-4xl font-bold tracking-tight">{displayName}</h1>
<p className="text-muted-foreground flex items-center gap-2 mt-2"> <p className="text-muted-foreground flex items-center gap-2 mt-2">
<Calendar className="h-4 w-4" /> <Calendar className="h-4 w-4" />
Member since {new Date(user.created_at).toLocaleDateString()} Member since {user.joined_at ? new Date(user.joined_at).toLocaleDateString() : 'Unknown'}
</p> </p>
</div> </div>
{user.bio && ( {user.bio && (