};
}, []);
- const joinRuleToIconSrc = {
+ const joinRuleToIconSrc = (joinRule) => ({
restricted: () => (room.isSpaceRoom() ? SpaceIC : HashIC),
invite: () => (room.isSpaceRoom() ? SpaceLockIC : HashLockIC),
public: () => (room.isSpaceRoom() ? SpaceGlobeIC : HashGlobeIC),
- };
+ }[joinRule]?.() || null);
if (room.isSpaceRoom()) {
return (
key={roomId}
name={room.name}
roomId={roomId}
- iconSrc={joinRuleToIconSrc[room.getJoinRule()]?.() || null}
+ iconSrc={joinRuleToIconSrc(room.getJoinRule())}
isUnread={noti.hasNoti(roomId)}
notificationCount={abbreviateNumber(noti.getTotalNoti(roomId))}
isAlert={noti.getHighlightNoti(roomId) !== 0}
name={room.name}
roomId={roomId}
imageSrc={isDM ? imageSrc : null}
- iconSrc={isDM ? null : joinRuleToIconSrc[room.getJoinRule()]?.() || null}
+ iconSrc={isDM ? null : joinRuleToIconSrc(room.getJoinRule())}
isSelected={isSelected}
isUnread={noti.hasNoti(roomId)}
notificationCount={abbreviateNumber(noti.getTotalNoti(roomId))}
import SearchIC from '../../../../public/res/ic/outlined/search.svg';
import HashIC from '../../../../public/res/ic/outlined/hash.svg';
+import HashGlobeIC from '../../../../public/res/ic/outlined/hash-globe.svg';
import HashLockIC from '../../../../public/res/ic/outlined/hash-lock.svg';
import SpaceIC from '../../../../public/res/ic/outlined/space.svg';
+import SpaceGlobeIC from '../../../../public/res/ic/outlined/space-globe.svg';
import SpaceLockIC from '../../../../public/res/ic/outlined/space-lock.svg';
import CrossIC from '../../../../public/res/ic/outlined/cross.svg';
const notifs = initMatrix.notifications;
const renderRoomSelector = (item) => {
- const isPrivate = item.room.getJoinRule() === 'invite';
let imageSrc = null;
let iconSrc = null;
- if (item.type === 'room') iconSrc = isPrivate ? HashLockIC : HashIC;
- if (item.type === 'space') iconSrc = isPrivate ? SpaceLockIC : SpaceIC;
- if (item.type === 'direct') imageSrc = item.room.getAvatarFallbackMember()?.getAvatarUrl(mx.baseUrl, 24, 24, 'crop') || null;
+ if (item.type === 'direct') {
+ imageSrc = item.room.getAvatarFallbackMember()?.getAvatarUrl(mx.baseUrl, 24, 24, 'crop') || null;
+ } else {
+ const joinRuleToIconSrc = (joinRule) => ({
+ restricted: () => (item.type === 'space' ? SpaceIC : HashIC),
+ invite: () => (item.type === 'space' ? SpaceLockIC : HashLockIC),
+ public: () => (item.type === 'space' ? SpaceGlobeIC : HashGlobeIC),
+ }[joinRule]?.() || null);
+ iconSrc = joinRuleToIconSrc(item.room.getJoinRule());
+ }
const isUnread = notifs.hasNoti(item.roomId);
const noti = notifs.getNoti(item.roomId);