import React, { ReactNode } from "react" import StatusIndicator from "../../fundamentals/status-indicator" import Tooltip from "../../atoms/tooltip" import clsx from "clsx" export type ActivityCardProps = { key?: string title: string icon?: ReactNode relativeTimeElapsed?: string date?: string | Date shouldShowStatus?: boolean children?: ReactNode[] } export const ActivityCard: React.FC = ( props: ActivityCardProps ) => { const { key, title, icon, relativeTimeElapsed, shouldShowStatus, children } = props const date = !!props.date && new Date(props.date).toLocaleDateString("en-us", { hour12: true, day: "2-digit", month: "short", hour: "numeric", minute: "numeric", second: "numeric", }) const formattedDate = !!date && date.replace(",", " at") const getTimeElement = () => { return (
{!!relativeTimeElapsed && {relativeTimeElapsed}} {shouldShowStatus && ( )}
) } return (
{!!icon && icon} {title}
{(!!relativeTimeElapsed || shouldShowStatus) && (formattedDate ? ( {getTimeElement()} ) : ( getTimeElement() ))}
{children}
) }