diff --git a/src/components/ReportWelcomeText.js b/src/components/ReportWelcomeText.js
index e0e5d25a1643..9fc446df31e3 100644
--- a/src/components/ReportWelcomeText.js
+++ b/src/components/ReportWelcomeText.js
@@ -10,6 +10,7 @@ import Text from './Text';
import withLocalize, {withLocalizePropTypes} from './withLocalize';
import compose from '../libs/compose';
import * as ReportUtils from '../libs/ReportUtils';
+import * as PolicyUtils from '../libs/PolicyUtils';
import * as OptionsListUtils from '../libs/OptionsListUtils';
import ONYXKEYS from '../ONYXKEYS';
import Navigation from '../libs/Navigation/Navigation';
@@ -33,6 +34,15 @@ const propTypes = {
/** The report currently being looked at */
report: reportPropTypes,
+ /** The policy object for the current route */
+ policy: PropTypes.shape({
+ /** The name of the policy */
+ name: PropTypes.string,
+
+ /** The URL for the policy avatar */
+ avatar: PropTypes.string,
+ }),
+
/* Onyx Props */
/** All of the personal details for everyone */
@@ -46,6 +56,7 @@ const propTypes = {
const defaultProps = {
report: {},
+ policy: {},
personalDetails: {},
betas: [],
};
@@ -54,18 +65,23 @@ function ReportWelcomeText(props) {
const isPolicyExpenseChat = ReportUtils.isPolicyExpenseChat(props.report);
const isChatRoom = ReportUtils.isChatRoom(props.report);
const isDefault = !(isChatRoom || isPolicyExpenseChat);
+ const isAdminsOnlyPostingRoom = ReportUtils.isAdminsOnlyPostingRoom(props.report);
const participantAccountIDs = lodashGet(props.report, 'participantAccountIDs', []);
const isMultipleParticipant = participantAccountIDs.length > 1;
const displayNamesWithTooltips = ReportUtils.getDisplayNamesWithTooltips(
OptionsListUtils.getPersonalDetailsForAccountIDs(participantAccountIDs, props.personalDetails),
isMultipleParticipant,
);
- const roomWelcomeMessage = ReportUtils.getRoomWelcomeMessage(props.report);
+ const isUserPolicyAdmin = PolicyUtils.isPolicyAdmin(props.policy);
+ const roomWelcomeMessage = ReportUtils.getRoomWelcomeMessage(props.report, isUserPolicyAdmin);
const moneyRequestOptions = ReportUtils.getMoneyRequestOptions(props.report, participantAccountIDs, props.betas);
+
return (
<>
- {props.translate('reportActionsView.sayHello')}
+
+ {isChatRoom ? props.translate('reportActionsView.welcomeToRoom', {roomName: ReportUtils.getReportName(props.report)}) : props.translate('reportActionsView.sayHello')}
+
{isPolicyExpenseChat && (
@@ -84,14 +100,19 @@ function ReportWelcomeText(props) {
{isChatRoom && (
<>
{roomWelcomeMessage.phrase1}
- Navigation.navigate(ROUTES.getReportDetailsRoute(props.report.reportID))}
- suppressHighlighting
- >
- {ReportUtils.getReportName(props.report)}
-
- {roomWelcomeMessage.phrase2}
+ {/* for rooms in which only admins can post we dont need room name and phrase two */}
+ {(!isAdminsOnlyPostingRoom || isUserPolicyAdmin) && (
+ <>
+ Navigation.navigate(ROUTES.getReportDetailsRoute(props.report.reportID))}
+ suppressHighlighting
+ >
+ {ReportUtils.getReportName(props.report)}
+
+ {roomWelcomeMessage.phrase2}
+ >
+ )}
>
)}
{isDefault && (
diff --git a/src/languages/en.js b/src/languages/en.js
index 19dbd9c63187..902efeb156b9 100755
--- a/src/languages/en.js
+++ b/src/languages/en.js
@@ -310,8 +310,7 @@ export default {
beginningOfChatHistoryDomainRoomPartTwo: ' to chat with colleagues, share tips, and ask questions.',
beginningOfChatHistoryAdminRoomPartOne: ({workspaceName}) => `Collaboration among ${workspaceName} admins starts here! 🎉\nUse `,
beginningOfChatHistoryAdminRoomPartTwo: ' to chat about topics such as workspace configurations and more.',
- beginningOfChatHistoryAdminOnlyPostingRoomPartOne: 'Use ',
- beginningOfChatHistoryAdminOnlyPostingRoomPartTwo: ({workspaceName}) => ` to hear about important announcements related to ${workspaceName}`,
+ beginningOfChatHistoryAdminOnlyPostingRoom: 'Only admins can send messages in this room.',
beginningOfChatHistoryAnnounceRoomPartOne: ({workspaceName}) => `Collaboration between all ${workspaceName} members starts here! 🎉\nUse `,
beginningOfChatHistoryAnnounceRoomPartTwo: ({workspaceName}) => ` to chat about anything ${workspaceName} related.`,
beginningOfChatHistoryUserRoomPartOne: 'Collaboration starts here! 🎉\nUse this space to chat about anything ',
@@ -322,6 +321,7 @@ export default {
beginningOfChatHistoryPolicyExpenseChatPartThree: ' starts here! 🎉 This is the place to chat, request money and settle up.',
chatWithAccountManager: 'Chat with your account manager here',
sayHello: 'Say hello!',
+ welcomeToRoom: ({roomName}) => `Welcome to ${roomName}!`,
usePlusButton: '\n\nYou can also use the + button below to request money or assign a task!',
},
reportAction: {
diff --git a/src/languages/es.js b/src/languages/es.js
index bb3306417e17..44aa4f820af6 100644
--- a/src/languages/es.js
+++ b/src/languages/es.js
@@ -309,8 +309,7 @@ export default {
beginningOfChatHistoryDomainRoomPartTwo: ' para chatear con compañeros, compartir consejos o hacer una pregunta.',
beginningOfChatHistoryAdminRoomPartOne: ({workspaceName}) => `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.',
- beginningOfChatHistoryAdminOnlyPostingRoomPartOne: 'Utiliza ',
- beginningOfChatHistoryAdminOnlyPostingRoomPartTwo: ({workspaceName}) => ` para enterarte de anuncios importantes relacionados con ${workspaceName}`,
+ beginningOfChatHistoryAdminOnlyPostingRoom: 'Solo los administradores pueden enviar mensajes en esta sala.',
beginningOfChatHistoryAnnounceRoomPartOne: ({workspaceName}) => `Este es el lugar para que todos los miembros de ${workspaceName} colaboren! 🎉\nUsa `,
beginningOfChatHistoryAnnounceRoomPartTwo: ({workspaceName}) => ` para chatear sobre cualquier cosa relacionada con ${workspaceName}.`,
beginningOfChatHistoryUserRoomPartOne: 'Este es el lugar para colaborar! 🎉\nUsa este espacio para chatear sobre cualquier cosa relacionada con ',
@@ -321,6 +320,7 @@ export default {
beginningOfChatHistoryPolicyExpenseChatPartThree: ' empieza aquÃ! 🎉 Este es el lugar donde chatear, pedir dinero y pagar.',
chatWithAccountManager: 'Chatea con tu gestor de cuenta aquÃ',
sayHello: '¡Saluda!',
+ welcomeToRoom: ({roomName}) => `¡Bienvenido a ${roomName}!`,
usePlusButton: '\n\n¡También puedes usar el botón + de abajo para pedir dinero o asignar una tarea!',
},
reportAction: {
diff --git a/src/libs/ReportUtils.js b/src/libs/ReportUtils.js
index 1f571bb7c33e..a9755486e156 100644
--- a/src/libs/ReportUtils.js
+++ b/src/libs/ReportUtils.js
@@ -760,10 +760,11 @@ function canDeleteReportAction(reportAction, reportID) {
/**
* Get welcome message based on room type
* @param {Object} report
+ * @param {Boolean} isUserPolicyAdmin
* @returns {Object}
*/
-function getRoomWelcomeMessage(report) {
+function getRoomWelcomeMessage(report, isUserPolicyAdmin) {
const welcomeMessage = {};
const workspaceName = getPolicyName(report);
@@ -776,9 +777,8 @@ function getRoomWelcomeMessage(report) {
} else if (isAdminRoom(report)) {
welcomeMessage.phrase1 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAdminRoomPartOne', {workspaceName});
welcomeMessage.phrase2 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAdminRoomPartTwo');
- } else if (isAdminsOnlyPostingRoom(report)) {
- welcomeMessage.phrase1 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAdminOnlyPostingRoomPartOne');
- welcomeMessage.phrase2 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAdminOnlyPostingRoomPartTwo', {workspaceName});
+ } else if (isAdminsOnlyPostingRoom(report) && !isUserPolicyAdmin) {
+ welcomeMessage.phrase1 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAdminOnlyPostingRoom');
} else if (isAnnounceRoom(report)) {
welcomeMessage.phrase1 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAnnounceRoomPartOne', {workspaceName});
welcomeMessage.phrase2 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAnnounceRoomPartTwo', {workspaceName});
@@ -801,7 +801,7 @@ function chatIncludesConcierge(report) {
}
/**
- * Returns true if there is any automated expensify account in accountIDs
+ * Returns true if there is any automated expensify account `in accountIDs
* @param {Array} accountIDs
* @returns {Boolean}
*/
@@ -3199,6 +3199,7 @@ export {
sortReportsByLastRead,
isDefaultRoom,
isAdminRoom,
+ isAdminsOnlyPostingRoom,
isAnnounceRoom,
isUserCreatedPolicyRoom,
isChatRoom,
diff --git a/src/pages/home/report/ReportActionItemCreated.js b/src/pages/home/report/ReportActionItemCreated.js
index b7716e22a851..4ae4fe81e4ac 100644
--- a/src/pages/home/report/ReportActionItemCreated.js
+++ b/src/pages/home/report/ReportActionItemCreated.js
@@ -89,7 +89,10 @@ function ReportActionItemCreated(props) {
/>
-
+