next-chat / hooks /use-messages.tsx
NeoPy's picture
Upload folder using huggingface_hub
867b17d verified
raw
history blame
940 Bytes
import { useState, useEffect } from 'react';
import { useScrollToBottom } from './use-scroll-to-bottom';
import type { UseChatHelpers } from '@ai-sdk/react';
import type { ChatMessage } from '@/lib/types';
export function useMessages({
chatId,
status,
}: {
chatId: string;
status: UseChatHelpers<ChatMessage>['status'];
}) {
const {
containerRef,
endRef,
isAtBottom,
scrollToBottom,
onViewportEnter,
onViewportLeave,
} = useScrollToBottom();
const [hasSentMessage, setHasSentMessage] = useState(false);
useEffect(() => {
if (chatId) {
scrollToBottom('instant');
setHasSentMessage(false);
}
}, [chatId, scrollToBottom]);
useEffect(() => {
if (status === 'submitted') {
setHasSentMessage(true);
}
}, [status]);
return {
containerRef,
endRef,
isAtBottom,
scrollToBottom,
onViewportEnter,
onViewportLeave,
hasSentMessage,
};
}