mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
load orbis conversations
This commit is contained in:
parent
2b2e04e817
commit
3d057f942b
@ -1,6 +1,8 @@
|
|||||||
.conversationBox {
|
.conversationBox {
|
||||||
padding: calc(var(--spacer) / 2);
|
padding: calc(var(--spacer) / 2);
|
||||||
height: calc(100% - (var(--spacer) * 3.5));
|
height: calc(100% - (var(--spacer) * 3.5));
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column-reverse;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,7 +39,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.chatBubbleItem {
|
.chatBubbleItem {
|
||||||
display: block;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chatBubbleItem + .chatBubbleItem {
|
.chatBubbleItem + .chatBubbleItem {
|
||||||
@ -50,23 +52,35 @@
|
|||||||
padding: calc(var(--spacer) / 4) calc(var(--spacer) / 2.5);
|
padding: calc(var(--spacer) / 4) calc(var(--spacer) / 2.5);
|
||||||
font-size: var(--font-size-base);
|
font-size: var(--font-size-base);
|
||||||
border-radius: 1rem;
|
border-radius: 1rem;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
word-break: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chatPrimary {
|
.chatPrimary {
|
||||||
|
margin-left: auto;
|
||||||
color: var(--brand-white);
|
color: var(--brand-white);
|
||||||
background-color: var(--color-primary);
|
background-color: var(--color-primary);
|
||||||
|
border-bottom-right-radius: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chatDefault {
|
.chatDefault {
|
||||||
|
border-bottom-left-radius: 0px;
|
||||||
background-color: var(--border-color);
|
background-color: var(--border-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.conversationRecipient .colBubble .chatBubbleItem .chatBubble {
|
.conversationRecipient[data-sender='away']
|
||||||
border-top-left-radius: 0;
|
+ .conversationRecipient[data-sender='away']
|
||||||
border-bottom-left-radius: 0px;
|
.chatBubble {
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.conversationRecipient .colBubble .chatBubbleItem:first-of-type .chatBubble {
|
/* .conversationRecipient .colBubble .chatBubbleItem .chatBubble {
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-bottom-left-radius: 0px;
|
||||||
|
} */
|
||||||
|
|
||||||
|
/* .conversationRecipient .colBubble .chatBubbleItem:first-of-type .chatBubble {
|
||||||
border-top-left-radius: 1rem;
|
border-top-left-radius: 1rem;
|
||||||
border-bottom-left-radius: 0px;
|
border-bottom-left-radius: 0px;
|
||||||
}
|
}
|
||||||
@ -80,7 +94,7 @@
|
|||||||
.conversationSend .colBubble .chatBubbleItem:first-of-type .chatBubble {
|
.conversationSend .colBubble .chatBubbleItem:first-of-type .chatBubble {
|
||||||
border-top-right-radius: 1rem;
|
border-top-right-radius: 1rem;
|
||||||
border-bottom-left-radius: 0px;
|
border-bottom-left-radius: 0px;
|
||||||
}
|
} */
|
||||||
|
|
||||||
.chatStamp {
|
.chatStamp {
|
||||||
font-size: var(--font-size-small);
|
font-size: var(--font-size-small);
|
||||||
|
@ -1,111 +1,119 @@
|
|||||||
import React, { useEffect } from 'react'
|
import React, { useEffect, useState } from 'react'
|
||||||
|
import { useOrbis } from '@context/Orbis'
|
||||||
import styles from './Conversation.module.css'
|
import styles from './Conversation.module.css'
|
||||||
|
|
||||||
|
function RenderDecryptedMessage({
|
||||||
|
content
|
||||||
|
}: {
|
||||||
|
content: OrbisPostContentInterface
|
||||||
|
}) {
|
||||||
|
const { orbis } = useOrbis()
|
||||||
|
const [decrypted, setDecrypted] = useState(null)
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const decryptMessage = async (content: OrbisPostContentInterface) => {
|
||||||
|
const res = await orbis.decryptMessage(content)
|
||||||
|
|
||||||
|
if (res) {
|
||||||
|
console.log(res)
|
||||||
|
}
|
||||||
|
|
||||||
|
setDecrypted(res.result)
|
||||||
|
}
|
||||||
|
if (content) {
|
||||||
|
console.log(content)
|
||||||
|
decryptMessage(content)
|
||||||
|
}
|
||||||
|
}, [content])
|
||||||
|
|
||||||
|
return <>{decrypted}</>
|
||||||
|
}
|
||||||
|
|
||||||
export default function DmConversation({
|
export default function DmConversation({
|
||||||
messages,
|
messages
|
||||||
orbis
|
|
||||||
}: {
|
}: {
|
||||||
messages: OrbisPostInterface[]
|
messages: OrbisPostInterface[]
|
||||||
orbis: OrbisInterface
|
|
||||||
}) {
|
}) {
|
||||||
const dummyData = [
|
const { account } = useOrbis()
|
||||||
{
|
|
||||||
name: 'realdatawhale.eth',
|
|
||||||
image: '/apple-touch-icon.png',
|
|
||||||
chat1: 'Hello friend whats up!',
|
|
||||||
chat2:
|
|
||||||
'I have this exact same issue with using brave browser. It wont prompt for metamask instead asking to connect to brave wallet.',
|
|
||||||
chat3: 'Hello!',
|
|
||||||
chat4: 'Yeah thats weird!',
|
|
||||||
chat5:
|
|
||||||
'Did you update your profile within Orbis or with an app you built?!',
|
|
||||||
timestamp: 'Jul 27, 2022, 3:39 AM'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
const decryptMessage = async (content: OrbisPostContentInterface) => {
|
|
||||||
const res = await orbis.decryptMessage(content)
|
|
||||||
|
|
||||||
if (res) {
|
|
||||||
console.log(res)
|
|
||||||
}
|
|
||||||
return <>{res.result}</>
|
|
||||||
}
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
console.log(messages)
|
console.log(messages)
|
||||||
messages.forEach((message) => {
|
// messages.forEach((message) => {
|
||||||
decryptMessage(message?.content)
|
// decryptMessage(message?.content)
|
||||||
})
|
// })
|
||||||
}, [messages])
|
}, [messages])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<div className={styles.conversationBox}>
|
||||||
{messages.map((dm, index) => (
|
{messages.map((message, index) => (
|
||||||
<div className={styles.conversationBox} key={index}>
|
<div
|
||||||
<div className={styles.conversationRecipient}>
|
className={styles.conversationRecipient}
|
||||||
<div className={styles.colAvatar}>
|
key={index}
|
||||||
{/* <img src={} alt="Avatar" className={styles.avatar}></img> */}
|
data-sender={
|
||||||
</div>
|
account?.did === message.creator_details.did ? 'home' : 'away'
|
||||||
<div className={styles.colBubble}>
|
}
|
||||||
<div className={styles.chatBubbleItem}>
|
>
|
||||||
<div className={`${styles.chatBubble} ${styles.chatPrimary}`}>
|
<div className={styles.colAvatar}>
|
||||||
(<>{decryptMessage(dm.content)}</>)
|
{/* <img src={} alt="Avatar" className={styles.avatar}></img> */}
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className={styles.chatBubbleItem}>
|
|
||||||
<div className={`${styles.chatBubble} ${styles.chatPrimary}`}>
|
|
||||||
{/* {dm.chat2} */}
|
|
||||||
</div>
|
|
||||||
<div className={styles.chatStamp}>{dm.timestamp}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className={styles.conversationSend}>
|
<div className={styles.colBubble}>
|
||||||
<div className={styles.colBubble}>
|
<div className={styles.chatBubbleItem}>
|
||||||
<div className={styles.chatBubbleItem}>
|
<div
|
||||||
<div className={`${styles.chatBubble} ${styles.chatDefault}`}>
|
className={`${styles.chatBubble} ${
|
||||||
{/* {dm.chat3} */}
|
account?.did === message.creator_details.did
|
||||||
</div>
|
? styles.chatPrimary
|
||||||
</div>
|
: styles.chatDefault
|
||||||
<div className={styles.chatBubbleItem}>
|
}`}
|
||||||
<div className={`${styles.chatBubble} ${styles.chatDefault}`}>
|
>
|
||||||
{/* {dm.chat4} */}
|
<RenderDecryptedMessage content={message.content} />
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className={styles.chatBubbleItem}>
|
|
||||||
<div className={`${styles.chatBubble} ${styles.chatDefault}`}>
|
|
||||||
{/* {dm.chat5} */}
|
|
||||||
</div>
|
|
||||||
<div className={styles.chatStamp}>{dm.timestamp}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className={styles.conversationRecipient}>
|
|
||||||
<div className={styles.colAvatar}>
|
|
||||||
{/* <img src={} alt="Avatar" className={styles.avatar}></img> */}
|
|
||||||
</div>
|
|
||||||
<div className={styles.colBubble}>
|
|
||||||
<div className={styles.chatBubbleItem}>
|
|
||||||
<div className={`${styles.chatBubble} ${styles.chatPrimary}`}>
|
|
||||||
{/* {dm.chat1} */}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className={styles.chatBubbleItem}>
|
|
||||||
<div className={`${styles.chatBubble} ${styles.chatPrimary}`}>
|
|
||||||
{/* {dm.chat4} */}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className={styles.chatBubbleItem}>
|
|
||||||
<div className={`${styles.chatBubble} ${styles.chatPrimary}`}>
|
|
||||||
{/* {dm.chat2} */}
|
|
||||||
</div>
|
|
||||||
<div className={styles.chatStamp}>{dm.timestamp}</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</>
|
{/* <div className={styles.conversationSend}>
|
||||||
|
<div className={styles.colBubble}>
|
||||||
|
<div className={styles.chatBubbleItem}>
|
||||||
|
<div className={`${styles.chatBubble} ${styles.chatDefault}`}>
|
||||||
|
{dm.chat3}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className={styles.chatBubbleItem}>
|
||||||
|
<div className={`${styles.chatBubble} ${styles.chatDefault}`}>
|
||||||
|
{dm.chat4}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className={styles.chatBubbleItem}>
|
||||||
|
<div className={`${styles.chatBubble} ${styles.chatDefault}`}>
|
||||||
|
{dm.chat5}
|
||||||
|
</div>
|
||||||
|
<div className={styles.chatStamp}>{dm.timestamp}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className={styles.conversationRecipient}>
|
||||||
|
<div className={styles.colAvatar}>
|
||||||
|
<img src={} alt="Avatar" className={styles.avatar}></img>
|
||||||
|
</div>
|
||||||
|
<div className={styles.colBubble}>
|
||||||
|
<div className={styles.chatBubbleItem}>
|
||||||
|
<div className={`${styles.chatBubble} ${styles.chatPrimary}`}>
|
||||||
|
{dm.chat1}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className={styles.chatBubbleItem}>
|
||||||
|
<div className={`${styles.chatBubble} ${styles.chatPrimary}`}>
|
||||||
|
{dm.chat4}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className={styles.chatBubbleItem}>
|
||||||
|
<div className={`${styles.chatBubble} ${styles.chatPrimary}`}>
|
||||||
|
{dm.chat2}
|
||||||
|
</div>
|
||||||
|
<div className={styles.chatStamp}>{dm.timestamp}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div> */}
|
||||||
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user