feat: user profile customization with banner, accent color, bio, and full profile modal

Add banner image, accent color, and bio fields to user profiles with
full-stack support: schema migration, API validation (hex color format,
190-char bio limit), sanitizeUser propagation, and new GET /users/:id/mutuals
endpoint. Rewrite AccountPanel with live preview card, avatar/banner upload
via ImageCropModal, 16-preset accent color picker, and bio editor. Enhance
UserProfilePopout with banner display, accent-colored names, bio rendering,
and mutual counts. Add new UserProfileModal with About/Mutual Friends/Mutual
Spaces tabs and friend action buttons.
This commit is contained in:
Jannis Braun
2026-03-10 17:08:29 +01:00
parent 88bfc17580
commit 003eff2268
16 changed files with 1066 additions and 72 deletions
+9
View File
@@ -5,6 +5,9 @@ export interface User {
username: string;
displayName: string | null;
avatar: string | null;
banner: string | null;
accentColor: string | null;
bio: string | null;
status: UserStatus;
customStatus: string | null;
isAdmin: boolean;
@@ -340,6 +343,9 @@ export interface UpdateSpaceRequest {
export interface UpdateUserRequest {
displayName?: string;
avatar?: string;
banner?: string;
accentColor?: string;
bio?: string;
customStatus?: string;
status?: UserStatus;
replicatedInstances?: ReplicatedInstance[];
@@ -404,6 +410,9 @@ export interface Friend {
username: string;
displayName: string | null;
avatar: string | null;
banner: string | null;
accentColor: string | null;
bio: string | null;
status: UserStatus;
customStatus: string | null;
createdAt: number;