import { useEffect, useRef } from "react"; import { Message } from "./Message"; interface Props { messages: Message[]; } export default function ChatList(props: Props) { const renderedMessages = props.messages.map((message) => (
{message.nick} {formatDisplayDate(message)}

{message.payloadAsUtf8}

)); return (
{renderedMessages}
); } function formatDisplayDate(message: Message): string { return message.timestamp.toLocaleString([], { month: "short", day: "numeric", hour: "numeric", minute: "2-digit", hour12: false, }); } const AlwaysScrollToBottom = (props: { messages: Message[] }) => { const elementRef = useRef(null); useEffect(() => { if (elementRef.current) { elementRef.current.scrollIntoView(); } }, [props.messages]); return
; };