import { MessageItem } from "@components/PageComponents/Messages/MessageItem.tsx";
import type { Message as Message } from "@core/stores/messageStore.ts";
import { InboxIcon } from "lucide-react";
import { useCallback, useEffect, useRef } from "react";
export interface ChannelChatProps {
messages?: Message[];
}
const EmptyState = () => (
No Messages
);
export const ChannelChat = ({
messages = [],
}: ChannelChatProps) => {
const messagesEndRef = useRef(null);
const scrollContainerRef = useRef(null);
const scrollToBottom = useCallback(() => {
const scrollContainer = scrollContainerRef.current;
if (scrollContainer) {
const isNearBottom =
scrollContainer.scrollHeight -
scrollContainer.scrollTop -
scrollContainer.clientHeight <
100;
if (isNearBottom) {
messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
}
}
}, []);
useEffect(() => {
scrollToBottom();
}, [scrollToBottom, messages]);
if (!messages?.length) {
return (
);
}
return (
{messages?.map((message, index) => (
0 &&
messages[index - 1].from === message.from
}
/>
))}
);
};