From 622fa1f98ede157154b20b1fade226da551f1d8c Mon Sep 17 00:00:00 2001 From: PhilReact Date: Sun, 10 Nov 2024 17:26:48 +0200 Subject: [PATCH] fixes --- src/MessageQueueContext.tsx | 18 +++++++++++------- src/components/Chat/ChatList.tsx | 3 ++- src/components/Chat/MessageItem.tsx | 10 ++++++---- src/components/Chat/TipTap.tsx | 4 ++-- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/MessageQueueContext.tsx b/src/MessageQueueContext.tsx index 166a4c3..6440e2b 100644 --- a/src/MessageQueueContext.tsx +++ b/src/MessageQueueContext.tsx @@ -11,7 +11,7 @@ let messageQueue = []; // Global message queue export const MessageQueueProvider = ({ children }) => { const [queueChats, setQueueChats] = useState({}); // Stores chats and status for display const isProcessingRef = useRef(false); // To track if the queue is being processed - const maxRetries = 4; + const maxRetries = 2; const clearStatesMessageQueueProvider = useCallback(() => { setQueueChats({}); messageQueue = []; @@ -43,7 +43,7 @@ export const MessageQueueProvider = ({ children }) => { ]; // Start processing the queue if not already processing - processQueue(); + processQueue([], groupDirectId); }, []); // Method to process with new messages and groupDirectId @@ -68,6 +68,11 @@ export const MessageQueueProvider = ({ children }) => { return !newMessages.some(newMsg => newMsg?.specialId === chat?.message?.specialId); }); + updatedChats[groupDirectId] = updatedChats[groupDirectId].filter((chat) => { + console.log('chatstasu', chat) + return chat?.status !== 'failed-permanent' + }); + // If no more chats for this group, delete the groupDirectId entry if (updatedChats[groupDirectId].length === 0) { delete updatedChats[groupDirectId]; @@ -102,7 +107,6 @@ export const MessageQueueProvider = ({ children }) => { try { // Execute the function stored in the messageQueue await currentMessage.func(); - // Remove the message from the messageQueue after successful sending messageQueue = messageQueue.slice(1); // Slice here remains for successful messages @@ -136,10 +140,10 @@ export const MessageQueueProvider = ({ children }) => { // Remove the message from the messageQueue after max retries messageQueue = messageQueue.slice(1); // Slice for failed messages after max retries - // Remove the message from queueChats after failure - updatedChats[groupDirectId] = updatedChats[groupDirectId].filter( - (item) => item.identifier !== identifier - ); + // // Remove the message from queueChats after failure + // updatedChats[groupDirectId] = updatedChats[groupDirectId].filter( + // (item) => item.identifier !== identifier + // ); } } return updatedChats; diff --git a/src/components/Chat/ChatList.tsx b/src/components/Chat/ChatList.tsx index 284fc6f..1d0ccea 100644 --- a/src/components/Chat/ChatList.tsx +++ b/src/components/Chat/ChatList.tsx @@ -33,7 +33,7 @@ export const ChatList = ({ initialMessages, myAddress, tempMessages, chatId, onR const uniqueInitialMessages = Array.from(uniqueInitialMessagesMap.values()).sort( (a, b) => a.timestamp - b.timestamp ); - const totalMessages = [...uniqueInitialMessages, ...(tempMessages || [])]; + const totalMessages = [...uniqueInitialMessages, ...(tempMessages || [])] if (totalMessages.length === 0) return; @@ -151,6 +151,7 @@ export const ChatList = ({ initialMessages, myAddress, tempMessages, chatId, onR ...(message?.message || {}), isTemp: true, unread: false, + status: message?.status }; } diff --git a/src/components/Chat/MessageItem.tsx b/src/components/Chat/MessageItem.tsx index f320fd0..03e6c3c 100644 --- a/src/components/Chat/MessageItem.tsx +++ b/src/components/Chat/MessageItem.tsx @@ -37,6 +37,8 @@ export const MessageItem = ({ triggerOnce: false, // Only trigger once when it becomes visible }); + + useEffect(() => { if (inView && isLast && onSeen) { onSeen(message.id); @@ -262,21 +264,21 @@ export const MessageItem = ({ - Updating... + {message?.status === 'failed-permanent' ? 'Failed to update' : 'Updating...'} ) : isTemp ? ( - Sending... + {message?.status === 'failed-permanent' ? 'Failed to send' : 'Sending...'} ) : (