From 384728a069455fcca7f031db978465455f861823 Mon Sep 17 00:00:00 2001 From: Bernhard Owen Josephus Date: Fri, 9 Aug 2024 12:22:56 +0800 Subject: [PATCH] connect policy data in actions file --- src/libs/actions/User.ts | 11 +++++++++-- .../Contacts/ContactMethodDetailsPage.tsx | 16 +++------------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/libs/actions/User.ts b/src/libs/actions/User.ts index 56affbab9de6..2e2e7897e136 100644 --- a/src/libs/actions/User.ts +++ b/src/libs/actions/User.ts @@ -70,6 +70,13 @@ Onyx.connect({ }, }); +let allPolicies: OnyxCollection; +Onyx.connect({ + key: ONYXKEYS.COLLECTION.POLICY, + waitForCollectionCallback: true, + callback: (value) => (allPolicies = value), +}); + /** * Attempt to close the user's accountt */ @@ -765,7 +772,7 @@ function generateStatementPDF(period: string) { /** * Sets a contact method / secondary login as the user's "Default" contact method. */ -function setContactMethodAsDefault(newDefaultContactMethod: string, policies: OnyxCollection>) { +function setContactMethodAsDefault(newDefaultContactMethod: string) { const oldDefaultContactMethod = currentEmail; const optimisticData: OnyxUpdate[] = [ { @@ -858,7 +865,7 @@ function setContactMethodAsDefault(newDefaultContactMethod: string, policies: On }, ]; - Object.values(policies ?? {}).forEach((policy) => { + Object.values(allPolicies ?? {}).forEach((policy) => { if (!policy) { return; } diff --git a/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx b/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx index 9a02c0fef67e..af0cd242e301 100644 --- a/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx +++ b/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx @@ -2,7 +2,6 @@ import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'; import {InteractionManager, Keyboard, View} from 'react-native'; -import type {OnyxEntry} from 'react-native-onyx'; import {useOnyx} from 'react-native-onyx'; import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; import ConfirmModal from '@components/ConfirmModal'; @@ -28,19 +27,11 @@ import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -import type {Policy} from '@src/types/onyx'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; import isLoadingOnyxValue from '@src/types/utils/isLoadingOnyxValue'; import ValidateCodeForm from './ValidateCodeForm'; import type {ValidateCodeFormHandle} from './ValidateCodeForm/BaseValidateCodeForm'; -const policiesSelector = (policy: OnyxEntry): Pick => ({ - id: policy?.id ?? '-1', - ownerAccountID: policy?.ownerAccountID, - owner: policy?.owner ?? '', - employeeList: policy?.employeeList, -}); - type ContactMethodDetailsPageProps = StackScreenProps; function ContactMethodDetailsPage({route}: ContactMethodDetailsPageProps) { @@ -49,9 +40,8 @@ function ContactMethodDetailsPage({route}: ContactMethodDetailsPageProps) { const [myDomainSecurityGroups, myDomainSecurityGroupsResult] = useOnyx(ONYXKEYS.MY_DOMAIN_SECURITY_GROUPS); const [securityGroups, securityGroupsResult] = useOnyx(ONYXKEYS.COLLECTION.SECURITY_GROUP); const [isLoadingReportData, isLoadingReportDataResult] = useOnyx(ONYXKEYS.IS_LOADING_REPORT_DATA, {initialValue: true}); - const [policies, policiesResult] = useOnyx(ONYXKEYS.COLLECTION.POLICY, {selector: policiesSelector}); - const isLoadingOnyxValues = isLoadingOnyxValue(loginListResult, sessionResult, myDomainSecurityGroupsResult, securityGroupsResult, isLoadingReportDataResult, policiesResult); + const isLoadingOnyxValues = isLoadingOnyxValue(loginListResult, sessionResult, myDomainSecurityGroupsResult, securityGroupsResult, isLoadingReportDataResult); const {formatPhoneNumber, translate} = useLocalize(); const theme = useTheme(); @@ -88,8 +78,8 @@ function ContactMethodDetailsPage({route}: ContactMethodDetailsPageProps) { * Attempt to set this contact method as user's "Default contact method" */ const setAsDefault = useCallback(() => { - User.setContactMethodAsDefault(contactMethod, policies); - }, [contactMethod, policies]); + User.setContactMethodAsDefault(contactMethod); + }, [contactMethod]); /** * Checks if the user is allowed to change their default contact method. This should only be allowed if: