useShallow

dev/chat
Lei OT 1 year ago
parent e4b55d6303
commit a72914c955

@ -2,11 +2,13 @@ import { useEffect, useState, useRef, useMemo } from 'react';
import { Image, Alert } from 'antd'; import { Image, Alert } from 'antd';
import { MessageBox } from 'react-chat-elements'; import { MessageBox } from 'react-chat-elements';
import useConversationStore from '@/stores/ConversationStore'; import useConversationStore from '@/stores/ConversationStore';
import { useShallow } from 'zustand/react/shallow';
const Messages = () => { const Messages = () => {
const { activeConversations, currentConversation, setReferenceMsg } = useConversationStore(); const { currentConversation, setReferenceMsg } = useConversationStore();
const activeMessages = useConversationStore(useShallow(state => currentConversation.sn ? state.activeConversations[currentConversation.sn] : []));
const messagesList = useMemo(() => (activeConversations[currentConversation.sn] || []).map(message => ({ const messagesList = useMemo(() => (activeMessages || []).map(message => ({
...message, ...message,
key: message.id, key: message.id,
position: message.sender === 'me' ? 'right' : 'left', position: message.sender === 'me' ? 'right' : 'left',
@ -21,7 +23,7 @@ const Messages = () => {
replyButton: ['text'].includes(message.whatsapp_msg_type) ? true : false, replyButton: ['text'].includes(message.whatsapp_msg_type) ? true : false,
onReplyClick: () => (setReferenceMsg(message)), onReplyClick: () => (setReferenceMsg(message)),
}), }),
})), [activeConversations, currentConversation.sn]); })), [activeMessages, currentConversation.sn]);
console.log('messagesList----------------------------------------------------', messagesList); console.log('messagesList----------------------------------------------------', messagesList);
const messagesEndRef = useRef(null); const messagesEndRef = useRef(null);

Loading…
Cancel
Save