feat: space avatar color with color picker UI

Add avatarColor field to spaces, matching the user avatar color system.
Spaces get a random color on creation and owners can change it in space
settings. The color controls the fallback gradient when no icon is uploaded,
replacing the old deterministic hash-based gradient. Includes full
federation support, explore page, mutual spaces, and color picker in both
create and settings modals.
This commit is contained in:
Jannis Braun
2026-03-11 18:34:33 +01:00
parent 373d685a55
commit 7572f165de
16 changed files with 148 additions and 27 deletions
+1 -1
View File
@@ -493,7 +493,7 @@ export async function userRoutes(app: FastifyInstance): Promise<void> {
const mutualSpaceIds = [...mySpaceIds].filter((id) => targetSpaceIds.has(id));
const mutualSpaces = mutualSpaceIds.length > 0
? db.select({ id: schema.spaces.id, name: schema.spaces.name, icon: schema.spaces.icon })
? db.select({ id: schema.spaces.id, name: schema.spaces.name, icon: schema.spaces.icon, avatarColor: schema.spaces.avatarColor })
.from(schema.spaces)
.where(inArray(schema.spaces.id, mutualSpaceIds))
.all()