diff --git a/net/web/src/context/useConversationContext.hook.js b/net/web/src/context/useConversationContext.hook.js index 916a0ef1..d6f58a15 100644 --- a/net/web/src/context/useConversationContext.hook.js +++ b/net/web/src/context/useConversationContext.hook.js @@ -21,6 +21,10 @@ export function useConversationContext() { enableImage: null, enabelAudio: null, enableVideo: null, + sealed: false, + image: null, + logoUrl: null, + logoImg: null, }); const EVENT_OPEN = 1; @@ -56,15 +60,21 @@ export function useConversationContext() { return null; } - try { - let subject = JSON.parse(conversation.data.channelDetail.data).subject; - if (subject) { - return subject; + if (conversation.data.channelDetail.dataType === 'sealed') { + return conversation.data.unsealedChannel?.subject; + } + else { + try { + let subject = JSON.parse(conversation.data.channelDetail.data).subject; + if (subject) { + return subject; + } + } + catch (err) { + console.log(err); } } - catch (err) { - return null; - } + return null; } const getContacts = (conversation) => { @@ -199,16 +209,37 @@ export function useConversationContext() { if (curView === view.current) { let chan = getChannel(); - let subject = getSubject(chan); let contacts = getContacts(chan); + let subject = getSubject(chan); let members = getMembers(chan); const enableImage = chan?.data?.channelDetail?.enableImage; const enableAudio = chan?.data?.channelDetail?.enableAudio; const enableVideo = chan?.data?.channelDetail?.enableVideo; + const sealed = chan?.data?.channelDetail?.dataType === 'sealed'; + + let logoUrl = null; + let logoImg = null; + if (!members?.size) { + subject = subject ? subject : "Notes"; + logoImg = "solution"; + } + else if (members.size > 1) { + subject = subject ? subject : "Group"; + logoImg = "appstore"; + } + else { + const contact = card.actions.getCardByGuid(members.values().next().value); + subject = subject ? subject : card.actions.getName(contact.id); + logoUrl = card.actions.getImageUrl(contact.id); + } + updateState({ init: true, error: false, + sealed, subject, + logoImg, + logoUrl, contacts, members, enableImage, diff --git a/net/web/src/session/conversation/Conversation.jsx b/net/web/src/session/conversation/Conversation.jsx index 4a43cd9b..f68c2a59 100644 --- a/net/web/src/session/conversation/Conversation.jsx +++ b/net/web/src/session/conversation/Conversation.jsx @@ -41,7 +41,7 @@ export function Conversation({ closeConversation, openDetails, cardId, channelId
{ state.subject }
{ state.error && state.display === 'small' && ( diff --git a/net/web/src/session/conversation/addTopic/AddTopic.jsx b/net/web/src/session/conversation/addTopic/AddTopic.jsx index ec81f475..9b202a28 100644 --- a/net/web/src/session/conversation/addTopic/AddTopic.jsx +++ b/net/web/src/session/conversation/addTopic/AddTopic.jsx @@ -104,22 +104,24 @@ export function AddTopic({ cardId, channelId }) { value={state.messageText} autocapitalize="none" />
- { state.enableImage && ( + { !state.sealed && state.enableImage && (
attachImage.current.click()}>
)} - { state.enableVideo && ( + { !state.sealed && state.enableVideo && (
attachVideo.current.click()}>
)} - { state.enableAudio && ( + { !state.sealed && state.enableAudio && (
attachAudio.current.click()}>
)} -
+ { !state.sealed && ( +
+ )}
diff --git a/net/web/src/session/conversation/addTopic/useAddTopic.hook.js b/net/web/src/session/conversation/addTopic/useAddTopic.hook.js index bb137298..aba68a7d 100644 --- a/net/web/src/session/conversation/addTopic/useAddTopic.hook.js +++ b/net/web/src/session/conversation/addTopic/useAddTopic.hook.js @@ -9,6 +9,7 @@ export function useAddTopic(cardId, channelId) { enableImage: null, enableAudio: null, enableVideo: null, + sealed: false, assets: [], messageText: null, textColor: '#444444', @@ -49,8 +50,8 @@ export function useAddTopic(cardId, channelId) { } useEffect(() => { - const { enableImage, enableAudio, enableVideo } = conversation.state; - updateState({ enableImage, enableAudio, enableVideo }); + const { enableImage, enableAudio, enableVideo, sealed } = conversation.state; + updateState({ enableImage, enableAudio, enableVideo, sealed }); }, [conversation]); const actions = { diff --git a/net/web/src/session/conversation/useConversation.hook.js b/net/web/src/session/conversation/useConversation.hook.js index ef77858e..2334c71e 100644 --- a/net/web/src/session/conversation/useConversation.hook.js +++ b/net/web/src/session/conversation/useConversation.hook.js @@ -10,7 +10,6 @@ export function useConversation(cardId, channelId) { const [state, setState] = useState({ display: null, - image: null, logo: null, subject: null, topics: [], @@ -69,41 +68,6 @@ export function useConversation(cardId, channelId) { updateState({ upload: active, uploadError, uploadPercent }); }, [cardId, channelId, upload]); - useEffect(() => { - - let chan, image, subject, logo; - if (cardId) { - const cardChan = card.state.cards.get(cardId); - if (cardChan) { - chan = cardChan.channels.get(channelId); - } - } - else { - chan = channel.state.channels.get(channelId); - } - - if (chan) { - if (!chan.contacts?.length) { - image = 'solution'; - subject = 'Notes'; - } - else if (chan.contacts.length > 1) { - image = 'appstore' - subject = 'Group'; - } - else { - logo = card.actions.getImageUrl(chan.contacts[0]?.id); - subject = card.actions.getName(chan.contacts[0]?.id); - } - const parsed = JSON.parse(chan.data.channelDetail.data); - if (parsed.subject) { - subject = parsed.subject; - } - } - - updateState({ image, subject, logo }); - }, [cardId, channelId, card, channel]); - useEffect(() => { updateState({ topics: [] }); conversation.actions.setConversationId(cardId, channelId); @@ -122,8 +86,8 @@ export function useConversation(cardId, channelId) { } return 1; }); - const { error, loadingInit, loadingMore } = conversation.state; - updateState({ topics, error, loadingInit, loadingMore }); + const { error, loadingInit, loadingMore, subject, logoUrl, logoImg } = conversation.state; + updateState({ topics, error, loadingInit, loadingMore, subject, logoUrl, logoImg }); store.actions.setValue(`${channelId}::${cardId}`, Number(conversation.state.revision)); // eslint-disable-next-line }, [conversation]);