diff --git a/src/domain/session/rightpanel/MemberTileViewModel.js b/src/domain/session/rightpanel/MemberTileViewModel.js index 899f2b7b..3ee201db 100644 --- a/src/domain/session/rightpanel/MemberTileViewModel.js +++ b/src/domain/session/rightpanel/MemberTileViewModel.js @@ -4,19 +4,47 @@ export class MemberTileViewModel extends ViewModel { constructor(options) { super(options); this._member = this._options.member; - this._shouldDisambiguate = options.shouldDisambiguate; + this._previousName = null; + this._nameChanged = true; } get name() { - return this._member.name; + return `${this._member.name}${this._disambiguationPart}`; + } + + get _disambiguationPart() { + return this._disambiguate ? ` (${this.userId})` : ""; } get userId() { return this._member.userId; } - updateFrom(newMember) { - this._member = newMember; + get previousName() { + return this._previousName; } + get nameChanged() { + return this._nameChanged; + } + + _updatePreviousName(newName) { + const currentName = this._member.name; + if (currentName !== newName) { + this._previousName = currentName; + this._nameChanged = true; + } else { + this._nameChanged = false; + } + } + + setDisambiguation(status) { + this._disambiguate = status; + this.emitChange(); + } + + updateFrom(newMember) { + this._updatePreviousName(newMember.name); + this._member = newMember; + } }