import { useMemo } from "react"; import { Box, Stack } from "@mui/material"; import { CommentBodyWithMentions } from "@/components/common/comment-body-with-mentions"; import { Text } from "@/components/ui/text"; import type { MentionLookup } from "@/domain/work-orders/utils/comment-mentions"; import { formatDateTime } from "@/lib/time-utils"; export type CommentTimelineItem = { id: string | number; author: string; createdAt?: string; body: string; mentions?: string[]; }; type CommentTimelineProps = { items: CommentTimelineItem[]; emptyMessage?: string; maxHeightClass?: string; mentionUsers?: MentionLookup[]; }; export function CommentTimeline({ items, emptyMessage = "No comments yet.", maxHeightClass = "max-h-72", mentionUsers, }: CommentTimelineProps) { const sorted = useMemo( () => [...items].sort((a, b) => { const aTime = a.createdAt ? new Date(a.createdAt).getTime() : 0; const bTime = b.createdAt ? new Date(b.createdAt).getTime() : 0; return aTime - bTime; }), [items], ); if (!sorted.length) { return {emptyMessage}; } return ( {sorted.map((item) => ( {item.author} {item.createdAt ? formatDateTime(item.createdAt) : ""} ))} ); }