import type { ChatMember } from '../../graphql/schema/chat.gen' import { clsx } from 'clsx' import { Match, Show, Switch, createMemo } from 'solid-js' import { useLocalize } from '../../context/localize' import { Author } from '../../graphql/schema/core.gen' import { AuthorBadge } from '../Author/AuthorBadge' import DialogAvatar from './DialogAvatar' import GroupDialogAvatar from './GroupDialogAvatar' import styles from './DialogCard.module.scss' type DialogProps = { online?: boolean message?: string counter?: number ownId: number members: ChatMember[] onClick?: () => void isChatHeader?: boolean lastUpdate?: number isOpened?: boolean } const DialogCard = (props: DialogProps) => { const { t, formatTime } = useLocalize() const companions = createMemo(() => props.members?.filter((member: ChatMember) => member.id !== props.ownId), ) const names = createMemo(() => (companions() || []).map((companion) => companion.name).join(', ')) return ( 0} fallback={
'No chat members'
}>
} >
} > = 3}>
{companions()?.length > 1 ? t('Group Chat') : companions()[0]?.name}
1}>{names()}
{formatTime(new Date(props.lastUpdate * 1000))}
0}>
{props.counter}
) } export default DialogCard