diff --git a/packages/react/src/views/ChatHeader/ChatHeader.js b/packages/react/src/views/ChatHeader/ChatHeader.js index 5f2dbf43ee..080f391f95 100644 --- a/packages/react/src/views/ChatHeader/ChatHeader.js +++ b/packages/react/src/views/ChatHeader/ChatHeader.js @@ -154,19 +154,20 @@ const ChatHeader = ({ }; const setMessageAllowed = async () => { - const permissionRes = await RCInstance.permissionInfo(); const channelRolesRes = await RCInstance.getChannelRoles( isChannelPrivate ); - if (permissionRes.success && channelRolesRes.success) { - const postMsgRoles = permissionRes.update[140]?.roles || []; + if (channelRolesRes.success) { const channelLevelRoles = channelRolesRes.roles .filter((chRole) => chRole.u?._id === authenticatedUserId) .flatMap((chRole) => chRole.roles); const allRoles = [...channelLevelRoles, ...workspaceLevelRoles]; - const canSendMsg = postMsgRoles.some((role) => allRoles.includes(role)); + const canSendMsg = + allRoles.includes('admin') || + allRoles.includes('moderator') || + allRoles.includes('owner'); setCanSendMsg(canSendMsg); } diff --git a/packages/react/src/views/ChatInput/ChatInput.js b/packages/react/src/views/ChatInput/ChatInput.js index 33f40d7af3..192d942cd9 100644 --- a/packages/react/src/views/ChatInput/ChatInput.js +++ b/packages/react/src/views/ChatInput/ChatInput.js @@ -465,7 +465,7 @@ const ChatInput = ({ scrollToBottom }) => { status={ editMessage.msg || editMessage.attachments ? 'Editing Message' - : isChannelReadOnly + : isChannelReadOnly && canSendMsg && isUserAuthenticated ? 'This room is read only' : undefined } @@ -529,7 +529,10 @@ const ChatInput = ({ scrollToBottom }) => { ? 'This room is read only' : 'Sign in to chat' } - css={styles.textInput} + css={css` + ${styles.textInput} + ${!canSendMsg && isUserAuthenticated && `text-align: center;`} + `} onChange={onTextChange} onBlur={() => { sendTypingStop(); @@ -547,14 +550,16 @@ const ChatInput = ({ scrollToBottom }) => { `} > {isUserAuthenticated ? ( - sendMessage()} - type="primary" - disabled={disableButton || isRecordingMessage} - icon="send" - /> + canSendMsg ? ( + sendMessage()} + type="primary" + disabled={disableButton || isRecordingMessage} + icon="send" + /> + ) : null ) : (