webapp/src/components/Inbox/DialogCard.tsx

51 lines
1.5 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-12-01 03:26:44 +00:00
import { Show } from 'solid-js'
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-12-01 03:26:44 +00:00
const companions = props.members && props.members.filter((member) => member.slug !== props.ownSlug)
2022-11-10 15:06:02 +00:00
return (
2022-12-01 03:26:44 +00:00
<Show when={props.members}>
<div class={styles.DialogCard} onClick={props.onClick}>
<div class={styles.avatar}>
{companions.length > 2 ? (
<GroupDialogAvatar users={companions} />
) : (
<DialogAvatar name={props.members[0].name} url={props.members[0].userpic} />
)}
2022-11-10 15:06:02 +00:00
</div>
2022-12-01 03:26:44 +00:00
<div class={styles.row}>
{companions.length > 1 ? (
<div class={styles.name}>{props.title}</div>
) : (
<div class={styles.name}>{companions[0].name}</div>
)}
<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>
2022-11-10 15:06:02 +00:00
</div>
</div>
2022-12-01 03:26:44 +00:00
</Show>
2022-11-10 15:06:02 +00:00
)
}
export default DialogCard