You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailchat/client/web/src/components/ChatBox/useMessageAck.ts

23 lines
703 B
TypeScript

import { useEffect } from 'react';
import { ChatMessage, useConverseAck, useUpdateRef } from 'tailchat-shared';
import _debounce from 'lodash/debounce';
import _last from 'lodash/last';
export function useMessageAck(converseId: string, messages: ChatMessage[]) {
const { updateConverseAck } = useConverseAck(converseId);
const messagesRef = useUpdateRef(messages);
const updateConverseAckRef = useUpdateRef(updateConverseAck);
useEffect(() => {
// 设置当前
if (messagesRef.current.length === 0) {
return;
}
const lastMessageId = _last(messagesRef.current)!._id;
updateConverseAckRef.current(lastMessageId);
}, [converseId]);
return { updateConverseAck };
}