diff --git a/src/components/ArchivedReportFooter.tsx b/src/components/ArchivedReportFooter.tsx index 9713e40136a2..173f84d392e5 100644 --- a/src/components/ArchivedReportFooter.tsx +++ b/src/components/ArchivedReportFooter.tsx @@ -64,7 +64,7 @@ function ArchivedReportFooter({report, reportClosedAction, personalDetails = {}} return ( accountID !== session?.accountID || !isOneOnOneChat); const isMultipleParticipant = participantAccountIDs.length > 1; const displayNamesWithTooltips = ReportUtils.getDisplayNamesWithTooltips(OptionsListUtils.getPersonalDetailsForAccountIDs(participantAccountIDs, personalDetails), isMultipleParticipant); - const isUserPolicyAdmin = PolicyUtils.isPolicyAdmin(policy); - const roomWelcomeMessage = ReportUtils.getRoomWelcomeMessage(report, isUserPolicyAdmin); + const roomWelcomeMessage = ReportUtils.getRoomWelcomeMessage(report); const moneyRequestOptions = ReportUtils.temporary_getMoneyRequestOptions(report, policy, participantAccountIDs); const additionalText = moneyRequestOptions .filter((item): item is Exclude => item !== CONST.IOU.TYPE.INVOICE) diff --git a/src/languages/en.ts b/src/languages/en.ts index 8d1b24211583..f36b98894e5f 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -507,7 +507,6 @@ export default { beginningOfChatHistoryDomainRoomPartTwo: ' to chat with colleagues, share tips, and ask questions.', beginningOfChatHistoryAdminRoomPartOne: ({workspaceName}: BeginningOfChatHistoryAdminRoomPartOneParams) => `Collaboration among ${workspaceName} admins starts here! 🎉\nUse `, beginningOfChatHistoryAdminRoomPartTwo: ' to chat about topics such as workspace configurations and more.', - beginningOfChatHistoryAdminOnlyPostingRoom: 'Only admins can send messages in this room.', beginningOfChatHistoryAnnounceRoomPartOne: ({workspaceName}: BeginningOfChatHistoryAnnounceRoomPartOneParams) => `Collaboration between all ${workspaceName} members starts here! 🎉\nUse `, beginningOfChatHistoryAnnounceRoomPartTwo: ({workspaceName}: BeginningOfChatHistoryAnnounceRoomPartTwo) => ` to chat about anything ${workspaceName} related.`, @@ -532,6 +531,7 @@ export default { invoice: 'invoice an expense', }, }, + adminOnlyCanPost: 'Only admins can send messages in this room.', reportAction: { asCopilot: 'as copilot for', }, diff --git a/src/languages/es.ts b/src/languages/es.ts index 29f85edfc93e..39948366695d 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -500,7 +500,6 @@ export default { beginningOfChatHistoryAdminRoomPartOne: ({workspaceName}: BeginningOfChatHistoryAdminRoomPartOneParams) => `¡Este es el lugar para que los administradores de ${workspaceName} colaboren! 🎉\nUsa `, beginningOfChatHistoryAdminRoomPartTwo: ' para chatear sobre temas como la configuración del espacio de trabajo y mas.', - beginningOfChatHistoryAdminOnlyPostingRoom: 'Solo los administradores pueden enviar mensajes en esta sala.', beginningOfChatHistoryAnnounceRoomPartOne: ({workspaceName}: BeginningOfChatHistoryAnnounceRoomPartOneParams) => `¡Este es el lugar para que todos los miembros de ${workspaceName} colaboren! 🎉\nUsa `, beginningOfChatHistoryAnnounceRoomPartTwo: ({workspaceName}: BeginningOfChatHistoryAnnounceRoomPartTwo) => ` para chatear sobre cualquier cosa relacionada con ${workspaceName}.`, @@ -525,6 +524,7 @@ export default { invoice: 'facturar un gasto', }, }, + adminOnlyCanPost: 'Solo los administradores pueden enviar mensajes en esta sala.', reportAction: { asCopilot: 'como copiloto de', }, diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 03538dc7a860..449f5e68d1b8 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -1564,7 +1564,7 @@ function canDeleteReportAction(reportAction: OnyxEntry, reportID: /** * Get welcome message based on room type */ -function getRoomWelcomeMessage(report: OnyxEntry, isUserPolicyAdmin: boolean): WelcomeMessage { +function getRoomWelcomeMessage(report: OnyxEntry): WelcomeMessage { const welcomeMessage: WelcomeMessage = {showReportName: true}; const workspaceName = getPolicyName(report); @@ -1577,9 +1577,6 @@ function getRoomWelcomeMessage(report: OnyxEntry, isUserPolicyAdmin: boo } else if (isAdminRoom(report)) { welcomeMessage.phrase1 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAdminRoomPartOne', {workspaceName}); welcomeMessage.phrase2 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAdminRoomPartTwo'); - } else if (isAdminsOnlyPostingRoom(report) && !isUserPolicyAdmin) { - welcomeMessage.phrase1 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAdminOnlyPostingRoom'); - welcomeMessage.showReportName = false; } else if (isAnnounceRoom(report)) { welcomeMessage.phrase1 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAnnounceRoomPartOne', {workspaceName}); welcomeMessage.phrase2 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAnnounceRoomPartTwo', {workspaceName}); diff --git a/src/pages/home/ReportScreen.tsx b/src/pages/home/ReportScreen.tsx index 80f1efcb00aa..63532af62301 100644 --- a/src/pages/home/ReportScreen.tsx +++ b/src/pages/home/ReportScreen.tsx @@ -712,6 +712,7 @@ function ReportScreen({ onComposerBlur={() => setIsComposerFocus(false)} report={report} reportNameValuePairs={reportNameValuePairs} + policy={policy} pendingAction={reportPendingAction} isComposerFullSize={!!isComposerFullSize} listHeight={listHeight} diff --git a/src/pages/home/report/ReportFooter.tsx b/src/pages/home/report/ReportFooter.tsx index ac56fe916bc9..54a5e1d8f781 100644 --- a/src/pages/home/report/ReportFooter.tsx +++ b/src/pages/home/report/ReportFooter.tsx @@ -5,13 +5,17 @@ import {withOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; import AnonymousReportFooter from '@components/AnonymousReportFooter'; import ArchivedReportFooter from '@components/ArchivedReportFooter'; +import Banner from '@components/Banner'; import BlockedReportFooter from '@components/BlockedReportFooter'; +import * as Expensicons from '@components/Icon/Expensicons'; import OfflineIndicator from '@components/OfflineIndicator'; import {usePersonalDetails} from '@components/OnyxProvider'; import SwipeableView from '@components/SwipeableView'; +import useLocalize from '@hooks/useLocalize'; import useNetwork from '@hooks/useNetwork'; import useThemeStyles from '@hooks/useThemeStyles'; import useWindowDimensions from '@hooks/useWindowDimensions'; +import * as PolicyUtils from '@libs/PolicyUtils'; import * as ReportUtils from '@libs/ReportUtils'; import * as UserUtils from '@libs/UserUtils'; import variables from '@styles/variables'; @@ -42,6 +46,9 @@ type ReportFooterProps = ReportFooterOnyxProps & { reportNameValuePairs?: OnyxEntry; + /** The policy of the report */ + policy: OnyxEntry; + /** The last report action */ lastReportAction?: OnyxEntry; @@ -73,6 +80,7 @@ function ReportFooter({ session, report = {reportID: '0'}, reportNameValuePairs, + policy, shouldShowComposeInput = false, isEmptyChat = true, isReportReadyForDisplay = true, @@ -84,6 +92,7 @@ function ReportFooter({ }: ReportFooterProps) { const styles = useThemeStyles(); const {isOffline} = useNetwork(); + const {translate} = useLocalize(); const {windowWidth, isSmallScreenWidth} = useWindowDimensions(); const chatFooterStyles = {...styles.chatFooter, minHeight: !isOffline ? CONST.CHAT_FOOTER_MIN_HEIGHT : 0}; const isArchivedRoom = ReportUtils.isArchivedRoom(report, reportNameValuePairs); @@ -93,6 +102,8 @@ function ReportFooter({ const hideComposer = !ReportUtils.canUserPerformWriteAction(report, reportNameValuePairs) || blockedFromChat; const canWriteInReport = ReportUtils.canWriteInReport(report); const isSystemChat = ReportUtils.isSystemChat(report); + const isAdminsOnlyPostingRoom = ReportUtils.isAdminsOnlyPostingRoom(report); + const isUserPolicyAdmin = PolicyUtils.isPolicyAdmin(policy); const allPersonalDetails = usePersonalDetails(); @@ -150,7 +161,13 @@ function ReportFooter({ return ( <> {hideComposer && ( - + {isAnonymousUser && !isArchivedRoom && ( } {!isArchivedRoom && blockedFromChat && } {!isAnonymousUser && !canWriteInReport && isSystemChat && } + {isAdminsOnlyPostingRoom && !isUserPolicyAdmin && !isArchivedRoom && !isAnonymousUser && !blockedFromChat && ( + + )} {!isSmallScreenWidth && {hideComposer && }} )} diff --git a/src/pages/home/report/SystemChatReportFooterMessage.tsx b/src/pages/home/report/SystemChatReportFooterMessage.tsx index c9ccac8f5c18..449fbb212cf1 100644 --- a/src/pages/home/report/SystemChatReportFooterMessage.tsx +++ b/src/pages/home/report/SystemChatReportFooterMessage.tsx @@ -67,7 +67,7 @@ function SystemChatReportFooterMessage({choice, policies, activePolicyID}: Syste return ( {content}} diff --git a/src/styles/index.ts b/src/styles/index.ts index 7d4366b5723d..ab2c97424e8e 100644 --- a/src/styles/index.ts +++ b/src/styles/index.ts @@ -3694,7 +3694,7 @@ const styles = (theme: ThemeColors) => height: variables.optionRowHeight, }, - archivedReportFooter: { + chatFooterBanner: { borderRadius: variables.componentBorderRadius, ...wordBreak.breakWord, },