Skip to content

Commit ab775e2

Browse files
committed
resolve comment
1 parent feca439 commit ab775e2

4 files changed

Lines changed: 20 additions & 26 deletions

File tree

src/hooks/useAccountIDToLogin.ts

Lines changed: 0 additions & 18 deletions
This file was deleted.

src/pages/workspace/WorkspaceOverviewPage.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription';
1414
import OfflineWithFeedback from '@components/OfflineWithFeedback';
1515
import {usePersonalDetails} from '@components/OnyxListItemProvider';
1616
import Section from '@components/Section';
17-
import useAccountIDToLogin from '@hooks/useAccountIDToLogin';
1817
import useCardFeeds from '@hooks/useCardFeeds';
1918
import {useCurrencyListActions} from '@hooks/useCurrencyList';
2019
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
@@ -71,6 +70,7 @@ import CONST from '@src/CONST';
7170
import ONYXKEYS from '@src/ONYXKEYS';
7271
import ROUTES from '@src/ROUTES';
7372
import type SCREENS from '@src/SCREENS';
73+
import {accountIDToLoginSelector} from '@src/selectors/PersonalDetails';
7474
import {ownerPoliciesSelector} from '@src/selectors/Policy';
7575
import {reimbursementAccountErrorSelector} from '@src/selectors/ReimbursementAccount';
7676
import {isEmptyObject} from '@src/types/utils/EmptyObject';
@@ -86,7 +86,6 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa
8686
const {shouldUseNarrowLayout} = useResponsiveLayout();
8787
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
8888
const {getCurrencySymbol} = useCurrencyListActions();
89-
const accountIDToLogin = useAccountIDToLogin();
9089
const illustrationIcons = useMemoizedLazyIllustrations(['Building']);
9190
const expensifyIcons = useMemoizedLazyExpensifyIcons(['Exit', 'FallbackWorkspaceAvatar', 'ImageCropSquareMask', 'QrCode', 'Transfer', 'Trashcan', 'UserPlus']);
9291

@@ -184,6 +183,7 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa
184183
const [isLeaveModalOpen, setIsLeaveModalOpen] = useState(false);
185184
const [session] = useOnyx(ONYXKEYS.SESSION);
186185
const personalDetails = usePersonalDetails();
186+
const [accountIDToLogin] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {selector: accountIDToLoginSelector(reportsToArchive)});
187187
const [isCannotLeaveWorkspaceModalOpen, setIsCannotLeaveWorkspaceModalOpen] = useState(false);
188188
const privateSubscription = usePrivateSubscription();
189189
const accountID = currentUserPersonalDetails?.accountID;
@@ -270,7 +270,7 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa
270270
personalPolicyID,
271271
hasDeleteWorkspaceExpensifyCardsError,
272272
currentUserAccountID: accountID,
273-
accountIDToLogin,
273+
accountIDToLogin: accountIDToLogin ?? {},
274274
});
275275
if (isOffline) {
276276
setIsDeleteModalOpen(false);

src/pages/workspace/WorkspacesListPage.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import ScreenWrapper from '@components/ScreenWrapper';
2222
import SearchBar from '@components/SearchBar';
2323
import type {ListItem} from '@components/SelectionList/types';
2424
import Text from '@components/Text';
25-
import useAccountIDToLogin from '@hooks/useAccountIDToLogin';
2625
import useAndroidBackButtonHandler from '@hooks/useAndroidBackButtonHandler';
2726
import useCardFeeds from '@hooks/useCardFeeds';
2827
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
@@ -74,6 +73,7 @@ import CONST from '@src/CONST';
7473
import ONYXKEYS from '@src/ONYXKEYS';
7574
import ROUTES from '@src/ROUTES';
7675
import type SCREENS from '@src/SCREENS';
76+
import {accountIDToLoginSelector} from '@src/selectors/PersonalDetails';
7777
import {ownerPoliciesSelector} from '@src/selectors/Policy';
7878
import {reimbursementAccountErrorSelector} from '@src/selectors/ReimbursementAccount';
7979
import type {Policy as PolicyType} from '@src/types/onyx';
@@ -136,7 +136,6 @@ function WorkspacesListPage() {
136136
const expensifyIcons = useMemoizedLazyExpensifyIcons(['Building', 'Exit', 'Copy', 'Star', 'Trashcan', 'Transfer', 'Plus', 'FallbackWorkspaceAvatar']);
137137
const {translate, localeCompare} = useLocalize();
138138
useDocumentTitle(translate('common.workspaces'));
139-
const accountIDToLogin = useAccountIDToLogin();
140139
const {isOffline} = useNetwork();
141140
const isFocused = useIsFocused();
142141
const {shouldUseNarrowLayout, isMediumScreenWidth} = useResponsiveLayout();
@@ -204,6 +203,7 @@ function WorkspacesListPage() {
204203
policies?.[`${ONYXKEYS.COLLECTION.POLICY}${policyIDToDelete}`]?.workspaceAccountID);
205204
const hasExpensifyCard = !!policies?.[`${ONYXKEYS.COLLECTION.POLICY}${policyIDToDelete}`]?.areExpensifyCardsEnabled && !isEmptyObject(cardsList);
206205
const personalDetails = usePersonalDetails();
206+
const [accountIDToLogin] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {selector: accountIDToLoginSelector(reportsToArchive)});
207207
const [isLeaveModalOpen, setIsLeaveModalOpen] = useState(false);
208208
const [isCannotLeaveWorkspaceModalOpen, setIsCannotLeaveWorkspaceModalOpen] = useState(false);
209209
const [policyIDToLeave, setPolicyIDToLeave] = useState<string>();
@@ -244,7 +244,7 @@ function WorkspacesListPage() {
244244
personalPolicyID,
245245
hasDeleteWorkspaceExpensifyCardsError,
246246
currentUserAccountID: currentUserPersonalDetails.accountID,
247-
accountIDToLogin,
247+
accountIDToLogin: accountIDToLogin ?? {},
248248
});
249249
if (isOffline) {
250250
setIsDeleteModalOpen(false);

src/selectors/PersonalDetails.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,20 @@
11
import type {OnyxEntry} from 'react-native-onyx';
2-
import type {PersonalDetailsList} from '@src/types/onyx';
2+
import CONST from '@src/CONST';
3+
import type {PersonalDetailsList, Report} from '@src/types/onyx';
34

45
const personalDetailsSelector = (accountID: number) => (personalDetailsList: OnyxEntry<PersonalDetailsList>) => personalDetailsList?.[accountID];
56

67
const personalDetailsLoginSelector = (accountID: number) => (personalDetailsList: OnyxEntry<PersonalDetailsList>) => personalDetailsList?.[accountID]?.login;
78

8-
export {personalDetailsSelector, personalDetailsLoginSelector};
9+
const accountIDToLoginSelector = (reportsToArchive: Report[]) => (personalDetailsList: OnyxEntry<PersonalDetailsList>) => {
10+
const map: Record<number, string> = {};
11+
for (const report of reportsToArchive) {
12+
const {ownerAccountID} = report;
13+
if (ownerAccountID && ownerAccountID !== CONST.POLICY.OWNER_ACCOUNT_ID_FAKE && personalDetailsList?.[ownerAccountID]?.login) {
14+
map[ownerAccountID] = personalDetailsList[ownerAccountID].login;
15+
}
16+
}
17+
return map;
18+
};
19+
20+
export {personalDetailsSelector, personalDetailsLoginSelector, accountIDToLoginSelector};

0 commit comments

Comments
 (0)