widget chat 19

This commit is contained in:
Alma 2025-04-11 12:15:18 +02:00
parent f9cdb6c2f0
commit 0b85779b55

View File

@ -103,15 +103,39 @@ export async function GET(request: Request) {
if (messagesData.messages && messagesData.messages.length > 0) {
const lastMessage = messagesData.messages[0];
messages.push({
...lastMessage,
roomName: subscription.fname || subscription.name || 'Direct Message',
roomType: subscription.t,
unread: subscription.unread || 0,
userMentions: subscription.userMentions || 0,
groupMentions: subscription.groupMentions || 0,
alert: subscription.alert || false
});
// For direct messages, check if the room ID contains the user's ID
if (subscription.t === 'd') {
// Extract the other user's ID from the room ID
const roomIdParts = subscription.rid.split(session.rocketChatUserId);
const otherUserId = roomIdParts[0] || roomIdParts[1];
// Only include messages where the user is either the sender or the recipient
if (lastMessage.u._id === session.rocketChatUserId || lastMessage.u._id === otherUserId) {
messages.push({
...lastMessage,
roomName: subscription.fname || subscription.name || 'Direct Message',
roomType: subscription.t,
unread: subscription.unread || 0,
userMentions: subscription.userMentions || 0,
groupMentions: subscription.groupMentions || 0,
alert: subscription.alert || false
});
}
} else {
// For channels and groups, only include messages where the user is the sender
if (lastMessage.u._id === session.rocketChatUserId) {
messages.push({
...lastMessage,
roomName: subscription.fname || subscription.name || 'Direct Message',
roomType: subscription.t,
unread: subscription.unread || 0,
userMentions: subscription.userMentions || 0,
groupMentions: subscription.groupMentions || 0,
alert: subscription.alert || false
});
}
}
} else {
console.log(`No messages found for room: ${roomId}`);
}