feat: Add user metadata changing display name and description with sync
Some checks failed
Queue Release Build / prepare (push) Successful in 27s
Deploy Web Apps / deploy (push) Failing after 4m58s
Queue Release Build / build-linux (push) Failing after 10m55s
Queue Release Build / build-windows (push) Successful in 16m14s
Queue Release Build / finalize (push) Has been skipped
Some checks failed
Queue Release Build / prepare (push) Successful in 27s
Deploy Web Apps / deploy (push) Failing after 4m58s
Queue Release Build / build-linux (push) Failing after 10m55s
Queue Release Build / build-windows (push) Successful in 16m14s
Queue Release Build / finalize (push) Has been skipped
This commit is contained in:
@@ -37,6 +37,41 @@ import {
|
||||
upsertRoomMember
|
||||
} from './room-members.helpers';
|
||||
|
||||
export function buildRosterAvatarBackfillActions(
|
||||
members: RoomMember[],
|
||||
currentUser: Pick<User, 'id' | 'oderId'> | null | undefined
|
||||
): ReturnType<typeof UsersActions.upsertRemoteUserAvatar>[] {
|
||||
const currentUserId = currentUser?.oderId || currentUser?.id;
|
||||
|
||||
return members.flatMap((member) => {
|
||||
const memberId = member.oderId || member.id;
|
||||
const hasProfileData = !!member.avatarUrl
|
||||
|| !!member.avatarHash
|
||||
|| !!member.avatarUpdatedAt
|
||||
|| !!member.profileUpdatedAt
|
||||
|| typeof member.description === 'string';
|
||||
|
||||
if (!memberId || memberId === currentUserId || !hasProfileData) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return [UsersActions.upsertRemoteUserAvatar({
|
||||
user: {
|
||||
id: member.id,
|
||||
oderId: memberId,
|
||||
username: member.username,
|
||||
displayName: member.displayName,
|
||||
description: member.description,
|
||||
profileUpdatedAt: member.profileUpdatedAt,
|
||||
avatarUrl: member.avatarUrl,
|
||||
avatarHash: member.avatarHash,
|
||||
avatarMime: member.avatarMime,
|
||||
avatarUpdatedAt: member.avatarUpdatedAt
|
||||
}
|
||||
})];
|
||||
});
|
||||
}
|
||||
|
||||
@Injectable()
|
||||
export class RoomMembersSyncEffects {
|
||||
private readonly actions$ = inject(Actions);
|
||||
@@ -394,7 +429,10 @@ export class RoomMembersSyncEffects {
|
||||
);
|
||||
}
|
||||
|
||||
return this.createRoomMemberUpdateActions(room, members);
|
||||
return [
|
||||
...this.createRoomMemberUpdateActions(room, members),
|
||||
...buildRosterAvatarBackfillActions(members, currentUser)
|
||||
];
|
||||
}
|
||||
|
||||
private handleMemberLeave(
|
||||
|
||||
Reference in New Issue
Block a user