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 && !isSystemChat)); 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 117bbb07d8e0..71148ce876e0 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -512,7 +512,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.`, @@ -538,6 +537,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 b84b3a679c73..0e88abd18860 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -506,7 +506,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}.`, @@ -532,6 +531,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 52b4947cb62c..d4c84399c6e3 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -1584,7 +1584,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); @@ -1597,9 +1597,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 826d6b0fbdc1..5d747a7cfa16 100644 --- a/src/pages/home/ReportScreen.tsx +++ b/src/pages/home/ReportScreen.tsx @@ -731,6 +731,7 @@ function ReportScreen({ report={report} reportMetadata={reportMetadata} 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 decd8f1b8d56..aa4139f8ee50 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'; @@ -44,6 +48,9 @@ type ReportFooterProps = ReportFooterOnyxProps & { reportNameValuePairs?: OnyxEntry; + /** The policy of the report */ + policy: OnyxEntry; + /** The last report action */ lastReportAction?: OnyxEntry; @@ -76,6 +83,7 @@ function ReportFooter({ report = {reportID: '0'}, reportMetadata, reportNameValuePairs, + policy, shouldShowComposeInput = false, isEmptyChat = true, isReportReadyForDisplay = true, @@ -87,6 +95,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); @@ -99,6 +108,8 @@ function ReportFooter({ const hideComposer = (!ReportUtils.canUserPerformWriteAction(report, reportNameValuePairs) && !showComposerOptimistically) || blockedFromChat; const canWriteInReport = ReportUtils.canWriteInReport(report); const isSystemChat = ReportUtils.isSystemChat(report); + const isAdminsOnlyPostingRoom = ReportUtils.isAdminsOnlyPostingRoom(report); + const isUserPolicyAdmin = PolicyUtils.isPolicyAdmin(policy); const allPersonalDetails = usePersonalDetails(); @@ -156,7 +167,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 8377ddf5834e..7b49b90505ba 100644 --- a/src/styles/index.ts +++ b/src/styles/index.ts @@ -3729,7 +3729,7 @@ const styles = (theme: ThemeColors) => height: variables.optionRowHeight, }, - archivedReportFooter: { + chatFooterBanner: { borderRadius: variables.componentBorderRadius, ...wordBreak.breakWord, },