diff --git a/src/pages/workspace/WorkspaceMoreFeaturesPage.tsx b/src/pages/workspace/WorkspaceMoreFeaturesPage.tsx index 6075d58353f93..72b165821c61c 100644 --- a/src/pages/workspace/WorkspaceMoreFeaturesPage.tsx +++ b/src/pages/workspace/WorkspaceMoreFeaturesPage.tsx @@ -1,5 +1,4 @@ -import {useFocusEffect} from '@react-navigation/native'; -import React, {useCallback, useState} from 'react'; +import React, {useCallback, useEffect, useState} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; import ConfirmModal from '@components/ConfirmModal'; @@ -438,13 +437,13 @@ function WorkspaceMoreFeaturesPage({policy, route}: WorkspaceMoreFeaturesPagePro openPolicyMoreFeaturesPage(route.params.policyID); }, [route.params.policyID]); - useNetwork({onReconnect: fetchFeatures}); + useEffect(() => { + fetchFeatures(); + // eslint-disable-next-line react-compiler/react-compiler + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); - useFocusEffect( - useCallback(() => { - fetchFeatures(); - }, [fetchFeatures]), - ); + useNetwork({onReconnect: fetchFeatures}); return ( { - fetchData(policyID, shouldSkipVBBACall); - }, [policyID, shouldSkipVBBACall]), - ); - + useEffect(() => { + fetchData(policyID, shouldSkipVBBACall); + // eslint-disable-next-line react-compiler/react-compiler + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); const shouldShowPolicy = useMemo(() => shouldShowPolicyUtil(policy, isOffline, currentUserLogin), [policy, isOffline, currentUserLogin]); const isPendingDelete = isPendingDeletePolicy(policy); const prevIsPendingDelete = isPendingDeletePolicy(prevPolicy); diff --git a/src/pages/workspace/categories/WorkspaceCategoriesPage.tsx b/src/pages/workspace/categories/WorkspaceCategoriesPage.tsx index 603a6902869ee..4b645b27a43e9 100644 --- a/src/pages/workspace/categories/WorkspaceCategoriesPage.tsx +++ b/src/pages/workspace/categories/WorkspaceCategoriesPage.tsx @@ -1,4 +1,3 @@ -import {useFocusEffect} from '@react-navigation/native'; import lodashSortBy from 'lodash/sortBy'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import {ActivityIndicator, View} from 'react-native'; @@ -92,11 +91,11 @@ function WorkspaceCategoriesPage({route}: WorkspaceCategoriesPageProps) { const {isOffline} = useNetwork({onReconnect: fetchCategories}); - useFocusEffect( - useCallback(() => { - fetchCategories(); - }, [fetchCategories]), - ); + useEffect(() => { + fetchCategories(); + // eslint-disable-next-line react-compiler/react-compiler + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); const cleanupSelectedOption = useCallback(() => setSelectedCategories({}), []); useCleanupSelectedOptions(cleanupSelectedOption); diff --git a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx index 91860e3823570..0d511e2252511 100644 --- a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx +++ b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx @@ -1,4 +1,4 @@ -import {useFocusEffect, useIsFocused} from '@react-navigation/native'; +import {useIsFocused} from '@react-navigation/native'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import {ActivityIndicator, View} from 'react-native'; import Button from '@components/Button'; @@ -96,11 +96,11 @@ function PolicyDistanceRatesPage({ const {isOffline} = useNetwork({onReconnect: fetchDistanceRates}); - useFocusEffect( - useCallback(() => { - fetchDistanceRates(); - }, [fetchDistanceRates]), - ); + useEffect(() => { + fetchDistanceRates(); + // eslint-disable-next-line react-compiler/react-compiler + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); useEffect(() => { if (isFocused) { diff --git a/src/pages/workspace/tags/WorkspaceTagsPage.tsx b/src/pages/workspace/tags/WorkspaceTagsPage.tsx index 7e61667d6b45b..93e64e6dd02f7 100644 --- a/src/pages/workspace/tags/WorkspaceTagsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceTagsPage.tsx @@ -1,6 +1,5 @@ -import {useFocusEffect} from '@react-navigation/native'; import lodashSortBy from 'lodash/sortBy'; -import React, {useCallback, useMemo, useState} from 'react'; +import React, {useCallback, useEffect, useMemo, useState} from 'react'; import {ActivityIndicator, View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; import Button from '@components/Button'; @@ -93,7 +92,11 @@ function WorkspaceTagsPage({route}: WorkspaceTagsPageProps) { const {isOffline} = useNetwork({onReconnect: fetchTags}); - useFocusEffect(fetchTags); + useEffect(() => { + fetchTags(); + // eslint-disable-next-line react-compiler/react-compiler + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); const cleanupSelectedOption = useCallback(() => setSelectedTags({}), []); useCleanupSelectedOptions(cleanupSelectedOption); diff --git a/src/pages/workspace/taxes/WorkspaceTaxesPage.tsx b/src/pages/workspace/taxes/WorkspaceTaxesPage.tsx index c750e139403b8..a8e2bd0a6c736 100644 --- a/src/pages/workspace/taxes/WorkspaceTaxesPage.tsx +++ b/src/pages/workspace/taxes/WorkspaceTaxesPage.tsx @@ -1,5 +1,4 @@ -import {useFocusEffect} from '@react-navigation/native'; -import React, {useCallback, useMemo, useState} from 'react'; +import React, {useCallback, useEffect, useMemo, useState} from 'react'; import {ActivityIndicator, View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; import Button from '@components/Button'; @@ -82,11 +81,11 @@ function WorkspaceTaxesPage({ const {isOffline} = useNetwork({onReconnect: fetchTaxes}); - useFocusEffect( - useCallback(() => { - fetchTaxes(); - }, [fetchTaxes]), - ); + useEffect(() => { + fetchTaxes(); + // eslint-disable-next-line react-compiler/react-compiler + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); const cleanupSelectedOption = useCallback(() => setSelectedTaxesIDs([]), []); useCleanupSelectedOptions(cleanupSelectedOption); diff --git a/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx b/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx index 03f837b8d345d..695bd12808e77 100644 --- a/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx +++ b/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx @@ -1,5 +1,4 @@ -import {useFocusEffect} from '@react-navigation/native'; -import React, {useCallback, useMemo} from 'react'; +import React, {useCallback, useEffect, useMemo} from 'react'; import {ActivityIndicator, InteractionManager, View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; import ApprovalWorkflowSection from '@components/ApprovalWorkflowSection'; @@ -46,10 +45,10 @@ import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -import ToggleSettingOptionRow from './ToggleSettingsOptionRow'; import type {ToggleSettingOptionRowProps} from './ToggleSettingsOptionRow'; -import {getAutoReportingFrequencyDisplayNames} from './WorkspaceAutoReportingFrequencyPage'; +import ToggleSettingOptionRow from './ToggleSettingsOptionRow'; import type {AutoReportingFrequencyKey} from './WorkspaceAutoReportingFrequencyPage'; +import {getAutoReportingFrequencyDisplayNames} from './WorkspaceAutoReportingFrequencyPage'; type WorkspaceWorkflowsPageProps = WithPolicyProps & PlatformStackScreenProps; @@ -102,13 +101,13 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) { const {isOffline} = useNetwork({onReconnect: fetchData}); const isPolicyAdmin = isPolicyAdminUtil(policy); - useFocusEffect( - useCallback(() => { - InteractionManager.runAfterInteractions(() => { - fetchData(); - }); - }, [fetchData]), - ); + useEffect(() => { + InteractionManager.runAfterInteractions(() => { + fetchData(); + }); + // eslint-disable-next-line react-compiler/react-compiler + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); // User should be allowed to add new Approval Workflow only if he's upgraded to Control Plan, otherwise redirected to the Upgrade Page const addApprovalAction = useCallback(() => {