mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
update callbackMessage.
This commit is contained in:
parent
b4479c8b79
commit
a890beea4e
@ -8,9 +8,9 @@ import React, {
|
||||
} from 'react'
|
||||
import { sleep } from '@utils/index'
|
||||
import { Orbis } from '@orbisclub/orbis-sdk'
|
||||
import { useWeb3 } from './Web3'
|
||||
import { accountTruncate } from '@utils/web3'
|
||||
import { didToAddress } from '@utils/orbis'
|
||||
import { useWeb3 } from './Web3'
|
||||
|
||||
const OrbisContext = createContext(null)
|
||||
|
||||
|
1
src/@types/Orbis.d.ts
vendored
1
src/@types/Orbis.d.ts
vendored
@ -83,6 +83,7 @@ interface OrbisPostContentInterface {
|
||||
mentions?: OrbisPostMentionsInterface[]
|
||||
reply_to?: string
|
||||
type?: string
|
||||
encryptedMessage?: object
|
||||
}
|
||||
|
||||
interface OrbisCreatorMetadataInterface {
|
||||
|
@ -6,18 +6,13 @@ import Input from '@shared/FormInput'
|
||||
import { useOrbis } from '@context/Orbis'
|
||||
// import dynamic from 'next/dynamic'
|
||||
import Picker, { EmojiClickData, EmojiStyle, Theme } from 'emoji-picker-react'
|
||||
import useDarkMode from '@oceanprotocol/use-dark-mode'
|
||||
import { useMarketMetadata } from '@context/MarketMetadata'
|
||||
|
||||
// interface ChatToolbarProps {
|
||||
// mode: boolean
|
||||
// }
|
||||
|
||||
const ChatToolbar = () => {
|
||||
const { appConfig } = useMarketMetadata()
|
||||
const darkMode = useDarkMode(false, appConfig?.darkModeConfig)
|
||||
|
||||
const { orbis, conversationId, convOpen } = useOrbis()
|
||||
export default function ChatToolbar({
|
||||
callbackMessage
|
||||
}: {
|
||||
callbackMessage: (post: OrbisPostInterface) => void
|
||||
}) {
|
||||
const { orbis, conversationId, account, convOpen } = useOrbis()
|
||||
const [content, setContent] = useState<string>('')
|
||||
const [showPicker, setShowPicker] = useState(false)
|
||||
|
||||
@ -41,6 +36,21 @@ const ChatToolbar = () => {
|
||||
}, [convOpen])
|
||||
|
||||
const sendMessage = async () => {
|
||||
const _callbackMessage: OrbisPostInterface = {
|
||||
creator: account.did,
|
||||
creator_details: {
|
||||
did: account.did,
|
||||
profile: account.profile
|
||||
},
|
||||
stream_id: null,
|
||||
content: {
|
||||
body: content
|
||||
},
|
||||
timestamp: Date.now()
|
||||
}
|
||||
callbackMessage(_callbackMessage)
|
||||
setContent('')
|
||||
|
||||
const res = await orbis.sendMessage({
|
||||
conversation_id: conversationId,
|
||||
body: content
|
||||
@ -48,6 +58,7 @@ const ChatToolbar = () => {
|
||||
|
||||
if (res.status === 200) {
|
||||
console.log('succes send message with,', res)
|
||||
setContent('')
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,7 +72,7 @@ const ChatToolbar = () => {
|
||||
size="small"
|
||||
placeholder="Type Message"
|
||||
value={content}
|
||||
onChange={(e: any) => setContent(e.target.value)}
|
||||
onInput={(e) => setContent(e.target.value)}
|
||||
/>
|
||||
<button
|
||||
className={styles.button}
|
||||
@ -79,10 +90,10 @@ const ChatToolbar = () => {
|
||||
{showPicker && (
|
||||
<Picker
|
||||
onEmojiClick={onEmojiClick}
|
||||
theme={darkMode.value ? Theme.DARK : Theme.LIGHT}
|
||||
theme={Theme.DARK}
|
||||
emojiStyle={EmojiStyle.APPLE}
|
||||
autoFocusSearch={false}
|
||||
lazyLoadEmojis={false}
|
||||
lazyLoadEmojis={true}
|
||||
width={324}
|
||||
height={400}
|
||||
/>
|
||||
@ -91,5 +102,3 @@ const ChatToolbar = () => {
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default ChatToolbar
|
||||
|
@ -17,6 +17,11 @@ function RenderDecryptedMessage({
|
||||
|
||||
useEffect(() => {
|
||||
const decryptMessage = async (content: OrbisPostContentInterface) => {
|
||||
if (!content?.encryptedMessage) {
|
||||
setLoading(false)
|
||||
setDecrypted(content.body)
|
||||
return
|
||||
}
|
||||
setLoading(true)
|
||||
const res = await orbis.decryptMessage(content)
|
||||
|
||||
|
@ -20,7 +20,7 @@ export default function FloatingChat() {
|
||||
conversationTitle
|
||||
} = useOrbis()
|
||||
|
||||
const [messages, setMessages] = useState([])
|
||||
const [messages, setMessages] = useState<OrbisPostInterface[]>([])
|
||||
// const [conversationTitle, setConversationTitle] = useState(null)
|
||||
const [unreads, setUnreads] = useState([])
|
||||
|
||||
@ -76,6 +76,23 @@ export default function FloatingChat() {
|
||||
}
|
||||
}
|
||||
|
||||
const callbackMessage = (nMessage: OrbisPostInterface) => {
|
||||
if (nMessage.stream_id) {
|
||||
const _nMessage = messages.findIndex((o) => {
|
||||
return !o.stream_id
|
||||
})
|
||||
console.log(_nMessage)
|
||||
if (_nMessage > -1) {
|
||||
const _messages = [...messages]
|
||||
_messages[_nMessage] = nMessage
|
||||
setMessages(_messages)
|
||||
}
|
||||
} else {
|
||||
const _messages = [...messages, nMessage]
|
||||
setMessages(_messages)
|
||||
}
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
if (conversationId) {
|
||||
getMessages(conversationId)
|
||||
@ -152,7 +169,7 @@ export default function FloatingChat() {
|
||||
</button>
|
||||
</div>
|
||||
<Conversation messages={messages} />
|
||||
<ChatToolbar />
|
||||
<ChatToolbar callbackMessage={callbackMessage} />
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user