mirror of
https://github.com/oceanprotocol/market.git
synced 2024-06-17 01:43:23 +02:00
* add orbis context * new changes * Add orbis floating chat * adding orbis function * load orbis conversations * update message button in profile * minor fix conversation styles * update orbis version * adding details conditional * updating post comment function * Update send message button style * Fix send message button css * udpate orbis * update posts and floating function * Add chatbox emoji * Add Emoji Picker Theme * useDarkMode emoji fix * remove next dynamic on emoji picker * show conversation title from participant * update callbackMessage. * Update Emoji Picker * Add Emoji Picker to Postbox * rename FloatingChat to DirectMessages * create some global orbis components * update package-lock.json * change any type * change Blockie to Avatar component * fix type errors * fix infinite loop when no comment found * Hide send message button on ownAccount profile * Delete unused component * minor changes * update orbis comment and DM components * fix load older messages on DM scroll * fixed orbis createPost * update optional wallet signs * add return value on connect * add padding bottom to compensate DM component * add conditional connect and sign button * update direct message component * update get notifications logic * rerun npm install * rerun npm install * temporary push * rerun npm install * add new custom hooks * run npm install * update flow on address changed * update custom DID string * remove lit auth signatures on resetStates() * add hasLit condition on getMessages * add removeCeramicSession function * useLocalStorage to store notifications * minor bug fix * update styles for conversation details * use getEnsName util * update create conversation flow * rerun npm install * update typescript * update orbis sdk version * temporary push * revisions * update orbis version * update notifs count and conversation creation flow * update orbis types * add toast after copy address * add message decryption refresh button * rerun npm install * remove comment from asset page * test push * remove lit-auth-signature on wallet changed * update orbis SDK to v0.4.14 * update copy * update Orbis SDK to v0.4.17 * update copy * create new DM button component and add to asset * add send button and remove emojiPicker * Revert "Merge branch 'main' into orbis" This reverts commit3cdaf54827
, reversing changes made to02f2acb774
. * Revert "Revert "Merge branch 'main' into orbis"" This reverts commita5a32b1534
. * update new conversation flow * update intro message * minor fix typo * remove unused package and fixed outdated versions * remove comment component and restructured folders * update orbis-sdk * small cleanup * direct message button style updates --------- Co-authored-by: Nuary Pradipta <nuary.pradipta@gmail.com> Co-authored-by: Dollar Bull <ramadhanakhri@gmail.com> Co-authored-by: Bogdan Fazakas <bogdan.fazakas@gmail.com>
78 lines
2.1 KiB
TypeScript
78 lines
2.1 KiB
TypeScript
import React, { useEffect, useState } from 'react'
|
|
import Button from '@shared/atoms/Button'
|
|
import styles from './DmButton.module.css'
|
|
import { useWeb3 } from '@context/Web3'
|
|
import { useOrbis } from '@context/DirectMessages'
|
|
|
|
export default function DmButton({
|
|
accountId,
|
|
text = 'Send Message'
|
|
}: {
|
|
accountId: string
|
|
text?: string
|
|
}) {
|
|
const { accountId: ownAccountId, connect } = useWeb3()
|
|
const {
|
|
checkOrbisConnection,
|
|
getConversationByDid,
|
|
setConversationId,
|
|
setOpenConversations,
|
|
createConversation,
|
|
getDid
|
|
} = useOrbis()
|
|
const [userDid, setUserDid] = useState<string | undefined>()
|
|
const [isCreatingConversation, setIsCreatingConversation] = useState(false)
|
|
|
|
const handleActivation = async () => {
|
|
const resConnect = await connect()
|
|
if (resConnect) {
|
|
await checkOrbisConnection({
|
|
address: resConnect,
|
|
autoConnect: true,
|
|
lit: true
|
|
})
|
|
}
|
|
}
|
|
|
|
useEffect(() => {
|
|
const getUserDid = async () => {
|
|
const did = await getDid(accountId)
|
|
setUserDid(did)
|
|
}
|
|
|
|
if (accountId) {
|
|
getUserDid()
|
|
}
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
}, [accountId])
|
|
|
|
if (accountId !== ownAccountId && userDid) {
|
|
return (
|
|
<Button
|
|
style="text"
|
|
size="small"
|
|
disabled={isCreatingConversation}
|
|
onClick={async () => {
|
|
if (!ownAccountId) {
|
|
handleActivation()
|
|
} else {
|
|
setIsCreatingConversation(true)
|
|
const conversation = await getConversationByDid(userDid)
|
|
if (conversation) {
|
|
setConversationId(conversation.stream_id)
|
|
} else {
|
|
const newConversationId = await createConversation([userDid])
|
|
console.log(newConversationId)
|
|
setConversationId(newConversationId)
|
|
}
|
|
setOpenConversations(true)
|
|
setIsCreatingConversation(false)
|
|
}
|
|
}}
|
|
>
|
|
{isCreatingConversation ? 'Loading...' : text}
|
|
</Button>
|
|
)
|
|
}
|
|
}
|