diff --git a/src/libs/actions/Policy/Member.ts b/src/libs/actions/Policy/Member.ts index 3901aa480441d..f37f278a4b397 100644 --- a/src/libs/actions/Policy/Member.ts +++ b/src/libs/actions/Policy/Member.ts @@ -42,22 +42,6 @@ type WorkspaceMembersRoleData = { role: ValueOf; }; -const allPolicies: OnyxCollection = {}; -Onyx.connect({ - key: ONYXKEYS.COLLECTION.POLICY, - callback: (val, key) => { - if (!key) { - return; - } - if (val === null || val === undefined) { - delete allPolicies[key]; - return; - } - - allPolicies[key] = val; - }, -}); - let allReportActions: OnyxCollection; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, @@ -84,17 +68,6 @@ function isApprover(policy: OnyxEntry, employeeLogin: string) { ); } -/** - * Returns the policy of the report - * @deprecated Get the data straight from Onyx - This will be fixed as part of https://github.com/Expensify/Expensify/issues/507850 - */ -function getPolicy(policyID: string | undefined): OnyxEntry { - if (!allPolicies || !policyID) { - return undefined; - } - return allPolicies[`${ONYXKEYS.COLLECTION.POLICY}${policyID}`]; -} - /** * Build optimistic data for adding members to the announcement/admins room */ @@ -780,14 +753,12 @@ function updateWorkspaceMembersRole(policy: OnyxEntry, selectedMemberEma API.write(WRITE_COMMANDS.UPDATE_WORKSPACE_MEMBERS_ROLE, params, {optimisticData, successData, failureData}); } -function requestWorkspaceOwnerChange(policyID: string | undefined, currentUserAccountID: number, currentUserAccountLogin: string) { - if (!policyID) { +function requestWorkspaceOwnerChange(policy: OnyxEntry, currentUserAccountID: number, currentUserAccountLogin: string) { + if (!policy?.id) { return; } - // This will be fixed as part of https://github.com/Expensify/Expensify/issues/507850 - // eslint-disable-next-line @typescript-eslint/no-deprecated - const policy = getPolicy(policyID); + const policyID = policy.id; const ownershipChecks = {...policyOwnershipChecks?.[policyID]}; const changeOwnerErrors = Object.keys(policy?.errorFields?.changeOwner ?? {}); diff --git a/src/pages/workspace/WorkspaceOverviewPage.tsx b/src/pages/workspace/WorkspaceOverviewPage.tsx index 1e0af33e8505a..463f11efac5fb 100644 --- a/src/pages/workspace/WorkspaceOverviewPage.tsx +++ b/src/pages/workspace/WorkspaceOverviewPage.tsx @@ -346,7 +346,7 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa const startChangeOwnershipFlow = useCallback(() => { clearWorkspaceOwnerChangeFlow(policyID); - requestWorkspaceOwnerChange(policyID, currentUserPersonalDetails.accountID, currentUserPersonalDetails.login ?? ''); + requestWorkspaceOwnerChange(policy, currentUserPersonalDetails.accountID, currentUserPersonalDetails.login ?? ''); Navigation.navigate( ROUTES.WORKSPACE_OWNER_CHANGE_CHECK.getRoute( policyID, @@ -355,7 +355,7 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa Navigation.getActiveRoute(), ), ); - }, [currentUserPersonalDetails.accountID, currentUserPersonalDetails.login, policyID]); + }, [currentUserPersonalDetails.accountID, currentUserPersonalDetails.login, policyID, policy]); const handleLeave = useCallback(() => { const isReimburser = policy?.achAccount?.reimburser === session?.email; diff --git a/src/pages/workspace/WorkspacesListPage.tsx b/src/pages/workspace/WorkspacesListPage.tsx index c483ef7ded334..2ca0cadd73867 100755 --- a/src/pages/workspace/WorkspacesListPage.tsx +++ b/src/pages/workspace/WorkspacesListPage.tsx @@ -332,7 +332,7 @@ function WorkspacesListPage() { } clearWorkspaceOwnerChangeFlow(policyID); - requestWorkspaceOwnerChange(policyID, currentUserPersonalDetails.accountID, currentUserPersonalDetails.login ?? ''); + requestWorkspaceOwnerChange(policies?.[`${ONYXKEYS.COLLECTION.POLICY}${policyID}`], currentUserPersonalDetails.accountID, currentUserPersonalDetails.login ?? ''); Navigation.navigate( ROUTES.WORKSPACE_OWNER_CHANGE_CHECK.getRoute( policyID, @@ -342,7 +342,7 @@ function WorkspacesListPage() { ), ); }, - [currentUserPersonalDetails.accountID, currentUserPersonalDetails.login], + [currentUserPersonalDetails.accountID, currentUserPersonalDetails.login, policies], ); useEffect(() => { diff --git a/src/pages/workspace/members/WorkspaceOwnerChangeCheck.tsx b/src/pages/workspace/members/WorkspaceOwnerChangeCheck.tsx index 289abb3ea2330..a36e6ad950758 100644 --- a/src/pages/workspace/members/WorkspaceOwnerChangeCheck.tsx +++ b/src/pages/workspace/members/WorkspaceOwnerChangeCheck.tsx @@ -66,8 +66,8 @@ function WorkspaceOwnerChangeCheck({policy, accountID, error}: WorkspaceOwnerCha return; } - requestWorkspaceOwnerChange(policyID, currentUserPersonalDetails.accountID, currentUserPersonalDetails.login ?? ''); - }, [accountID, error, policyID, currentUserPersonalDetails.accountID, currentUserPersonalDetails.login]); + requestWorkspaceOwnerChange(policy, currentUserPersonalDetails.accountID, currentUserPersonalDetails.login ?? ''); + }, [policy, accountID, error, policyID, currentUserPersonalDetails.accountID, currentUserPersonalDetails.login]); return ( <> diff --git a/src/pages/workspace/members/WorkspaceOwnerChangeWrapperPage.tsx b/src/pages/workspace/members/WorkspaceOwnerChangeWrapperPage.tsx index 95a39dad3c450..c8bf5d704fe36 100644 --- a/src/pages/workspace/members/WorkspaceOwnerChangeWrapperPage.tsx +++ b/src/pages/workspace/members/WorkspaceOwnerChangeWrapperPage.tsx @@ -42,7 +42,7 @@ function WorkspaceOwnerChangeWrapperPage({route, policy}: WorkspaceOwnerChangeWr if (policy?.isChangeOwnerFailed || policy?.isChangeOwnerSuccessful) { return; } - requestWorkspaceOwnerChange(policyID, currentUserPersonalDetails.accountID, currentUserPersonalDetails.login ?? ''); + requestWorkspaceOwnerChange(policy, currentUserPersonalDetails.accountID, currentUserPersonalDetails.login ?? ''); // eslint-disable-next-line react-hooks/exhaustive-deps }, [policyID]); diff --git a/tests/actions/PolicyMemberTest.ts b/tests/actions/PolicyMemberTest.ts index cd6da273ca905..14e16c6b8f0d3 100644 --- a/tests/actions/PolicyMemberTest.ts +++ b/tests/actions/PolicyMemberTest.ts @@ -189,7 +189,7 @@ describe('actions/PolicyMember', () => { mockFetch?.pause?.(); Onyx.set(`${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, fakePolicy); - Member.requestWorkspaceOwnerChange(fakePolicy.id, fakeAccountID, fakeEmail); + Member.requestWorkspaceOwnerChange(fakePolicy, fakeAccountID, fakeEmail); await waitForBatchedUpdates(); await new Promise((resolve) => { const connection = Onyx.connect({