Skip to content

Commit 779f5af

Browse files
Handling null scenarios
1 parent 9b33404 commit 779f5af

File tree

3 files changed

+27
-19
lines changed

3 files changed

+27
-19
lines changed

src/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,27 @@ import { ChatContext } from '../../../context';
1010
export const useChannelPreviewDisplayAvatar = (channel) => {
1111
const { client } = useContext(ChatContext);
1212
const [displayAvatar, setDisplayAvatar] = useState(
13-
getChannelPreviewDisplayAvatar(channel, client.user.id),
13+
getChannelPreviewDisplayAvatar(channel, client),
1414
);
1515

1616
useEffect(() => {
17-
setDisplayAvatar(getChannelPreviewDisplayAvatar(channel, client.user.id));
17+
setDisplayAvatar(getChannelPreviewDisplayAvatar(channel, client));
1818
}, [channel]);
1919

2020
return displayAvatar;
2121
};
2222

23-
const getChannelPreviewDisplayAvatar = (channel, currentUserId) => {
24-
if (channel.data.image) {
23+
const getChannelPreviewDisplayAvatar = (channel, client) => {
24+
const currentUserId = client?.user?.id;
25+
const channelName = channel?.data?.name;
26+
const channelImage = channel?.data?.image;
27+
28+
if (channelImage) {
2529
return {
26-
image: channel.data.image,
27-
name: channel.data.name,
30+
image: channelImage,
31+
name: channelName,
2832
};
29-
} else {
33+
} else if (currentUserId) {
3034
const members = Object.values(channel?.state?.members || {});
3135
const otherMembers = members.filter(
3236
(member) => member.user.id !== currentUserId,
@@ -35,12 +39,11 @@ const getChannelPreviewDisplayAvatar = (channel, currentUserId) => {
3539
if (otherMembers.length === 1) {
3640
return {
3741
image: otherMembers[0].user.image,
38-
name: channel.data.name || otherMembers[0].user.name,
39-
};
40-
} else {
41-
return {
42-
name: channel.data.name,
42+
name: channelName || otherMembers[0].user.name,
4343
};
4444
}
4545
}
46+
return {
47+
name: channelName,
48+
};
4649
};

src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,22 @@ import { ChatContext } from '../../../context';
44
export const useChannelPreviewDisplayName = (channel) => {
55
const { client } = useContext(ChatContext);
66
const [displayName, setDisplayName] = useState(
7-
getChannelPreviewDisplayName(channel, client.user.id),
7+
getChannelPreviewDisplayName(channel, client),
88
);
99

1010
useEffect(() => {
11-
setDisplayName(getChannelPreviewDisplayName(channel, client.user.id));
11+
setDisplayName(getChannelPreviewDisplayName(channel, client));
1212
}, [channel]);
1313

1414
return displayName;
1515
};
1616

17-
const getChannelPreviewDisplayName = (channel, currentUserId) => {
18-
if (typeof channel?.data?.name === 'string') {
19-
return channel.data.name;
17+
const getChannelPreviewDisplayName = (channel, client) => {
18+
const currentUserId = client?.user?.id;
19+
const channelName = channel?.data?.name;
20+
21+
if (typeof channelName === 'string') {
22+
return channelName;
2023
} else {
2124
const members = Object.values(channel?.state?.members || {});
2225
const otherMembers = members.filter(

src/components/ChannelPreview/hooks/useLatestMessagePreview.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,16 @@ const getLatestMessageDisplayDate = (message, tDateTimeParser) => {
2929
};
3030

3131
const getLatestMessagePreview = (channel, t, tDateTimeParser) => {
32-
if (!channel.state.messages || !channel.state.messages.length) {
32+
const messages = channel?.state?.messages;
33+
34+
if (!messages || !messages.length) {
3335
return {
3436
created_at: '',
3537
messageObject: {},
3638
text: '',
3739
};
3840
} else {
39-
const message = channel.state.messages[channel.state.messages.length - 1];
41+
const message = messages[messages.length - 1];
4042

4143
return {
4244
created_at: getLatestMessageDisplayDate(message, tDateTimeParser),

0 commit comments

Comments
 (0)