fix: generate presigned avatar URLs for card members on board view (#388)
The board.byId query was generating presigned S3 URLs for workspace member avatars but not for card member avatars. This caused card avatars to silently fall back to initials since the frontend helper returns "" for raw S3 keys. Closes #387 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -173,8 +173,31 @@ export const boardRouter = createTRPCRouter({
|
||||
}
|
||||
: result.workspace;
|
||||
|
||||
// Generate presigned URLs for card member avatars
|
||||
const listsWithAvatarUrls = await Promise.all(
|
||||
result.lists.map(async (list) => ({
|
||||
...list,
|
||||
cards: await Promise.all(
|
||||
list.cards.map(async (card) => ({
|
||||
...card,
|
||||
members: await Promise.all(
|
||||
card.members.map(async (member) => {
|
||||
if (!member.user?.image) return member;
|
||||
const avatarUrl = await generateAvatarUrl(member.user.image);
|
||||
return {
|
||||
...member,
|
||||
user: { ...member.user, image: avatarUrl },
|
||||
};
|
||||
}),
|
||||
),
|
||||
})),
|
||||
),
|
||||
})),
|
||||
);
|
||||
|
||||
return {
|
||||
...result,
|
||||
lists: listsWithAvatarUrls,
|
||||
workspace: workspaceWithAvatarUrls,
|
||||
};
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user