diff --git a/res/themes/superhero/img/icons/tokengated-room.svg b/res/themes/superhero/img/icons/tokengated-room.svg
index d69c4e31c3..2108131a86 100644
--- a/res/themes/superhero/img/icons/tokengated-room.svg
+++ b/res/themes/superhero/img/icons/tokengated-room.svg
@@ -1,6 +1,6 @@
diff --git a/src/components/views/elements/RoomName.tsx b/src/components/views/elements/RoomName.tsx
index bc3738d533..39a11df23c 100644
--- a/src/components/views/elements/RoomName.tsx
+++ b/src/components/views/elements/RoomName.tsx
@@ -33,10 +33,12 @@ export const RoomName = ({ room, children, maxLength }: IProps): JSX.Element =>
const isVerifiedRoom = useVerifiedRoom(room);
const roomUsers: string[] = useMemo(() => {
- return (room as Room)
- .getMembers()
- .map((m) => m.userId)
- .filter((userId) => !!userId && userId != (room as Room).myUserId);
+ return (
+ (room as Room)
+ ?.getMembers?.()
+ .map((m: { userId: string }) => m.userId)
+ .filter((userId: string) => !!userId && userId !== (room as Room)?.myUserId) || []
+ );
}, [room]);
const truncatedRoomName = useMemo(() => {
diff --git a/src/components/views/rooms/NewRoomIntro.tsx b/src/components/views/rooms/NewRoomIntro.tsx
index fd7612eb3f..e8eca640dc 100644
--- a/src/components/views/rooms/NewRoomIntro.tsx
+++ b/src/components/views/rooms/NewRoomIntro.tsx
@@ -69,6 +69,24 @@ const NewRoomIntro: React.FC = () => {
const isLocalRoom = room instanceof LocalRoom;
const dmPartner = isLocalRoom ? room.targets[0]?.userId : DMRoomMap.shared().getUserIdForRoomId(roomId);
+ const onSendHelloClick = (): void => {
+ if (!dmPartner) return;
+ cli.sendEvent(roomId, EventType.RoomMessage, {
+ body: "👋",
+ msgtype: "m.text",
+ });
+ };
+
+ const sendHelloButton = !room.getLastActiveTimestamp() && (
+
{caption}
} + {sendHelloButton} ); } else { @@ -262,6 +281,7 @@ const NewRoomIntro: React.FC = () => {{topicText}
{buttons} + {sendHelloButton} ); }