From 2b2e04e817705a5cd1fa5103b5cdfa332dc78896 Mon Sep 17 00:00:00 2001 From: Dollar Bull Date: Mon, 3 Oct 2022 20:49:46 +0700 Subject: [PATCH] adding orbis function --- .../Orbis/FloatingChat/Conversation.tsx | 48 ++++++++++----- .../Orbis/FloatingChat/index.module.css | 2 +- .../@shared/Orbis/FloatingChat/index.tsx | 58 +++++++++++++++---- 3 files changed, 83 insertions(+), 25 deletions(-) diff --git a/src/components/@shared/Orbis/FloatingChat/Conversation.tsx b/src/components/@shared/Orbis/FloatingChat/Conversation.tsx index 63e4ddbc8..cea99a7bb 100644 --- a/src/components/@shared/Orbis/FloatingChat/Conversation.tsx +++ b/src/components/@shared/Orbis/FloatingChat/Conversation.tsx @@ -1,7 +1,13 @@ -import React from 'react' +import React, { useEffect } from 'react' import styles from './Conversation.module.css' -export default function DmConversation() { +export default function DmConversation({ + messages, + orbis +}: { + messages: OrbisPostInterface[] + orbis: OrbisInterface +}) { const dummyData = [ { name: 'realdatawhale.eth', @@ -17,23 +23,39 @@ export default function DmConversation() { } ] + const decryptMessage = async (content: OrbisPostContentInterface) => { + const res = await orbis.decryptMessage(content) + + if (res) { + console.log(res) + } + return <>{res.result} + } + + useEffect(() => { + console.log(messages) + messages.forEach((message) => { + decryptMessage(message?.content) + }) + }, [messages]) + return ( <> - {dummyData.map((dm, index) => ( + {messages.map((dm, index) => (
- Avatar + {/* Avatar */}
- {dm.chat1} + (<>{decryptMessage(dm.content)})
- {dm.chat2} + {/* {dm.chat2} */}
{dm.timestamp}
@@ -43,17 +65,17 @@ export default function DmConversation() {
- {dm.chat3} + {/* {dm.chat3} */}
- {dm.chat4} + {/* {dm.chat4} */}
- {dm.chat5} + {/* {dm.chat5} */}
{dm.timestamp}
@@ -61,22 +83,22 @@ export default function DmConversation() {
- Avatar + {/* Avatar */}
- {dm.chat1} + {/* {dm.chat1} */}
- {dm.chat4} + {/* {dm.chat4} */}
- {dm.chat2} + {/* {dm.chat2} */}
{dm.timestamp}
diff --git a/src/components/@shared/Orbis/FloatingChat/index.module.css b/src/components/@shared/Orbis/FloatingChat/index.module.css index b8e8ca6bf..358032356 100644 --- a/src/components/@shared/Orbis/FloatingChat/index.module.css +++ b/src/components/@shared/Orbis/FloatingChat/index.module.css @@ -174,7 +174,7 @@ white-space: nowrap; } -.dmDetails { +.conversationId { position: absolute; top: 0; left: 0; diff --git a/src/components/@shared/Orbis/FloatingChat/index.tsx b/src/components/@shared/Orbis/FloatingChat/index.tsx index fc2e8fb65..40f4e7ad0 100644 --- a/src/components/@shared/Orbis/FloatingChat/index.tsx +++ b/src/components/@shared/Orbis/FloatingChat/index.tsx @@ -1,14 +1,49 @@ -import React, { useState } from 'react' +import React, { useState, useEffect } from 'react' import ChatBubble from '@images/chatbubble.svg' import ArrowBack from '@images/arrow.svg' import ChevronDoubleUp from '@images/chevrondoubleup.svg' import styles from './index.module.css' import Conversation from './Conversation' import ChatToolbar from './ChatToolbar' +import { useOrbis } from '@context/Orbis' export default function FloatingChat() { const [opened, setOpened] = useState(false) - const [dmDetails, setDmDetails] = useState(null) + const [conversationId, setConversationId] = useState(null) + const [conversations, setConversations] = useState([]) + const [messages, setMessages] = useState([]) + + const { orbis, account } = useOrbis() + + const getConversations = async () => { + const { data, error } = await orbis.getConversations({ did: account?.did }) + + if (data) { + console.log(data) + setConversations(data) + } + if (error) { + console.log(error) + } + } + + useEffect(() => { + if (orbis && account) { + getConversations() + } + }, [orbis, account]) + + const getMessages = async (id: string) => { + const { data, error } = await orbis.getMessages(id) + + if (data) { + console.log(data) + setMessages(data) + } + if (error) { + console.log(error) + } + } const dummyData = [ { @@ -45,8 +80,9 @@ export default function FloatingChat() { return prev + +current.count }, 0) - function openDetails(id: string) { - setDmDetails(id) + function openConversation(id: string) { + setConversationId(id) + getMessages(id) } return ( @@ -69,11 +105,11 @@ export default function FloatingChat() {
- {dummyData.map((dm, index) => ( + {conversations.map((dm, index) => (
openDetails(dm.name)} + onClick={() => openConversation(dm.stream_id)} >
))}
- {dmDetails && ( -
+ {conversationId && ( +
- {dmDetails} + {conversationId}
- +
)}