feat: Add user metadata changing display name and description with sync
All checks were successful
Queue Release Build / prepare (push) Successful in 28s
Deploy Web Apps / deploy (push) Successful in 5m2s
Queue Release Build / build-windows (push) Successful in 16m44s
Queue Release Build / build-linux (push) Successful in 27m12s
Queue Release Build / finalize (push) Successful in 22s

This commit is contained in:
2026-04-17 22:04:18 +02:00
parent 3ba8a2c9eb
commit bd21568726
41 changed files with 1176 additions and 191 deletions

View File

@@ -5,7 +5,7 @@ import {
createEffect,
ofType
} from '@ngrx/effects';
import { Action, Store } from '@ngrx/store';
import { Store, type Action } from '@ngrx/store';
import {
of,
from,
@@ -30,7 +30,7 @@ import {
import { RealtimeSessionFacade } from '../../core/realtime';
import { DatabaseService } from '../../infrastructure/persistence';
import { resolveRoomPermission } from '../../domains/access-control';
import {
import type {
ChatEvent,
Room,
RoomSettings,
@@ -50,9 +50,9 @@ import {
resolveRoom,
sanitizeRoomSnapshot,
normalizeIncomingBans,
getPersistedCurrentUserId,
RoomPresenceSignalingMessage
getPersistedCurrentUserId
} from './rooms.helpers';
import type { RoomPresenceSignalingMessage } from './rooms.helpers';
/**
* NgRx effects for real-time state synchronisation: signaling presence
@@ -113,6 +113,8 @@ export class RoomStateSyncEffects {
.map((user) =>
buildSignalingUser(user, {
...buildKnownUserExtras(room, user.oderId),
description: user.description,
profileUpdatedAt: user.profileUpdatedAt,
presenceServerIds: [signalingMessage.serverId],
...(user.status ? { status: user.status } : {})
})
@@ -141,12 +143,16 @@ export class RoomStateSyncEffects {
const joinedUser = {
oderId: signalingMessage.oderId,
displayName: signalingMessage.displayName,
description: signalingMessage.description,
profileUpdatedAt: signalingMessage.profileUpdatedAt,
status: signalingMessage.status
};
const actions: Action[] = [
UsersActions.userJoined({
user: buildSignalingUser(joinedUser, {
...buildKnownUserExtras(room, joinedUser.oderId),
description: joinedUser.description,
profileUpdatedAt: joinedUser.profileUpdatedAt,
presenceServerIds: [signalingMessage.serverId]
})
})