Skip to content

Commit 744ea26

Browse files
committed
Optimize useDelegateAccountID to use a targeted selector
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
1 parent b6a1bbf commit 744ea26

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

src/hooks/useDelegateAccountID.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,26 @@
11
import {delegateEmailSelector} from '@selectors/Account';
2+
import {useCallback} from 'react';
23
import ONYXKEYS from '@src/ONYXKEYS';
4+
import type {PersonalDetailsList} from '@src/types/onyx';
35
import useOnyx from './useOnyx';
4-
import usePersonalDetailsByLogin from './usePersonalDetailsByLogin';
56

67
function useDelegateAccountID(): number | undefined {
78
const [delegateEmail] = useOnyx(ONYXKEYS.ACCOUNT, {selector: delegateEmailSelector});
8-
const personalDetailsByLogin = usePersonalDetailsByLogin();
9+
const normalizedEmail = delegateEmail?.toLowerCase();
910

10-
return delegateEmail ? personalDetailsByLogin[delegateEmail.toLowerCase()]?.accountID : undefined;
11+
const selector = useCallback(
12+
(personalDetails: PersonalDetailsList | null | undefined): number | undefined => {
13+
if (!normalizedEmail || !personalDetails) {
14+
return undefined;
15+
}
16+
return Object.values(personalDetails).find((detail) => detail?.login?.toLowerCase() === normalizedEmail)?.accountID;
17+
},
18+
[normalizedEmail],
19+
);
20+
21+
const [delegateAccountID] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {selector});
22+
23+
return delegateAccountID;
1124
}
1225

1326
export default useDelegateAccountID;

0 commit comments

Comments
 (0)