webapp/src/components/Inbox/DialogCard.tsx

49 lines
1.4 KiB
TypeScript
Raw Normal View History

2022-11-10 15:06:02 +00:00
import styles from './DialogCard.module.scss'
import DialogAvatar from './DialogAvatar'
2022-11-29 07:04:38 +00:00
import type { ChatMember } from '../../graphql/types.gen'
2022-11-29 05:36:32 +00:00
import GroupDialogAvatar from './GroupDialogAvatar'
2022-11-10 15:06:02 +00:00
2022-11-15 12:15:07 +00:00
type DialogProps = {
2022-11-10 15:06:02 +00:00
online?: boolean
message?: string
counter?: number
2022-11-28 04:10:13 +00:00
title?: string
2022-11-27 11:45:36 +00:00
ownSlug: string
2022-11-27 18:08:11 +00:00
members: ChatMember[]
2022-11-30 15:25:02 +00:00
onClick: () => void
2022-11-15 09:45:55 +00:00
}
2022-11-15 12:15:07 +00:00
const DialogCard = (props: DialogProps) => {
2022-11-30 15:25:02 +00:00
if (!props.members) return
2022-11-27 18:08:11 +00:00
const companions = props.members.filter((member) => member.slug !== props.ownSlug)
2022-11-10 15:06:02 +00:00
return (
2022-11-30 15:25:02 +00:00
<div class={styles.DialogCard} onClick={props.onClick}>
2022-11-28 04:10:13 +00:00
<div class={styles.avatar}>
2022-11-29 07:04:38 +00:00
{companions.length > 2 ? (
2022-11-29 05:36:32 +00:00
<GroupDialogAvatar users={companions} />
) : (
<DialogAvatar name={props.members[0].name} url={props.members[0].userpic} />
)}
2022-11-28 04:10:13 +00:00
</div>
2022-11-10 15:58:43 +00:00
<div class={styles.row}>
2022-11-28 04:10:13 +00:00
{companions.length > 1 ? (
<div class={styles.name}>{props.title}</div>
) : (
<div class={styles.name}>{companions[0].name}</div>
)}
2022-11-10 15:06:02 +00:00
<div class={styles.message}>
Указать предпочтительные языки для результатов поиска можно в разделе
</div>
</div>
<div class={styles.activity}>
<div class={styles.time}>22:22</div>
<div class={styles.counter}>
<span>12</span>
</div>
</div>
</div>
)
}
export default DialogCard