diff --git a/src/Header.tsx b/src/Header.tsx
index 9b96f250..c79953c9 100644
--- a/src/Header.tsx
+++ b/src/Header.tsx
@@ -116,7 +116,7 @@ export function HeaderLogo({ className }: HeaderLogoProps) {
interface RoomHeaderInfo {
roomName: string;
- avatarUrl: string;
+ avatarUrl: string | null;
}
export function RoomHeaderInfo({ roomName, avatarUrl }: RoomHeaderInfo) {
@@ -125,7 +125,7 @@ export function RoomHeaderInfo({ roomName, avatarUrl }: RoomHeaderInfo) {
diff --git a/src/room/GroupCallView.tsx b/src/room/GroupCallView.tsx
index e6acf525..5f9c90ff 100644
--- a/src/room/GroupCallView.tsx
+++ b/src/room/GroupCallView.tsx
@@ -35,6 +35,7 @@ import { PosthogAnalytics } from "../analytics/PosthogAnalytics";
import { useProfile } from "../profile/useProfile";
import { UserChoices } from "../livekit/useLiveKit";
import { findDeviceByName } from "../media-utils";
+import { useRoomAvatar } from "./useRoomAvatar";
declare global {
interface Window {
@@ -81,12 +82,14 @@ export function GroupCallView({
}, [groupCall]);
const { displayName, avatarUrl } = useProfile(client);
+ const roomAvatarUrl = useRoomAvatar(groupCall.room);
const matrixInfo: MatrixInfo = {
userName: displayName,
avatarUrl,
roomName: groupCall.room.name,
roomIdOrAlias,
+ roomAvatarUrl,
};
useEffect(() => {
diff --git a/src/room/InCallView.tsx b/src/room/InCallView.tsx
index 14ba3701..fd94aec5 100644
--- a/src/room/InCallView.tsx
+++ b/src/room/InCallView.tsx
@@ -372,7 +372,7 @@ export function InCallView({
diff --git a/src/room/VideoPreview.tsx b/src/room/VideoPreview.tsx
index 4f827808..f9587eb5 100644
--- a/src/room/VideoPreview.tsx
+++ b/src/room/VideoPreview.tsx
@@ -35,6 +35,7 @@ export type MatrixInfo = {
avatarUrl: string;
roomName: string;
roomIdOrAlias: string;
+ roomAvatarUrl: string | null;
};
interface Props {
diff --git a/src/room/useRoomAvatar.ts b/src/room/useRoomAvatar.ts
new file mode 100644
index 00000000..4c4d0152
--- /dev/null
+++ b/src/room/useRoomAvatar.ts
@@ -0,0 +1,26 @@
+/*
+Copyright 2022 New Vector Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import { useCallback } from "react";
+import { Room } from "matrix-js-sdk/src/models/room";
+
+import { useRoomState } from "./useRoomState";
+
+export const useRoomAvatar = (room: Room) =>
+ useRoomState(
+ room,
+ useCallback(() => room.getMxcAvatarUrl(), [room])
+ );