Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5978,6 +5978,7 @@ const translations = {
memberNotFound: 'Mitglied nicht gefunden.',
useInviteButton: 'Um ein neues Mitglied zum Chat einzuladen, verwenden Sie bitte die Einladungs-Schaltfläche oben.',
notAuthorized: `Sie haben keinen Zugriff auf diese Seite. Wenn Sie versuchen, diesem Raum beizutreten, bitten Sie einfach ein Mitglied des Raums, Sie hinzuzufügen. Etwas anderes? Wenden Sie sich an ${CONST.EMAIL.CONCIERGE}`,
roomArchived: `Es sieht so aus, als wäre dieser Raum archiviert worden. Bei Fragen wenden Sie sich bitte an ${CONST.EMAIL.CONCIERGE}.`,
removeMembersPrompt: ({memberName}: {memberName: string}) => ({
one: `Möchten Sie ${memberName} wirklich aus dem Raum entfernen?`,
other: 'Möchten Sie die ausgewählten Mitglieder wirklich aus dem Raum entfernen?',
Expand Down
1 change: 1 addition & 0 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5952,6 +5952,7 @@ const translations = {
memberNotFound: 'Member not found.',
useInviteButton: 'To invite a new member to the chat, please use the invite button above.',
notAuthorized: `You don't have access to this page. If you're trying to join this room, just ask a room member to add you. Something else? Reach out to ${CONST.EMAIL.CONCIERGE}`,
roomArchived: `It looks like this room was archived. For questions, reach out to ${CONST.EMAIL.CONCIERGE}.`,
removeMembersPrompt: ({memberName}: {memberName: string}) => ({
one: `Are you sure you want to remove ${memberName} from the room?`,
other: 'Are you sure you want to remove the selected members from the room?',
Expand Down
1 change: 1 addition & 0 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5973,6 +5973,7 @@ const translations = {
memberNotFound: 'Miembro no encontrado.',
useInviteButton: 'Para invitar a un nuevo miembro al chat, por favor, utiliza el botón invitar que está más arriba.',
notAuthorized: `No tienes acceso a esta página. Si estás intentando unirte a esta sala, pide a un miembro de la sala que te añada. ¿Necesitas algo más? Comunícate con ${CONST.EMAIL.CONCIERGE}`,
roomArchived: `Parece que esta sala ha sido archivada. Si tienes preguntas, comunícate con ${CONST.EMAIL.CONCIERGE}.`,
removeMembersPrompt: ({memberName}: {memberName: string}) => ({
one: `¿Estás seguro de que quieres eliminar ${memberName} de la sala de chat?`,
other: '¿Estás seguro de que quieres eliminar a los miembros seleccionados de la sala de chat?',
Expand Down
1 change: 1 addition & 0 deletions src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5992,6 +5992,7 @@ const translations = {
memberNotFound: 'Membre non trouvé.',
useInviteButton: "Pour inviter un nouveau membre à la discussion, veuillez utiliser le bouton d'invitation ci-dessus.",
notAuthorized: `Vous n'avez pas accès à cette page. Si vous essayez de rejoindre cette salle, demandez simplement à un membre de la salle de vous ajouter. Autre chose ? Contactez ${CONST.EMAIL.CONCIERGE}`,
roomArchived: `Il semblerait que cette salle ait été archivée. Si vous avez des questions, contactez ${CONST.EMAIL.CONCIERGE}.`,
removeMembersPrompt: ({memberName}: {memberName: string}) => ({
one: `Êtes-vous sûr de vouloir retirer ${memberName} de la salle ?`,
other: 'Êtes-vous sûr de vouloir supprimer les membres sélectionnés de la salle ?',
Expand Down
1 change: 1 addition & 0 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5993,6 +5993,7 @@ const translations = {
memberNotFound: 'Membro non trovato.',
useInviteButton: 'Per invitare un nuovo membro alla chat, utilizza il pulsante di invito sopra.',
notAuthorized: `Non hai accesso a questa pagina. Se stai cercando di unirti a questa stanza, chiedi a un membro della stanza di aggiungerti. Qualcos'altro? Contatta ${CONST.EMAIL.CONCIERGE}`,
roomArchived: `Sembra che questa stanza sia stata archiviata. Se hai domande, contatta ${CONST.EMAIL.CONCIERGE}.`,
removeMembersPrompt: ({memberName}: {memberName: string}) => ({
one: `Sei sicuro di voler rimuovere ${memberName} dalla stanza?`,
other: 'Sei sicuro di voler rimuovere i membri selezionati dalla stanza?',
Expand Down
1 change: 1 addition & 0 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5950,6 +5950,7 @@ const translations = {
memberNotFound: 'メンバーが見つかりません。',
useInviteButton: '新しいメンバーをチャットに招待するには、上の招待ボタンを使用してください。',
notAuthorized: `このページにアクセスする権限がありません。このルームに参加しようとしている場合は、ルームメンバーに追加してもらってください。他に何かお困りですか?${CONST.EMAIL.CONCIERGE}にお問い合わせください。`,
roomArchived: `このルームはアーカイブされました。ご不明な点があれば、${CONST.EMAIL.CONCIERGE} までご連絡ください。`,
removeMembersPrompt: ({memberName}: {memberName: string}) => ({
one: `このルームから${memberName}を削除してもよろしいですか?`,
other: '選択したメンバーをルームから削除してもよろしいですか?',
Expand Down
1 change: 1 addition & 0 deletions src/languages/nl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5985,6 +5985,7 @@ const translations = {
memberNotFound: 'Lid niet gevonden.',
useInviteButton: 'Om een nieuw lid uit te nodigen voor de chat, gebruik de uitnodigingsknop hierboven.',
notAuthorized: `Je hebt geen toegang tot deze pagina. Als je probeert deze kamer te betreden, vraag dan een kamerlid om je toe te voegen. Iets anders? Neem contact op met ${CONST.EMAIL.CONCIERGE}`,
roomArchived: `Het lijkt erop dat deze kamer is gearchiveerd. Voor vragen kun je contact opnemen met ${CONST.EMAIL.CONCIERGE}.`,
removeMembersPrompt: ({memberName}: {memberName: string}) => ({
one: `Weet je zeker dat je ${memberName} uit de kamer wilt verwijderen?`,
other: 'Weet je zeker dat je de geselecteerde leden uit de kamer wilt verwijderen?',
Expand Down
1 change: 1 addition & 0 deletions src/languages/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5971,6 +5971,7 @@ const translations = {
memberNotFound: 'Nie znaleziono członka.',
useInviteButton: 'Aby zaprosić nowego członka do czatu, użyj przycisku zaproszenia powyżej.',
notAuthorized: `Nie masz dostępu do tej strony. Jeśli próbujesz dołączyć do tego pokoju, poproś członka pokoju, aby Cię dodał. Coś innego? Skontaktuj się z ${CONST.EMAIL.CONCIERGE}`,
roomArchived: `Wygląda na to, że ten pokój został zarchiwizowany. W razie pytań skontaktuj się z ${CONST.EMAIL.CONCIERGE}.`,
removeMembersPrompt: ({memberName}: {memberName: string}) => ({
one: `Czy na pewno chcesz usunąć ${memberName} z pokoju?`,
other: 'Czy na pewno chcesz usunąć wybranych członków z pokoju?',
Expand Down
1 change: 1 addition & 0 deletions src/languages/pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5986,6 +5986,7 @@ const translations = {
memberNotFound: 'Membro não encontrado.',
useInviteButton: 'Para convidar um novo membro para o chat, por favor, use o botão de convite acima.',
notAuthorized: `Você não tem acesso a esta página. Se você está tentando entrar nesta sala, peça a um membro da sala para adicioná-lo. Algo mais? Entre em contato com ${CONST.EMAIL.CONCIERGE}`,
roomArchived: `Parece que esta sala foi arquivada. Em caso de dúvidas, entre em contato com ${CONST.EMAIL.CONCIERGE}.`,
removeMembersPrompt: ({memberName}: {memberName: string}) => ({
one: `Tem certeza de que deseja remover ${memberName} da sala?`,
other: 'Tem certeza de que deseja remover os membros selecionados da sala?',
Expand Down
1 change: 1 addition & 0 deletions src/languages/zh-hans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5868,6 +5868,7 @@ const translations = {
memberNotFound: '未找到成员。',
useInviteButton: '要邀请新成员加入聊天,请使用上面的邀请按钮。',
notAuthorized: `您无权访问此页面。如果您想加入此房间,请让房间成员添加您。还有其他问题?请联系${CONST.EMAIL.CONCIERGE}`,
roomArchived: `此房间已被存档。如有疑问,请联系 ${CONST.EMAIL.CONCIERGE}。`,
removeMembersPrompt: ({memberName}: {memberName: string}) => ({
one: `您确定要将${memberName}从房间中移除吗?`,
other: '您确定要从房间中移除选定的成员吗?',
Expand Down
16 changes: 12 additions & 4 deletions src/pages/RoomInvitePage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import type {WithNavigationTransitionEndProps} from '@components/withNavigationT
import useDebouncedState from '@hooks/useDebouncedState';
import useLocalize from '@hooks/useLocalize';
import useOnyx from '@hooks/useOnyx';
import useReportIsArchived from '@hooks/useReportIsArchived';
import useThemeStyles from '@hooks/useThemeStyles';
import {inviteToRoom, searchInServer} from '@libs/actions/Report';
import {clearUserSearchPhrase, updateUserSearchPhrase} from '@libs/actions/RoomMembersUserSearchPhrase';
Expand All @@ -34,6 +35,7 @@ import {isPolicyEmployee as isPolicyEmployeeUtil} from '@libs/PolicyUtils';
import type {OptionData} from '@libs/ReportUtils';
import {getReportName, isHiddenForCurrentUser} from '@libs/ReportUtils';
import CONST from '@src/CONST';
import type {TranslationPaths} from '@src/languages/types';
import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES from '@src/ROUTES';
import type SCREENS from '@src/SCREENS';
Expand All @@ -58,6 +60,7 @@ function RoomInvitePage({
const [searchTerm, debouncedSearchTerm, setSearchTerm] = useDebouncedState(userSearchPhrase ?? '');
const [selectedOptions, setSelectedOptions] = useState<OptionData[]>([]);
const [isSearchingForReports] = useOnyx(ONYXKEYS.IS_SEARCHING_FOR_REPORTS, {initWithStoredValues: false, canBeMissing: true});
const isReportArchived = useReportIsArchived(report.reportID);

const {options, areOptionsInitialized} = useOptionsList();

Expand Down Expand Up @@ -184,8 +187,8 @@ function RoomInvitePage({
const reportID = report?.reportID;
const isPolicyEmployee = useMemo(() => isPolicyEmployeeUtil(report?.policyID, policy), [report?.policyID, policy]);
const backRoute = useMemo(() => {
return reportID && (isPolicyEmployee ? ROUTES.ROOM_MEMBERS.getRoute(reportID, backTo) : ROUTES.REPORT_WITH_ID_DETAILS.getRoute(reportID, backTo));
}, [isPolicyEmployee, reportID, backTo]);
return reportID && (!isPolicyEmployee || isReportArchived ? ROUTES.REPORT_WITH_ID_DETAILS.getRoute(reportID, backTo) : ROUTES.ROOM_MEMBERS.getRoute(reportID, backTo));
}, [isPolicyEmployee, reportID, backTo, isReportArchived]);
const reportName = useMemo(() => getReportName(report), [report]);
const inviteUsers = useCallback(() => {
HttpUtils.cancelPendingRequests(READ_COMMANDS.SEARCH_FOR_REPORTS);
Expand Down Expand Up @@ -233,15 +236,20 @@ function RoomInvitePage({
searchInServer(debouncedSearchTerm);
}, [debouncedSearchTerm]);

let subtitleKey: '' | TranslationPaths | undefined;
if (!isEmptyObject(report)) {
subtitleKey = isReportArchived ? 'roomMembersPage.roomArchived' : 'roomMembersPage.notAuthorized';
}

return (
<ScreenWrapper
shouldEnableMaxHeight
testID={RoomInvitePage.displayName}
includeSafeAreaPaddingBottom
>
<FullPageNotFoundView
shouldShow={isEmptyObject(report)}
subtitleKey={isEmptyObject(report) ? undefined : 'roomMembersPage.notAuthorized'}
shouldShow={isEmptyObject(report) || isReportArchived}
subtitleKey={subtitleKey}
onBackButtonPress={goBack}
>
<HeaderWithBackButton
Expand Down
12 changes: 10 additions & 2 deletions src/pages/RoomMembersPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import useLocalize from '@hooks/useLocalize';
import useMobileSelectionMode from '@hooks/useMobileSelectionMode';
import useNetwork from '@hooks/useNetwork';
import useOnyx from '@hooks/useOnyx';
import useReportIsArchived from '@hooks/useReportIsArchived';
import useResponsiveLayout from '@hooks/useResponsiveLayout';
import useSearchBackPress from '@hooks/useSearchBackPress';
import useThemeStyles from '@hooks/useThemeStyles';
Expand All @@ -37,6 +38,7 @@ import {getReportName, getReportPersonalDetailsParticipants, isChatThread, isDef
import StringUtils from '@libs/StringUtils';
import {clearAddRoomMemberError, openRoomMembersPage, removeFromRoom} from '@userActions/Report';
import CONST from '@src/CONST';
import type {TranslationPaths} from '@src/languages/types';
import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES from '@src/ROUTES';
import type SCREENS from '@src/SCREENS';
Expand All @@ -61,6 +63,7 @@ function RoomMembersPage({report, policy}: RoomMembersPageProps) {
const personalDetails = usePersonalDetails();
const isPolicyExpenseChat = useMemo(() => isPolicyExpenseChatUtils(report), [report]);
const backTo = route.params.backTo;
const isReportArchived = useReportIsArchived(report.reportID);

const {chatParticipants: participants, personalDetailsParticipants} = useMemo(
() => getReportPersonalDetailsParticipants(report, personalDetails, reportMetadata, true),
Expand Down Expand Up @@ -376,15 +379,20 @@ function RoomMembersPage({report, policy}: RoomMembersPageProps) {
return <View style={[styles.peopleRow, styles.userSelectNone, styles.ph9, styles.pb5, styles.mt3]}>{header}</View>;
}, [styles, translate, canSelectMultiple]);

let subtitleKey: '' | TranslationPaths | undefined;
if (!isEmptyObject(report)) {
subtitleKey = isReportArchived ? 'roomMembersPage.roomArchived' : 'roomMembersPage.notAuthorized';
}

return (
<ScreenWrapper
includeSafeAreaPaddingBottom={false}
style={[styles.defaultModalContainer]}
testID={RoomMembersPage.displayName}
>
<FullPageNotFoundView
shouldShow={isEmptyObject(report) || (!isChatThread(report) && ((isUserCreatedPolicyRoom(report) && !isPolicyEmployee) || isDefaultRoom(report)))}
subtitleKey={isEmptyObject(report) ? undefined : 'roomMembersPage.notAuthorized'}
shouldShow={isEmptyObject(report) || isReportArchived || (!isChatThread(report) && ((isUserCreatedPolicyRoom(report) && !isPolicyEmployee) || isDefaultRoom(report)))}
subtitleKey={subtitleKey}
onBackButtonPress={() => {
Navigation.goBack(ROUTES.REPORT_WITH_ID_DETAILS.getRoute(report.reportID, backTo));
}}
Expand Down
Loading