|
23 | 23 | const { data: userData } = await apiClient.get('/api/users');
|
24 | 24 | currentUserId = userData.id;
|
25 | 25 |
|
26 |
| - // Filter out group chats, only show direct messages |
27 |
| - messages = data.chats |
28 |
| - .filter((c) => c.participants.length === 2) // Only direct messages (2 participants: user + other person) |
29 |
| - .map((c) => { |
30 |
| - const members = c.participants.filter((u) => u.id !== userData.id); |
31 |
| - const memberNames = members.map((m) => m.name ?? m.handle ?? m.ename); |
32 |
| - const avatar = |
33 |
| - members[0]?.avatarUrl || |
| 26 | + // Show all chats (direct messages and groups) in one unified list |
| 27 | + messages = data.chats.map((c) => { |
| 28 | + const members = c.participants.filter((u) => u.id !== userData.id); |
| 29 | + const memberNames = members.map((m) => m.name ?? m.handle ?? m.ename); |
| 30 | + const isGroup = members.length > 1; |
| 31 | +
|
| 32 | + // Use group avatar for groups, user avatar for direct messages |
| 33 | + const avatar = isGroup |
| 34 | + ? '/images/group.png' |
| 35 | + : members[0]?.avatarUrl || |
34 | 36 | 'https://cdn.jsdelivr.net/npm/[email protected]/icons/people-fill.svg';
|
35 | 37 |
|
36 |
| - return { |
37 |
| - id: c.id, |
38 |
| - avatar, |
39 |
| - username: c.handle ?? memberNames.join(', '), |
40 |
| - unread: c.latestMessage ? !c.latestMessage.isRead : false, |
41 |
| - text: c.latestMessage?.text ?? 'No message yet', |
42 |
| - handle: c.handle ?? memberNames.join(', '), |
43 |
| - name: c.handle ?? memberNames.join(', ') |
44 |
| - }; |
45 |
| - }); |
| 38 | + return { |
| 39 | + id: c.id, |
| 40 | + avatar, |
| 41 | + username: c.handle ?? memberNames.join(', '), |
| 42 | + unread: c.latestMessage ? !c.latestMessage.isRead : false, |
| 43 | + text: c.latestMessage?.text ?? 'No message yet', |
| 44 | + handle: c.handle ?? memberNames.join(', '), |
| 45 | + name: c.handle ?? memberNames.join(', ') |
| 46 | + }; |
| 47 | + }); |
46 | 48 | } catch (error) {
|
47 | 49 | console.error('Failed to load messages:', error);
|
48 | 50 | }
|
|
0 commit comments