Merge pull request #6393 from robintown/match-avatar-colors
This commit is contained in:
commit
f7767bf09c
2 changed files with 11 additions and 1 deletions
|
@ -22,6 +22,7 @@ import ImageView from '../elements/ImageView';
|
||||||
import { MatrixClientPeg } from '../../../MatrixClientPeg';
|
import { MatrixClientPeg } from '../../../MatrixClientPeg';
|
||||||
import Modal from '../../../Modal';
|
import Modal from '../../../Modal';
|
||||||
import * as Avatar from '../../../Avatar';
|
import * as Avatar from '../../../Avatar';
|
||||||
|
import DMRoomMap from "../../../utils/DMRoomMap";
|
||||||
import { replaceableComponent } from "../../../utils/replaceableComponent";
|
import { replaceableComponent } from "../../../utils/replaceableComponent";
|
||||||
import { mediaFromMxc } from "../../../customisations/Media";
|
import { mediaFromMxc } from "../../../customisations/Media";
|
||||||
import { IOOBData } from '../../../stores/ThreepidInviteStore';
|
import { IOOBData } from '../../../stores/ThreepidInviteStore';
|
||||||
|
@ -131,11 +132,14 @@ export default class RoomAvatar extends React.Component<IProps, IState> {
|
||||||
const { room, oobData, viewAvatarOnClick, onClick, ...otherProps } = this.props;
|
const { room, oobData, viewAvatarOnClick, onClick, ...otherProps } = this.props;
|
||||||
|
|
||||||
const roomName = room ? room.name : oobData.name;
|
const roomName = room ? room.name : oobData.name;
|
||||||
|
// If the room is a DM, we use the other user's ID for the color hash
|
||||||
|
// in order to match the room avatar with their avatar
|
||||||
|
const idName = room ? (DMRoomMap.shared().getUserIdForRoomId(room.roomId) ?? room.roomId) : null;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<BaseAvatar {...otherProps}
|
<BaseAvatar {...otherProps}
|
||||||
name={roomName}
|
name={roomName}
|
||||||
idName={room ? room.roomId : null}
|
idName={idName}
|
||||||
urls={this.state.urls}
|
urls={this.state.urls}
|
||||||
onClick={viewAvatarOnClick && this.state.urls[0] ? this.onRoomAvatarClick : onClick}
|
onClick={viewAvatarOnClick && this.state.urls[0] ? this.onRoomAvatarClick : onClick}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -23,6 +23,7 @@ import { mkEvent, mkStubRoom } from "../../../test-utils";
|
||||||
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
||||||
import * as languageHandler from "../../../../src/languageHandler";
|
import * as languageHandler from "../../../../src/languageHandler";
|
||||||
import * as TestUtils from "../../../test-utils";
|
import * as TestUtils from "../../../test-utils";
|
||||||
|
import DMRoomMap from "../../../../src/utils/DMRoomMap";
|
||||||
|
|
||||||
const _TextualBody = sdk.getComponent("views.messages.TextualBody");
|
const _TextualBody = sdk.getComponent("views.messages.TextualBody");
|
||||||
const TextualBody = TestUtils.wrapInMatrixClientContext(_TextualBody);
|
const TextualBody = TestUtils.wrapInMatrixClientContext(_TextualBody);
|
||||||
|
@ -41,6 +42,7 @@ describe("<TextualBody />", () => {
|
||||||
isGuest: () => false,
|
isGuest: () => false,
|
||||||
mxcUrlToHttp: (s) => s,
|
mxcUrlToHttp: (s) => s,
|
||||||
};
|
};
|
||||||
|
DMRoomMap.makeShared();
|
||||||
|
|
||||||
const ev = mkEvent({
|
const ev = mkEvent({
|
||||||
type: "m.room.message",
|
type: "m.room.message",
|
||||||
|
@ -66,6 +68,7 @@ describe("<TextualBody />", () => {
|
||||||
isGuest: () => false,
|
isGuest: () => false,
|
||||||
mxcUrlToHttp: (s) => s,
|
mxcUrlToHttp: (s) => s,
|
||||||
};
|
};
|
||||||
|
DMRoomMap.makeShared();
|
||||||
|
|
||||||
const ev = mkEvent({
|
const ev = mkEvent({
|
||||||
type: "m.room.message",
|
type: "m.room.message",
|
||||||
|
@ -92,6 +95,7 @@ describe("<TextualBody />", () => {
|
||||||
isGuest: () => false,
|
isGuest: () => false,
|
||||||
mxcUrlToHttp: (s) => s,
|
mxcUrlToHttp: (s) => s,
|
||||||
};
|
};
|
||||||
|
DMRoomMap.makeShared();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("simple message renders as expected", () => {
|
it("simple message renders as expected", () => {
|
||||||
|
@ -146,6 +150,7 @@ describe("<TextualBody />", () => {
|
||||||
isGuest: () => false,
|
isGuest: () => false,
|
||||||
mxcUrlToHttp: (s) => s,
|
mxcUrlToHttp: (s) => s,
|
||||||
};
|
};
|
||||||
|
DMRoomMap.makeShared();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("italics, bold, underline and strikethrough render as expected", () => {
|
it("italics, bold, underline and strikethrough render as expected", () => {
|
||||||
|
@ -292,6 +297,7 @@ describe("<TextualBody />", () => {
|
||||||
isGuest: () => false,
|
isGuest: () => false,
|
||||||
mxcUrlToHttp: (s) => s,
|
mxcUrlToHttp: (s) => s,
|
||||||
};
|
};
|
||||||
|
DMRoomMap.makeShared();
|
||||||
|
|
||||||
const ev = mkEvent({
|
const ev = mkEvent({
|
||||||
type: "m.room.message",
|
type: "m.room.message",
|
||||||
|
|
Loading…
Reference in a new issue