From ac27aac3d15a9a69f6da9622baba38bd14538812 Mon Sep 17 00:00:00 2001 From: Hubert Sosinski Date: Tue, 10 Mar 2026 11:42:13 +0100 Subject: [PATCH 1/3] add reasonAttributes to FullscreenLoadingIndicator usages in workspace pages --- src/pages/workspace/AccessOrNotFoundWrapper.tsx | 8 +++++++- src/pages/workspace/WorkspaceJoinUserPage.tsx | 11 ++++++++++- .../workspace/WorkspaceOverviewPlanTypePage.tsx | 10 +++++++++- src/pages/workspace/WorkspacePageWithSections.tsx | 13 ++++++++++++- src/pages/workspace/WorkspacesListPage.tsx | 12 +++++++++++- .../NetSuiteImportAddCustomListPage.tsx | 7 ++++++- .../NetSuiteImportAddCustomSegmentPage.tsx | 7 ++++++- .../subPages/ConfirmCustomListStep.tsx | 7 ++++++- .../subPages/ConfirmCustomSegmentList.tsx | 7 ++++++- .../companyCards/BankConnection/index.native.tsx | 11 ++++++++++- .../WorkspaceCompanyCardStatementCloseDatePage.tsx | 8 +++++++- .../WorkspaceCompanyCardsSettingsFeedNamePage.tsx | 8 +++++++- .../companyCards/addNew/AddNewCardPage.tsx | 9 ++++++++- .../addNew/DirectStatementCloseDatePage.tsx | 8 +++++++- .../workspace/downgrade/PayAndDowngradePage.tsx | 7 ++++++- .../expensifyCard/WorkspaceExpensifyCardPage.tsx | 14 +++++++++++++- .../members/WorkspaceOwnerChangeWrapperPage.tsx | 9 ++++++++- .../WorkspaceReceiptPartnersPage.tsx | 7 +++++++ .../WorkspaceTimeTrackingDefaultRatePage.tsx | 8 +++++++- .../workspace/withPolicyAndFullscreenLoading.tsx | 10 +++++++++- src/pages/workspace/withPolicyConnections.tsx | 8 +++++++- .../WorkspaceWorkflowsApprovalsCreatePage.tsx | 12 +++++++++++- .../WorkspaceWorkflowsApprovalsEditPage.tsx | 12 +++++++++++- 23 files changed, 191 insertions(+), 22 deletions(-) diff --git a/src/pages/workspace/AccessOrNotFoundWrapper.tsx b/src/pages/workspace/AccessOrNotFoundWrapper.tsx index 185323a47cae..5f2bb589b68a 100644 --- a/src/pages/workspace/AccessOrNotFoundWrapper.tsx +++ b/src/pages/workspace/AccessOrNotFoundWrapper.tsx @@ -16,6 +16,7 @@ import goBackFromWorkspaceSettingPages from '@libs/Navigation/helpers/goBackFrom import Navigation from '@libs/Navigation/Navigation'; import {canSendInvoice, isControlPolicy, isPaidGroupPolicy, isPolicyAccessible, isPolicyAdmin, isPolicyFeatureEnabled as isPolicyFeatureEnabledUtil} from '@libs/PolicyUtils'; import {canCreateRequest} from '@libs/ReportUtils'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; import type {IOUType} from '@src/CONST'; import CONST from '@src/CONST'; @@ -205,7 +206,12 @@ function AccessOrNotFoundWrapper({ }, [isLoadingReportData, isPolicyNotAccessible]); if (shouldShowFullScreenLoadingIndicator) { - return ; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'AccessOrNotFoundWrapper', + isLoadingReportData: isLoadingReportData !== false, + isPolicyEmpty: !Object.entries(policy ?? {}).length || !policy?.id, + }; + return ; } if (shouldShowNotFoundPage) { diff --git a/src/pages/workspace/WorkspaceJoinUserPage.tsx b/src/pages/workspace/WorkspaceJoinUserPage.tsx index 361887b93bea..b7008fc5031d 100644 --- a/src/pages/workspace/WorkspaceJoinUserPage.tsx +++ b/src/pages/workspace/WorkspaceJoinUserPage.tsx @@ -7,6 +7,7 @@ import {inviteMemberToWorkspace} from '@libs/actions/Policy/Member'; import navigateAfterJoinRequest from '@libs/navigateAfterJoinRequest'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import {isPendingDeletePolicy} from '@libs/PolicyUtils'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import Navigation from '@navigation/Navigation'; import type {AuthScreensParamList} from '@navigation/types'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -56,7 +57,15 @@ function WorkspaceJoinUserPage({route}: WorkspaceJoinUserPageProps) { return ( - + ); } diff --git a/src/pages/workspace/WorkspaceOverviewPlanTypePage.tsx b/src/pages/workspace/WorkspaceOverviewPlanTypePage.tsx index 5c5c5224c521..9a9e07ff3d41 100644 --- a/src/pages/workspace/WorkspaceOverviewPlanTypePage.tsx +++ b/src/pages/workspace/WorkspaceOverviewPlanTypePage.tsx @@ -18,6 +18,7 @@ import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import OpenWorkspacePlanPage from '@libs/actions/Policy/Plan'; import {isSubscriptionTypeOfInvoicing} from '@libs/SubscriptionUtils'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import Navigation from '@navigation/Navigation'; import CardSectionUtils from '@pages/settings/Subscription/CardSection/utils'; import type {PersonalPolicyTypeExcludedProps} from '@pages/settings/Subscription/SubscriptionPlan/SubscriptionPlanCard'; @@ -113,7 +114,14 @@ function WorkspaceOverviewPlanTypePage({policy}: WithPolicyProps) { {policy?.isLoading ? ( - + ) : ( <> diff --git a/src/pages/workspace/WorkspacePageWithSections.tsx b/src/pages/workspace/WorkspacePageWithSections.tsx index 76f4d538d57a..ff06c2fa4e05 100644 --- a/src/pages/workspace/WorkspacePageWithSections.tsx +++ b/src/pages/workspace/WorkspacePageWithSections.tsx @@ -20,6 +20,7 @@ import {openWorkspaceView} from '@libs/actions/BankAccounts'; import goBackFromWorkspaceSettingPages from '@libs/Navigation/helpers/goBackFromWorkspaceSettingPages'; import Navigation from '@libs/Navigation/Navigation'; import {isPendingDeletePolicy, isPolicyAdmin, shouldShowPolicy as shouldShowPolicyUtil} from '@libs/PolicyUtils'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import type {Route} from '@src/ROUTES'; @@ -229,7 +230,17 @@ function WorkspacePageWithSections({ {headerContent} {!isOffline && (isLoading || firstRender.current) && shouldShowLoading && isFocused ? ( - + ) : ( <> {shouldUseScrollView ? ( diff --git a/src/pages/workspace/WorkspacesListPage.tsx b/src/pages/workspace/WorkspacesListPage.tsx index 146081ffd12f..a330ca9fb6ba 100755 --- a/src/pages/workspace/WorkspacesListPage.tsx +++ b/src/pages/workspace/WorkspacesListPage.tsx @@ -64,6 +64,7 @@ import { import {getDefaultWorkspaceAvatar} from '@libs/ReportUtils'; import shouldRenderTransferOwnerButton from '@libs/shouldRenderTransferOwnerButton'; import {isSubscriptionTypeOfInvoicing, shouldCalculateBillNewDot as shouldCalculateBillNewDotFn} from '@libs/SubscriptionUtils'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import type {AvatarSource} from '@libs/UserAvatarUtils'; import {setNameValuePair} from '@userActions/User'; import CONST from '@src/CONST'; @@ -733,7 +734,16 @@ function WorkspacesListPage() { {shouldUseNarrowLayout && {headerButton}} {shouldShowLoadingIndicator ? ( - + ) : ( ; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'NetSuiteImportAddCustomListPage', + isDraftValuesLoading: isLoadingOnyxValue(draftValuesMetadata), + }; + return ; } return ( diff --git a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/NetSuiteImportAddCustomSegmentPage.tsx b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/NetSuiteImportAddCustomSegmentPage.tsx index e27410b36e69..db463f2d920c 100644 --- a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/NetSuiteImportAddCustomSegmentPage.tsx +++ b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/NetSuiteImportAddCustomSegmentPage.tsx @@ -1,6 +1,7 @@ import React from 'react'; import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import useOnyx from '@hooks/useOnyx'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import withPolicyConnections from '@pages/workspace/withPolicyConnections'; import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -12,7 +13,11 @@ function NetSuiteImportAddCustomSegmentPage({policy}: WithPolicyConnectionsProps const isLoading = isLoadingOnyxValue(draftValuesMetadata); if (isLoading) { - return ; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'NetSuiteImportAddCustomSegmentPage', + isDraftValuesLoading: isLoadingOnyxValue(draftValuesMetadata), + }; + return ; } return ( diff --git a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomListStep.tsx b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomListStep.tsx index 4e9070f53449..bb1b40446fee 100644 --- a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomListStep.tsx +++ b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomListStep.tsx @@ -8,6 +8,7 @@ import useBottomSafeSafeAreaPaddingStyle from '@hooks/useBottomSafeSafeAreaPaddi import useLocalize from '@hooks/useLocalize'; import useNetwork from '@hooks/useNetwork'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import type {CustomFieldSubPageWithPolicy} from '@pages/workspace/accounting/netsuite/types'; import type {TranslationPaths} from '@src/languages/types'; import INPUT_IDS from '@src/types/form/NetSuiteCustomFieldForm'; @@ -22,7 +23,11 @@ function ConfirmCustomListStep({onMove, netSuiteCustomFieldFormValues: values, o const fieldNames = [INPUT_IDS.LIST_NAME, INPUT_IDS.TRANSACTION_FIELD_ID, INPUT_IDS.MAPPING]; if (!values.mapping) { - return ; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'ConfirmCustomListStep', + isMappingMissing: !values.mapping, + }; + return ; } return ( diff --git a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomSegmentList.tsx b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomSegmentList.tsx index d2b010499cf4..ffe1f9c52b8a 100644 --- a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomSegmentList.tsx +++ b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomSegmentList.tsx @@ -8,6 +8,7 @@ import useBottomSafeSafeAreaPaddingStyle from '@hooks/useBottomSafeSafeAreaPaddi import useLocalize from '@hooks/useLocalize'; import useNetwork from '@hooks/useNetwork'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import type {CustomFieldSubStepWithPolicy} from '@pages/workspace/accounting/netsuite/types'; import CONST from '@src/CONST'; import type {TranslationPaths} from '@src/languages/types'; @@ -23,7 +24,11 @@ function ConfirmCustomSegmentStep({onMove, customSegmentType, netSuiteCustomFiel const bottomSafeAreaPaddingStyle = useBottomSafeSafeAreaPaddingStyle({addBottomSafeAreaPadding: true}); if (!values.mapping) { - return ; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'ConfirmCustomSegmentStep', + isMappingMissing: !values.mapping, + }; + return ; } return ( diff --git a/src/pages/workspace/companyCards/BankConnection/index.native.tsx b/src/pages/workspace/companyCards/BankConnection/index.native.tsx index 440d39ab62f9..192eb79cec76 100644 --- a/src/pages/workspace/companyCards/BankConnection/index.native.tsx +++ b/src/pages/workspace/companyCards/BankConnection/index.native.tsx @@ -19,6 +19,7 @@ import {setAssignCardStepAndData} from '@libs/actions/CompanyCards'; import {checkIfNewFeedConnected, getBankName, getCompanyCardFeed, isSelectedFeedExpired} from '@libs/CardUtils'; import getUAForWebView from '@libs/getUAForWebView'; import Navigation from '@libs/Navigation/Navigation'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import type {PlatformStackRouteProp} from '@navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import WorkspaceCompanyCardsErrorConfirmation from '@pages/workspace/companyCards/WorkspaceCompanyCardsErrorConfirmation'; @@ -71,7 +72,15 @@ function BankConnection({policyID: policyIDFromProps, feed, route}: BankConnecti const isNewFeedHasError = !!(newFeed && cardFeeds?.[newFeed]?.errors); const {isBlockedToAddNewFeeds, isAllFeedsResultLoading} = useIsBlockedToAddFeed(policyID); - const renderLoading = () => ; + const renderLoading = () => ( + + ); useEffect(() => { if (!policyID || !isBlockedToAddNewFeeds || feed) { diff --git a/src/pages/workspace/companyCards/WorkspaceCompanyCardStatementCloseDatePage.tsx b/src/pages/workspace/companyCards/WorkspaceCompanyCardStatementCloseDatePage.tsx index cb3f879813ff..1f2b82456a83 100644 --- a/src/pages/workspace/companyCards/WorkspaceCompanyCardStatementCloseDatePage.tsx +++ b/src/pages/workspace/companyCards/WorkspaceCompanyCardStatementCloseDatePage.tsx @@ -9,6 +9,7 @@ import {getCompanyCardFeed, getCompanyFeeds, getDomainOrWorkspaceAccountID, getS import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -73,7 +74,12 @@ function WorkspaceCompanyCardStatementCloseDatePage({ }, [feed, domainOrWorkspaceAccountID]); if (isLoadingOnyxValue(cardFeedsResult) || isLoadingOnyxValue(lastSelectedFeedResult)) { - return ; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'WorkspaceCompanyCardStatementCloseDatePage', + isCardFeedsLoading: isLoadingOnyxValue(cardFeedsResult), + isLastSelectedFeedLoading: isLoadingOnyxValue(lastSelectedFeedResult), + }; + return ; } return ( diff --git a/src/pages/workspace/companyCards/WorkspaceCompanyCardsSettingsFeedNamePage.tsx b/src/pages/workspace/companyCards/WorkspaceCompanyCardsSettingsFeedNamePage.tsx index 9dd250d056ac..1ce1d571711c 100644 --- a/src/pages/workspace/companyCards/WorkspaceCompanyCardsSettingsFeedNamePage.tsx +++ b/src/pages/workspace/companyCards/WorkspaceCompanyCardsSettingsFeedNamePage.tsx @@ -18,6 +18,7 @@ import {getCompanyCardFeed, getCompanyFeeds, getCustomOrFormattedFeedName, getDo import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import {isRequiredFulfilled} from '@libs/ValidationUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import {setWorkspaceCompanyCardFeedName} from '@userActions/CompanyCards'; @@ -73,7 +74,12 @@ function WorkspaceCompanyCardsSettingsFeedNamePage({ }; if (isLoadingOnyxValue(cardFeedsResult) || isLoadingOnyxValue(lastSelectedFeedResult)) { - return ; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'WorkspaceCompanyCardsSettingsFeedNamePage', + isCardFeedsLoading: isLoadingOnyxValue(cardFeedsResult), + isLastSelectedFeedLoading: isLoadingOnyxValue(lastSelectedFeedResult), + }; + return ; } return ( diff --git a/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx b/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx index f416414b6676..c80795a22ca4 100644 --- a/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx +++ b/src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx @@ -12,6 +12,7 @@ import useOnyx from '@hooks/useOnyx'; import useThemeStyles from '@hooks/useThemeStyles'; import useWorkspaceAccountID from '@hooks/useWorkspaceAccountID'; import {navigateToConciergeChat} from '@libs/actions/Report'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import Navigation from '@navigation/Navigation'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import BankConnection from '@pages/workspace/companyCards/BankConnection'; @@ -74,7 +75,13 @@ function AddNewCardPage({policy}: WithPolicyAndFullscreenLoadingProps) { }, [policyID]); if (isAddCardFeedLoading || isAllFeedsResultLoading || isBlockedToAddNewFeeds) { - return ; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'AddNewCardPage', + isAddCardFeedLoading, + isAllFeedsResultLoading, + isBlockedToAddNewFeeds, + }; + return ; } if (isActingAsDelegate) { diff --git a/src/pages/workspace/companyCards/addNew/DirectStatementCloseDatePage.tsx b/src/pages/workspace/companyCards/addNew/DirectStatementCloseDatePage.tsx index 6f33c2a1bbaa..f53dfa794473 100644 --- a/src/pages/workspace/companyCards/addNew/DirectStatementCloseDatePage.tsx +++ b/src/pages/workspace/companyCards/addNew/DirectStatementCloseDatePage.tsx @@ -7,6 +7,7 @@ import useWorkspaceAccountID from '@hooks/useWorkspaceAccountID'; import {clearErrorField, setFeedStatementPeriodEndDay} from '@libs/actions/CompanyCards'; import {getCompanyCardFeed, getCompanyFeeds, getDomainOrWorkspaceAccountID, getSelectedFeed} from '@libs/CardUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import WorkspaceCompanyCardStatementCloseDateSelectionList from '@pages/workspace/companyCards/WorkspaceCompanyCardStatementCloseDateSelectionList'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; @@ -70,7 +71,12 @@ function DirectStatementCloseDateStep({policyID}: DirectStatementCloseDateStepPr }, [feed, domainOrWorkspaceAccountID]); if (isLoadingOnyxValue(cardFeedsResult) || isLoadingOnyxValue(lastSelectedFeedResult)) { - return ; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'DirectStatementCloseDatePage', + isCardFeedsLoading: isLoadingOnyxValue(cardFeedsResult), + isLastSelectedFeedLoading: isLoadingOnyxValue(lastSelectedFeedResult), + }; + return ; } return ( diff --git a/src/pages/workspace/downgrade/PayAndDowngradePage.tsx b/src/pages/workspace/downgrade/PayAndDowngradePage.tsx index 253f9e31fb11..b82477c15409 100644 --- a/src/pages/workspace/downgrade/PayAndDowngradePage.tsx +++ b/src/pages/workspace/downgrade/PayAndDowngradePage.tsx @@ -16,6 +16,7 @@ import useOnyx from '@hooks/useOnyx'; import usePrevious from '@hooks/usePrevious'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import {clearBillingReceiptDetailsErrors, payAndDowngrade} from '@src/libs/actions/Policy/Policy'; import ONYXKEYS from '@src/ONYXKEYS'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; @@ -70,7 +71,11 @@ function PayAndDowngradePage() { }, []); if (isLoadingOnyxValue(metadata)) { - return ; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'PayAndDowngradePage', + isBillingDetailsLoading: isLoadingOnyxValue(metadata), + }; + return ; } return ( diff --git a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPage.tsx b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPage.tsx index ece7d62148ff..b463b7797c9c 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPage.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPage.tsx @@ -7,6 +7,7 @@ import {updateSelectedExpensifyCardFeed} from '@libs/actions/Card'; import {filterInactiveCards, getCardSettings} from '@libs/CardUtils'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {WorkspaceSplitNavigatorParamList} from '@libs/Navigation/types'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import {openPolicyExpensifyCardsPage} from '@userActions/Policy/Policy'; import CONST from '@src/CONST'; @@ -41,7 +42,18 @@ function WorkspaceExpensifyCardPage({route}: WorkspaceExpensifyCardPageProps) { const renderContent = () => { if (isLoading) { - return ; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'WorkspaceExpensifyCardPage', + isOffline, + isCardSettingsLoading: !cardSettings || !!settings?.isLoading, + hasOnceLoaded: !!cardSettings?.hasOnceLoaded, + }; + return ( + + ); } if (paymentBankAccountID) { return ( diff --git a/src/pages/workspace/members/WorkspaceOwnerChangeWrapperPage.tsx b/src/pages/workspace/members/WorkspaceOwnerChangeWrapperPage.tsx index 6e32aed89608..ce16945c3229 100644 --- a/src/pages/workspace/members/WorkspaceOwnerChangeWrapperPage.tsx +++ b/src/pages/workspace/members/WorkspaceOwnerChangeWrapperPage.tsx @@ -9,6 +9,7 @@ import useOnyx from '@hooks/useOnyx'; import useThemeStyles from '@hooks/useThemeStyles'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import shouldShowChangeWorkspaceOwnerPage from '@libs/shouldShowChangeWorkspaceOwnerPage'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; import CardAuthenticationModal from '@pages/settings/Subscription/CardAuthenticationModal'; @@ -74,6 +75,12 @@ function WorkspaceOwnerChangeWrapperPage({route, policy, isLoadingPolicy}: Works const isLoading = isLoadingPolicy || !!policy?.isLoading; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'WorkspaceOwnerChangeWrapperPage', + isLoadingPolicy: !!isLoadingPolicy, + isPolicyLoading: !!policy?.isLoading, + }; + return ( - {isLoading && } + {isLoading && } {shouldShowPaymentCardForm && } {!isLoading && !shouldShowPaymentCardForm && ( ) : ( ; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'WorkspaceTimeTrackingDefaultRatePage', + isPolicyMissing: !policy, + isPolicyLoading: isLoadingOnyxValue(policyFetchStatus), + }; + return ; } return ( diff --git a/src/pages/workspace/withPolicyAndFullscreenLoading.tsx b/src/pages/workspace/withPolicyAndFullscreenLoading.tsx index 7400f6d27b8a..8c5d7a7aed06 100644 --- a/src/pages/workspace/withPolicyAndFullscreenLoading.tsx +++ b/src/pages/workspace/withPolicyAndFullscreenLoading.tsx @@ -4,6 +4,7 @@ import React from 'react'; import type {OnyxEntry} from 'react-native-onyx'; import FullscreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import useOnyx from '@hooks/useOnyx'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import ONYXKEYS from '@src/ONYXKEYS'; import type {PersonalDetailsList} from '@src/types/onyx'; import type {WithPolicyOnyxProps, WithPolicyProps} from './withPolicy'; @@ -36,7 +37,14 @@ export default function withPolicyAndFullscreenLoading; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'withPolicyAndFullscreenLoading', + isLoadingPolicy: !!isLoadingPolicy, + isLoadingReportData: !!isLoadingReportData, + isPolicyEmpty: isEmpty(policy), + isPolicyDraftEmpty: isEmpty(policyDraft), + }; + return ; } return ( diff --git a/src/pages/workspace/withPolicyConnections.tsx b/src/pages/workspace/withPolicyConnections.tsx index 88ee48ad5c36..8538f5c6f504 100644 --- a/src/pages/workspace/withPolicyConnections.tsx +++ b/src/pages/workspace/withPolicyConnections.tsx @@ -5,6 +5,7 @@ import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import useNetwork from '@hooks/useNetwork'; import useOnyx from '@hooks/useOnyx'; import {openPolicyAccountingPage} from '@libs/actions/PolicyConnections'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import ONYXKEYS from '@src/ONYXKEYS'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; import isLoadingOnyxValue from '@src/types/utils/isLoadingOnyxValue'; @@ -43,7 +44,12 @@ function withPolicyConnections(Wrappe }, [props.policy?.id, isConnectionDataFetchNeeded]); if ((isFetchingData || isOnyxDataLoading) && shouldBlockView) { - return ; + const reasonAttributes: SkeletonSpanReasonAttributes = { + context: 'withPolicyConnections', + isFetchingData, + isOnyxDataLoading, + }; + return ; } return ( diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx index 6eabda6cf034..2029cbdec316 100644 --- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx +++ b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx @@ -14,6 +14,7 @@ import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {WorkspaceSplitNavigatorParamList} from '@libs/Navigation/types'; import {goBackFromInvalidPolicy, isPendingDeletePolicy, isPolicyAdmin} from '@libs/PolicyUtils'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import withPolicyAndFullscreenLoading from '@pages/workspace/withPolicyAndFullscreenLoading'; import type {WithPolicyAndFullscreenLoadingProps} from '@pages/workspace/withPolicyAndFullscreenLoading'; @@ -94,7 +95,16 @@ function WorkspaceWorkflowsApprovalsCreatePage({policy, isLoadingReportData = tr /> )} - {!approvalWorkflow && } + {!approvalWorkflow && ( + + )} diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx index 78a0c2a4cce1..8ec73e59f384 100644 --- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx +++ b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx @@ -17,6 +17,7 @@ import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {WorkspaceSplitNavigatorParamList} from '@libs/Navigation/types'; import {goBackFromInvalidPolicy, isPendingDeletePolicy, isPolicyAdmin} from '@libs/PolicyUtils'; +import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import {convertPolicyEmployeesToApprovalWorkflows, mergeWorkflowMembersWithAvailableMembers} from '@libs/WorkflowUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import withPolicyAndFullscreenLoading from '@pages/workspace/withPolicyAndFullscreenLoading'; @@ -182,7 +183,16 @@ function WorkspaceWorkflowsApprovalsEditPage({policy, isLoadingReportData = true /> )} - {!initialApprovalWorkflow && } + {!initialApprovalWorkflow && ( + + )} From 9fd97ad032110b4ab0bbf3d453a2ee5466443771 Mon Sep 17 00:00:00 2001 From: Hubert Sosinski Date: Tue, 10 Mar 2026 13:03:36 +0100 Subject: [PATCH 2/3] Fix TS2367: use isLoadingReportData directly in reasonAttributes --- src/pages/workspace/AccessOrNotFoundWrapper.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/workspace/AccessOrNotFoundWrapper.tsx b/src/pages/workspace/AccessOrNotFoundWrapper.tsx index 5f2bb589b68a..2a38f0a58292 100644 --- a/src/pages/workspace/AccessOrNotFoundWrapper.tsx +++ b/src/pages/workspace/AccessOrNotFoundWrapper.tsx @@ -208,7 +208,7 @@ function AccessOrNotFoundWrapper({ if (shouldShowFullScreenLoadingIndicator) { const reasonAttributes: SkeletonSpanReasonAttributes = { context: 'AccessOrNotFoundWrapper', - isLoadingReportData: isLoadingReportData !== false, + isLoadingReportData, isPolicyEmpty: !Object.entries(policy ?? {}).length || !policy?.id, }; return ; From 2d265542faf461bfe5b8e2130de63f048508f735 Mon Sep 17 00:00:00 2001 From: bartlomiej obudzinski Date: Fri, 13 Mar 2026 11:26:21 +0100 Subject: [PATCH 3/3] Refactor FullScreenLoadingIndicator reason attributes to remove deprecated properties across multiple workspace pages. --- src/pages/workspace/WorkspaceJoinUserPage.tsx | 8 +------- .../workspace/WorkspaceOverviewPlanTypePage.tsx | 10 +--------- src/pages/workspace/WorkspacePageWithSections.tsx | 1 - src/pages/workspace/WorkspacesListPage.tsx | 1 - .../NetSuiteImportAddCustomListPage.tsx | 7 +------ .../NetSuiteImportAddCustomSegmentPage.tsx | 7 +------ .../subPages/ConfirmCustomListStep.tsx | 7 +------ .../subPages/ConfirmCustomSegmentList.tsx | 7 +------ .../workspace/downgrade/PayAndDowngradePage.tsx | 7 +------ .../expensifyCard/WorkspaceExpensifyCardPage.tsx | 1 - .../receiptPartners/WorkspaceReceiptPartnersPage.tsx | 8 +------- .../workspace/withPolicyAndFullscreenLoading.tsx | 2 -- .../WorkspaceWorkflowsApprovalsCreatePage.tsx | 12 +----------- .../WorkspaceWorkflowsApprovalsEditPage.tsx | 12 +----------- 14 files changed, 10 insertions(+), 80 deletions(-) diff --git a/src/pages/workspace/WorkspaceJoinUserPage.tsx b/src/pages/workspace/WorkspaceJoinUserPage.tsx index b7008fc5031d..5487ed019c07 100644 --- a/src/pages/workspace/WorkspaceJoinUserPage.tsx +++ b/src/pages/workspace/WorkspaceJoinUserPage.tsx @@ -7,7 +7,6 @@ import {inviteMemberToWorkspace} from '@libs/actions/Policy/Member'; import navigateAfterJoinRequest from '@libs/navigateAfterJoinRequest'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import {isPendingDeletePolicy} from '@libs/PolicyUtils'; -import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import Navigation from '@navigation/Navigation'; import type {AuthScreensParamList} from '@navigation/types'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -59,12 +58,7 @@ function WorkspaceJoinUserPage({route}: WorkspaceJoinUserPageProps) { ); diff --git a/src/pages/workspace/WorkspaceOverviewPlanTypePage.tsx b/src/pages/workspace/WorkspaceOverviewPlanTypePage.tsx index 9a9e07ff3d41..4fef9a6419de 100644 --- a/src/pages/workspace/WorkspaceOverviewPlanTypePage.tsx +++ b/src/pages/workspace/WorkspaceOverviewPlanTypePage.tsx @@ -18,7 +18,6 @@ import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import OpenWorkspacePlanPage from '@libs/actions/Policy/Plan'; import {isSubscriptionTypeOfInvoicing} from '@libs/SubscriptionUtils'; -import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import Navigation from '@navigation/Navigation'; import CardSectionUtils from '@pages/settings/Subscription/CardSection/utils'; import type {PersonalPolicyTypeExcludedProps} from '@pages/settings/Subscription/SubscriptionPlan/SubscriptionPlanCard'; @@ -114,14 +113,7 @@ function WorkspaceOverviewPlanTypePage({policy}: WithPolicyProps) { {policy?.isLoading ? ( - + ) : ( <> diff --git a/src/pages/workspace/WorkspacePageWithSections.tsx b/src/pages/workspace/WorkspacePageWithSections.tsx index ff06c2fa4e05..a848612a8e1e 100644 --- a/src/pages/workspace/WorkspacePageWithSections.tsx +++ b/src/pages/workspace/WorkspacePageWithSections.tsx @@ -237,7 +237,6 @@ function WorkspacePageWithSections({ context: 'WorkspacePageWithSections', isLoading, isFirstRender: firstRender.current, - isOffline, } satisfies SkeletonSpanReasonAttributes } /> diff --git a/src/pages/workspace/WorkspacesListPage.tsx b/src/pages/workspace/WorkspacesListPage.tsx index a330ca9fb6ba..7fa8247bef71 100755 --- a/src/pages/workspace/WorkspacesListPage.tsx +++ b/src/pages/workspace/WorkspacesListPage.tsx @@ -739,7 +739,6 @@ function WorkspacesListPage() { reasonAttributes={ { context: 'WorkspacesListPage', - isLoadingApp: !!isLoadingApp, isOffline, } satisfies SkeletonSpanReasonAttributes } diff --git a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/NetSuiteImportAddCustomListPage.tsx b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/NetSuiteImportAddCustomListPage.tsx index 33d0c62449b0..4fbe326e54f3 100644 --- a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/NetSuiteImportAddCustomListPage.tsx +++ b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/NetSuiteImportAddCustomListPage.tsx @@ -1,7 +1,6 @@ import React from 'react'; import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import useOnyx from '@hooks/useOnyx'; -import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import withPolicyConnections from '@pages/workspace/withPolicyConnections'; import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -13,11 +12,7 @@ function NetSuiteImportAddCustomListPage({policy, route}: WithPolicyConnectionsP const isLoading = isLoadingOnyxValue(draftValuesMetadata); if (isLoading) { - const reasonAttributes: SkeletonSpanReasonAttributes = { - context: 'NetSuiteImportAddCustomListPage', - isDraftValuesLoading: isLoadingOnyxValue(draftValuesMetadata), - }; - return ; + return ; } return ( diff --git a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/NetSuiteImportAddCustomSegmentPage.tsx b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/NetSuiteImportAddCustomSegmentPage.tsx index db463f2d920c..317bee214b92 100644 --- a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/NetSuiteImportAddCustomSegmentPage.tsx +++ b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/NetSuiteImportAddCustomSegmentPage.tsx @@ -1,7 +1,6 @@ import React from 'react'; import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import useOnyx from '@hooks/useOnyx'; -import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import withPolicyConnections from '@pages/workspace/withPolicyConnections'; import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -13,11 +12,7 @@ function NetSuiteImportAddCustomSegmentPage({policy}: WithPolicyConnectionsProps const isLoading = isLoadingOnyxValue(draftValuesMetadata); if (isLoading) { - const reasonAttributes: SkeletonSpanReasonAttributes = { - context: 'NetSuiteImportAddCustomSegmentPage', - isDraftValuesLoading: isLoadingOnyxValue(draftValuesMetadata), - }; - return ; + return ; } return ( diff --git a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomListStep.tsx b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomListStep.tsx index bb1b40446fee..fad014d896e4 100644 --- a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomListStep.tsx +++ b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomListStep.tsx @@ -8,7 +8,6 @@ import useBottomSafeSafeAreaPaddingStyle from '@hooks/useBottomSafeSafeAreaPaddi import useLocalize from '@hooks/useLocalize'; import useNetwork from '@hooks/useNetwork'; import useThemeStyles from '@hooks/useThemeStyles'; -import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import type {CustomFieldSubPageWithPolicy} from '@pages/workspace/accounting/netsuite/types'; import type {TranslationPaths} from '@src/languages/types'; import INPUT_IDS from '@src/types/form/NetSuiteCustomFieldForm'; @@ -23,11 +22,7 @@ function ConfirmCustomListStep({onMove, netSuiteCustomFieldFormValues: values, o const fieldNames = [INPUT_IDS.LIST_NAME, INPUT_IDS.TRANSACTION_FIELD_ID, INPUT_IDS.MAPPING]; if (!values.mapping) { - const reasonAttributes: SkeletonSpanReasonAttributes = { - context: 'ConfirmCustomListStep', - isMappingMissing: !values.mapping, - }; - return ; + return ; } return ( diff --git a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomSegmentList.tsx b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomSegmentList.tsx index ffe1f9c52b8a..224625fb931f 100644 --- a/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomSegmentList.tsx +++ b/src/pages/workspace/accounting/netsuite/import/NetSuiteImportCustomFieldNew/subPages/ConfirmCustomSegmentList.tsx @@ -8,7 +8,6 @@ import useBottomSafeSafeAreaPaddingStyle from '@hooks/useBottomSafeSafeAreaPaddi import useLocalize from '@hooks/useLocalize'; import useNetwork from '@hooks/useNetwork'; import useThemeStyles from '@hooks/useThemeStyles'; -import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import type {CustomFieldSubStepWithPolicy} from '@pages/workspace/accounting/netsuite/types'; import CONST from '@src/CONST'; import type {TranslationPaths} from '@src/languages/types'; @@ -24,11 +23,7 @@ function ConfirmCustomSegmentStep({onMove, customSegmentType, netSuiteCustomFiel const bottomSafeAreaPaddingStyle = useBottomSafeSafeAreaPaddingStyle({addBottomSafeAreaPadding: true}); if (!values.mapping) { - const reasonAttributes: SkeletonSpanReasonAttributes = { - context: 'ConfirmCustomSegmentStep', - isMappingMissing: !values.mapping, - }; - return ; + return ; } return ( diff --git a/src/pages/workspace/downgrade/PayAndDowngradePage.tsx b/src/pages/workspace/downgrade/PayAndDowngradePage.tsx index b82477c15409..8e15b0fa7781 100644 --- a/src/pages/workspace/downgrade/PayAndDowngradePage.tsx +++ b/src/pages/workspace/downgrade/PayAndDowngradePage.tsx @@ -16,7 +16,6 @@ import useOnyx from '@hooks/useOnyx'; import usePrevious from '@hooks/usePrevious'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; -import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import {clearBillingReceiptDetailsErrors, payAndDowngrade} from '@src/libs/actions/Policy/Policy'; import ONYXKEYS from '@src/ONYXKEYS'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; @@ -71,11 +70,7 @@ function PayAndDowngradePage() { }, []); if (isLoadingOnyxValue(metadata)) { - const reasonAttributes: SkeletonSpanReasonAttributes = { - context: 'PayAndDowngradePage', - isBillingDetailsLoading: isLoadingOnyxValue(metadata), - }; - return ; + return ; } return ( diff --git a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPage.tsx b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPage.tsx index b463b7797c9c..c17a94f264c8 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPage.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPage.tsx @@ -45,7 +45,6 @@ function WorkspaceExpensifyCardPage({route}: WorkspaceExpensifyCardPageProps) { const reasonAttributes: SkeletonSpanReasonAttributes = { context: 'WorkspaceExpensifyCardPage', isOffline, - isCardSettingsLoading: !cardSettings || !!settings?.isLoading, hasOnceLoaded: !!cardSettings?.hasOnceLoaded, }; return ( diff --git a/src/pages/workspace/receiptPartners/WorkspaceReceiptPartnersPage.tsx b/src/pages/workspace/receiptPartners/WorkspaceReceiptPartnersPage.tsx index ebb2ead29917..0e60abaaafeb 100644 --- a/src/pages/workspace/receiptPartners/WorkspaceReceiptPartnersPage.tsx +++ b/src/pages/workspace/receiptPartners/WorkspaceReceiptPartnersPage.tsx @@ -21,7 +21,6 @@ import usePolicy from '@hooks/usePolicy'; import usePrevious from '@hooks/usePrevious'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; -import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import Navigation from '@navigation/Navigation'; import type {PlatformStackScreenProps} from '@navigation/PlatformStackNavigation/types'; import type {WorkspaceSplitNavigatorParamList} from '@navigation/types'; @@ -260,12 +259,7 @@ function WorkspaceReceiptPartnersPage({route}: WorkspaceReceiptPartnersPageProps ) : ( ; } diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx index 2029cbdec316..e28c5325d259 100644 --- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx +++ b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx @@ -14,7 +14,6 @@ import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {WorkspaceSplitNavigatorParamList} from '@libs/Navigation/types'; import {goBackFromInvalidPolicy, isPendingDeletePolicy, isPolicyAdmin} from '@libs/PolicyUtils'; -import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import withPolicyAndFullscreenLoading from '@pages/workspace/withPolicyAndFullscreenLoading'; import type {WithPolicyAndFullscreenLoadingProps} from '@pages/workspace/withPolicyAndFullscreenLoading'; @@ -95,16 +94,7 @@ function WorkspaceWorkflowsApprovalsCreatePage({policy, isLoadingReportData = tr /> )} - {!approvalWorkflow && ( - - )} + {!approvalWorkflow && } diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx index ca7704c35c63..22800a9fda2d 100644 --- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx +++ b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx @@ -17,7 +17,6 @@ import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {WorkspaceSplitNavigatorParamList} from '@libs/Navigation/types'; import {goBackFromInvalidPolicy, isPendingDeletePolicy, isPolicyAdmin} from '@libs/PolicyUtils'; -import type {SkeletonSpanReasonAttributes} from '@libs/telemetry/useSkeletonSpan'; import {convertPolicyEmployeesToApprovalWorkflows, mergeWorkflowMembersWithAvailableMembers} from '@libs/WorkflowUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import withPolicyAndFullscreenLoading from '@pages/workspace/withPolicyAndFullscreenLoading'; @@ -186,16 +185,7 @@ function WorkspaceWorkflowsApprovalsEditPage({policy, isLoadingReportData = true /> )} - {!initialApprovalWorkflow && ( - - )} + {!initialApprovalWorkflow && }