stream-chat-react
Version:
React components to create chat conversations or livestream style chat
19 lines (18 loc) • 653 B
JavaScript
import { useEffect, useRef, useState } from 'react';
export const useMessageSetKey = ({ messages }) => {
/**
* Logic to update the key of the virtuoso component when the list jumps to a new location.
*/
const [messageSetKey, setMessageSetKey] = useState(+new Date());
const firstMessageId = useRef(undefined);
useEffect(() => {
const continuousSet = messages?.find((message) => message.id === firstMessageId.current);
if (!continuousSet) {
setMessageSetKey(+new Date());
}
firstMessageId.current = messages?.[0]?.id;
}, [messages]);
return {
messageSetKey,
};
};