feat(react): create chat info component
This commit is contained in:
parent
8ea0b46cde
commit
03a25463e2
|
@ -0,0 +1,75 @@
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
import { PinIcon } from '~/src/icons/pin-icon'
|
||||||
|
import { Avatar, DialogTrigger, Flex, Text } from '~/src/system'
|
||||||
|
|
||||||
|
import { PinnedMessagesDialog } from './pinned-messages-dialog'
|
||||||
|
|
||||||
|
import type { Chat } from '~/src/protocol/use-chat'
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
chat: Chat
|
||||||
|
}
|
||||||
|
|
||||||
|
export const ChatInfo = (props: Props) => {
|
||||||
|
const { chat } = props
|
||||||
|
|
||||||
|
if (chat.type == 'channel') {
|
||||||
|
return (
|
||||||
|
<Flex align="center" gap="2">
|
||||||
|
<Avatar size={36} src={chat.imageUrl} />
|
||||||
|
<div>
|
||||||
|
<Text>#general</Text>
|
||||||
|
<Flex align="center">
|
||||||
|
<Text size={12} color="gray">
|
||||||
|
<DialogTrigger>
|
||||||
|
<button
|
||||||
|
style={{ display: 'inline-flex', alignItems: 'center' }}
|
||||||
|
>
|
||||||
|
{/* <PinIcon width={7} height={13} />2 pinned messages */}2
|
||||||
|
pinned messages
|
||||||
|
</button>
|
||||||
|
<PinnedMessagesDialog />
|
||||||
|
</DialogTrigger>{' '}
|
||||||
|
| General discussions about CryptoKitties.
|
||||||
|
</Text>
|
||||||
|
</Flex>
|
||||||
|
</div>
|
||||||
|
</Flex>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (chat.type == 'group-chat') {
|
||||||
|
return (
|
||||||
|
<Flex align="center" gap="2">
|
||||||
|
<Avatar size={36} src={chat.imageUrl} />
|
||||||
|
<div>
|
||||||
|
<Text>Climate Change</Text>
|
||||||
|
<Flex align="center">
|
||||||
|
<DialogTrigger>
|
||||||
|
<Text as="button" size={12} color="gray">
|
||||||
|
<PinIcon width={7} /> 2 pinned messages
|
||||||
|
</Text>
|
||||||
|
<PinnedMessagesDialog />
|
||||||
|
</DialogTrigger>
|
||||||
|
<Text size={12} color="gray">
|
||||||
|
| 5 members
|
||||||
|
</Text>
|
||||||
|
</Flex>
|
||||||
|
</div>
|
||||||
|
</Flex>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Flex align="center" gap="2">
|
||||||
|
<Avatar size={36} src={chat.imageUrl} />
|
||||||
|
<div>
|
||||||
|
<Text>pvl.eth</Text>
|
||||||
|
<Text size={12} color="gray">
|
||||||
|
0x63FaC9201494f0bd17B9892B9fae4d52fe3BD377
|
||||||
|
</Text>
|
||||||
|
</div>
|
||||||
|
</Flex>
|
||||||
|
)
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
import { Dialog } from '~/src/system'
|
||||||
|
|
||||||
|
export const PinnedMessagesDialog = () => {
|
||||||
|
return (
|
||||||
|
<Dialog title="Pinned Messages" size="1060">
|
||||||
|
<Dialog.Body>{/* TODO: Add pinned messages */}</Dialog.Body>
|
||||||
|
</Dialog>
|
||||||
|
)
|
||||||
|
}
|
Loading…
Reference in New Issue