import React, { memo, useEffect, useRef } from 'react'; import { Flex, Box, Stack, Text as ChakraText } from '@chakra-ui/react'; import { Avatar, IAvatarProps } from './Avatar'; import { Text, ITextProps } from './Text'; import { MessageContext } from './context'; import { MessageType } from '@educt/types'; interface IMessageComposition { Avatar: React.FC; Text: React.FC; } interface IMyMessageProps { isMyMessage: boolean; } const MessageList: React.FC<{ messages: MessageType[] }> = memo(({ messages }) => { const listRef = useRef(null); useEffect(() => { if (listRef.current) { listRef.current.scrollTo(0, listRef.current.scrollHeight); } }, [messages]); return ( {messages.length !== 0 ? ( messages.map((message, i) => ( )) ) : ( Your message history will be displayed here. )} ); }); const Message: React.FC & IMessageComposition = ({ children, isMyMessage }) => { return ( {children} ); }; Message.Avatar = Avatar; Message.Text = Text; export { MessageList, Message };