Skip to content

Commit 1426c4e

Browse files
authored
Merge pull request Expensify#41199 from ahmedGaber93/issue-39636
move message "admins only can post" from welcome message to footer
2 parents fb562ec + a59dd6b commit 1426c4e

10 files changed

+35
-14
lines changed

src/components/ArchivedReportFooter.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ function ArchivedReportFooter({report, reportClosedAction, personalDetails = {}}
6464

6565
return (
6666
<Banner
67-
containerStyles={[styles.archivedReportFooter]}
67+
containerStyles={[styles.chatFooterBanner]}
6868
text={text}
6969
shouldRenderHTML={shouldRenderHTML}
7070
shouldShowIcon

src/components/BlockedReportFooter.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ function BlockedReportFooter() {
1111

1212
return (
1313
<Banner
14-
containerStyles={[styles.archivedReportFooter]}
14+
containerStyles={[styles.chatFooterBanner]}
1515
text={text}
1616
shouldShowIcon
1717
shouldRenderHTML

src/components/ReportWelcomeText.tsx

+1-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import useLocalize from '@hooks/useLocalize';
66
import useThemeStyles from '@hooks/useThemeStyles';
77
import Navigation from '@libs/Navigation/Navigation';
88
import * as OptionsListUtils from '@libs/OptionsListUtils';
9-
import * as PolicyUtils from '@libs/PolicyUtils';
109
import * as ReportUtils from '@libs/ReportUtils';
1110
import CONST from '@src/CONST';
1211
import type {IOUType} from '@src/CONST';
@@ -47,8 +46,7 @@ function ReportWelcomeText({report, policy, personalDetails}: ReportWelcomeTextP
4746
.filter((accountID) => accountID !== session?.accountID || (!isOneOnOneChat && !isSystemChat));
4847
const isMultipleParticipant = participantAccountIDs.length > 1;
4948
const displayNamesWithTooltips = ReportUtils.getDisplayNamesWithTooltips(OptionsListUtils.getPersonalDetailsForAccountIDs(participantAccountIDs, personalDetails), isMultipleParticipant);
50-
const isUserPolicyAdmin = PolicyUtils.isPolicyAdmin(policy);
51-
const roomWelcomeMessage = ReportUtils.getRoomWelcomeMessage(report, isUserPolicyAdmin);
49+
const roomWelcomeMessage = ReportUtils.getRoomWelcomeMessage(report);
5250
const moneyRequestOptions = ReportUtils.temporary_getMoneyRequestOptions(report, policy, participantAccountIDs);
5351
const additionalText = moneyRequestOptions
5452
.filter((item): item is Exclude<IOUType, typeof CONST.IOU.TYPE.REQUEST | typeof CONST.IOU.TYPE.SEND | typeof CONST.IOU.TYPE.INVOICE> => item !== CONST.IOU.TYPE.INVOICE)

src/languages/en.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,6 @@ export default {
512512
beginningOfChatHistoryDomainRoomPartTwo: ' to chat with colleagues, share tips, and ask questions.',
513513
beginningOfChatHistoryAdminRoomPartOne: ({workspaceName}: BeginningOfChatHistoryAdminRoomPartOneParams) => `Collaboration among ${workspaceName} admins starts here! 🎉\nUse `,
514514
beginningOfChatHistoryAdminRoomPartTwo: ' to chat about topics such as workspace configurations and more.',
515-
beginningOfChatHistoryAdminOnlyPostingRoom: 'Only admins can send messages in this room.',
516515
beginningOfChatHistoryAnnounceRoomPartOne: ({workspaceName}: BeginningOfChatHistoryAnnounceRoomPartOneParams) =>
517516
`Collaboration between all ${workspaceName} members starts here! 🎉\nUse `,
518517
beginningOfChatHistoryAnnounceRoomPartTwo: ({workspaceName}: BeginningOfChatHistoryAnnounceRoomPartTwo) => ` to chat about anything ${workspaceName} related.`,
@@ -538,6 +537,7 @@ export default {
538537
invoice: 'invoice an expense',
539538
},
540539
},
540+
adminOnlyCanPost: 'Only admins can send messages in this room.',
541541
reportAction: {
542542
asCopilot: 'as copilot for',
543543
},

src/languages/es.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,6 @@ export default {
506506
beginningOfChatHistoryAdminRoomPartOne: ({workspaceName}: BeginningOfChatHistoryAdminRoomPartOneParams) =>
507507
`¡Este es el lugar para que los administradores de ${workspaceName} colaboren! 🎉\nUsa `,
508508
beginningOfChatHistoryAdminRoomPartTwo: ' para chatear sobre temas como la configuración del espacio de trabajo y mas.',
509-
beginningOfChatHistoryAdminOnlyPostingRoom: 'Solo los administradores pueden enviar mensajes en esta sala.',
510509
beginningOfChatHistoryAnnounceRoomPartOne: ({workspaceName}: BeginningOfChatHistoryAnnounceRoomPartOneParams) =>
511510
`¡Este es el lugar para que todos los miembros de ${workspaceName} colaboren! 🎉\nUsa `,
512511
beginningOfChatHistoryAnnounceRoomPartTwo: ({workspaceName}: BeginningOfChatHistoryAnnounceRoomPartTwo) => ` para chatear sobre cualquier cosa relacionada con ${workspaceName}.`,
@@ -532,6 +531,7 @@ export default {
532531
invoice: 'facturar un gasto',
533532
},
534533
},
534+
adminOnlyCanPost: 'Solo los administradores pueden enviar mensajes en esta sala.',
535535
reportAction: {
536536
asCopilot: 'como copiloto de',
537537
},

src/libs/ReportUtils.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -1584,7 +1584,7 @@ function canDeleteReportAction(reportAction: OnyxEntry<ReportAction>, reportID:
15841584
/**
15851585
* Get welcome message based on room type
15861586
*/
1587-
function getRoomWelcomeMessage(report: OnyxEntry<Report>, isUserPolicyAdmin: boolean): WelcomeMessage {
1587+
function getRoomWelcomeMessage(report: OnyxEntry<Report>): WelcomeMessage {
15881588
const welcomeMessage: WelcomeMessage = {showReportName: true};
15891589
const workspaceName = getPolicyName(report);
15901590

@@ -1597,9 +1597,6 @@ function getRoomWelcomeMessage(report: OnyxEntry<Report>, isUserPolicyAdmin: boo
15971597
} else if (isAdminRoom(report)) {
15981598
welcomeMessage.phrase1 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAdminRoomPartOne', {workspaceName});
15991599
welcomeMessage.phrase2 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAdminRoomPartTwo');
1600-
} else if (isAdminsOnlyPostingRoom(report) && !isUserPolicyAdmin) {
1601-
welcomeMessage.phrase1 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAdminOnlyPostingRoom');
1602-
welcomeMessage.showReportName = false;
16031600
} else if (isAnnounceRoom(report)) {
16041601
welcomeMessage.phrase1 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAnnounceRoomPartOne', {workspaceName});
16051602
welcomeMessage.phrase2 = Localize.translateLocal('reportActionsView.beginningOfChatHistoryAnnounceRoomPartTwo', {workspaceName});

src/pages/home/ReportScreen.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -731,6 +731,7 @@ function ReportScreen({
731731
report={report}
732732
reportMetadata={reportMetadata}
733733
reportNameValuePairs={reportNameValuePairs}
734+
policy={policy}
734735
pendingAction={reportPendingAction}
735736
isComposerFullSize={!!isComposerFullSize}
736737
listHeight={listHeight}

src/pages/home/report/ReportFooter.tsx

+26-1
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@ import {withOnyx} from 'react-native-onyx';
55
import type {OnyxEntry} from 'react-native-onyx';
66
import AnonymousReportFooter from '@components/AnonymousReportFooter';
77
import ArchivedReportFooter from '@components/ArchivedReportFooter';
8+
import Banner from '@components/Banner';
89
import BlockedReportFooter from '@components/BlockedReportFooter';
10+
import * as Expensicons from '@components/Icon/Expensicons';
911
import OfflineIndicator from '@components/OfflineIndicator';
1012
import {usePersonalDetails} from '@components/OnyxProvider';
1113
import SwipeableView from '@components/SwipeableView';
14+
import useLocalize from '@hooks/useLocalize';
1215
import useNetwork from '@hooks/useNetwork';
1316
import useThemeStyles from '@hooks/useThemeStyles';
1417
import useWindowDimensions from '@hooks/useWindowDimensions';
18+
import * as PolicyUtils from '@libs/PolicyUtils';
1519
import * as ReportUtils from '@libs/ReportUtils';
1620
import * as UserUtils from '@libs/UserUtils';
1721
import variables from '@styles/variables';
@@ -44,6 +48,9 @@ type ReportFooterProps = ReportFooterOnyxProps & {
4448

4549
reportNameValuePairs?: OnyxEntry<OnyxTypes.ReportNameValuePairs>;
4650

51+
/** The policy of the report */
52+
policy: OnyxEntry<OnyxTypes.Policy>;
53+
4754
/** The last report action */
4855
lastReportAction?: OnyxEntry<OnyxTypes.ReportAction>;
4956

@@ -76,6 +83,7 @@ function ReportFooter({
7683
report = {reportID: '0'},
7784
reportMetadata,
7885
reportNameValuePairs,
86+
policy,
7987
shouldShowComposeInput = false,
8088
isEmptyChat = true,
8189
isReportReadyForDisplay = true,
@@ -87,6 +95,7 @@ function ReportFooter({
8795
}: ReportFooterProps) {
8896
const styles = useThemeStyles();
8997
const {isOffline} = useNetwork();
98+
const {translate} = useLocalize();
9099
const {windowWidth, isSmallScreenWidth} = useWindowDimensions();
91100
const chatFooterStyles = {...styles.chatFooter, minHeight: !isOffline ? CONST.CHAT_FOOTER_MIN_HEIGHT : 0};
92101
const isArchivedRoom = ReportUtils.isArchivedRoom(report, reportNameValuePairs);
@@ -99,6 +108,8 @@ function ReportFooter({
99108
const hideComposer = (!ReportUtils.canUserPerformWriteAction(report, reportNameValuePairs) && !showComposerOptimistically) || blockedFromChat;
100109
const canWriteInReport = ReportUtils.canWriteInReport(report);
101110
const isSystemChat = ReportUtils.isSystemChat(report);
111+
const isAdminsOnlyPostingRoom = ReportUtils.isAdminsOnlyPostingRoom(report);
112+
const isUserPolicyAdmin = PolicyUtils.isPolicyAdmin(policy);
102113

103114
const allPersonalDetails = usePersonalDetails();
104115

@@ -156,7 +167,13 @@ function ReportFooter({
156167
return (
157168
<>
158169
{hideComposer && (
159-
<View style={[styles.chatFooter, isArchivedRoom || isAnonymousUser || !canWriteInReport ? styles.mt4 : {}, isSmallScreenWidth ? styles.mb5 : null]}>
170+
<View
171+
style={[
172+
styles.chatFooter,
173+
isArchivedRoom || isAnonymousUser || !canWriteInReport || (isAdminsOnlyPostingRoom && !isUserPolicyAdmin) ? styles.mt4 : {},
174+
isSmallScreenWidth ? styles.mb5 : null,
175+
]}
176+
>
160177
{isAnonymousUser && !isArchivedRoom && (
161178
<AnonymousReportFooter
162179
report={report}
@@ -166,6 +183,14 @@ function ReportFooter({
166183
{isArchivedRoom && <ArchivedReportFooter report={report} />}
167184
{!isArchivedRoom && blockedFromChat && <BlockedReportFooter />}
168185
{!isAnonymousUser && !canWriteInReport && isSystemChat && <SystemChatReportFooterMessage />}
186+
{isAdminsOnlyPostingRoom && !isUserPolicyAdmin && !isArchivedRoom && !isAnonymousUser && !blockedFromChat && (
187+
<Banner
188+
containerStyles={[styles.chatFooterBanner]}
189+
text={translate('adminOnlyCanPost')}
190+
icon={Expensicons.Lightbulb}
191+
shouldShowIcon
192+
/>
193+
)}
169194
{!isSmallScreenWidth && <View style={styles.offlineIndicatorRow}>{hideComposer && <OfflineIndicator containerStyles={[styles.chatItemComposeSecondaryRow]} />}</View>}
170195
</View>
171196
)}

src/pages/home/report/SystemChatReportFooterMessage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ function SystemChatReportFooterMessage({choice, policies, activePolicyID}: Syste
6767

6868
return (
6969
<Banner
70-
containerStyles={[styles.archivedReportFooter]}
70+
containerStyles={[styles.chatFooterBanner]}
7171
shouldShowIcon
7272
icon={Expensicons.Lightbulb}
7373
content={<Text suppressHighlighting>{content}</Text>}

src/styles/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3729,7 +3729,7 @@ const styles = (theme: ThemeColors) =>
37293729
height: variables.optionRowHeight,
37303730
},
37313731

3732-
archivedReportFooter: {
3732+
chatFooterBanner: {
37333733
borderRadius: variables.componentBorderRadius,
37343734
...wordBreak.breakWord,
37353735
},

0 commit comments

Comments
 (0)