1- import { getCombinedCardFeedsFromAllFeeds } from '@libs/CardFeedUtils' ;
1+ import { getCombinedCardFeedsFromAllFeeds , getWorkspaceCardFeedsStatus } from '@libs/CardFeedUtils' ;
22import { filterInactiveCards , getCompanyCardFeedWithDomainID , isCardConnectionBroken } from '@libs/CardUtils' ;
33import createOnyxDerivedValueConfig from '@userActions/OnyxDerived/createOnyxDerivedValueConfig' ;
44import CONST from '@src/CONST' ;
@@ -13,13 +13,17 @@ const DEFAULT_CARD_FEED_ERROR_STATE: CardFeedErrorState = {
1313 shouldShowRBR : false ,
1414 hasFailedCardAssignments : false ,
1515 hasFeedErrors : false ,
16+ hasWorkspaceErrors : false ,
1617 isFeedConnectionBroken : false ,
1718} ;
1819
1920function getShouldShowRBR ( state : Partial < CardFeedErrorState > ) : boolean {
2021 if ( state . hasFeedErrors ) {
2122 return true ;
2223 }
24+ if ( state . hasWorkspaceErrors ) {
25+ return true ;
26+ }
2327 if ( state . hasFailedCardAssignments ) {
2428 return true ;
2529 }
@@ -32,6 +36,8 @@ export default createOnyxDerivedValueConfig({
3236 dependencies : [ ONYXKEYS . CARD_LIST , ONYXKEYS . COLLECTION . WORKSPACE_CARDS_LIST , ONYXKEYS . COLLECTION . FAILED_COMPANY_CARDS_ASSIGNMENTS , ONYXKEYS . COLLECTION . SHARED_NVP_PRIVATE_DOMAIN_MEMBER ] ,
3337 compute : ( [ globalCardList , allWorkspaceCards , failedCompanyCardAssignmentsPerFeed , cardFeeds ] ) => {
3438 const combinedCompanyCardFeeds = getCombinedCardFeedsFromAllFeeds ( cardFeeds ) ;
39+ const workspaceCardFeedsStatus = getWorkspaceCardFeedsStatus ( cardFeeds ) ;
40+
3541 const cardFeedErrors : CardFeedErrorsObject = { } ;
3642 const shouldShowRbrForWorkspaceAccountID : Record < number , boolean > = { } ;
3743 const shouldShowRbrForFeedNameWithDomainID : Record < string , boolean > = { } ;
@@ -62,6 +68,9 @@ export default createOnyxDerivedValueConfig({
6268 } as Errors ;
6369 const hasFeedErrors = feedNameWithDomainID ? ! isEmptyObject ( feedErrors ) : false ;
6470
71+ const workspaceErrors = workspaceCardFeedsStatus ?. [ workspaceAccountID ] ?. errors ;
72+ const hasWorkspaceErrors = ! ! workspaceErrors ;
73+
6574 const hasFailedCardAssignments = ! isEmptyObject (
6675 failedCompanyCardAssignmentsPerFeed ?. [ `${ ONYXKEYS . COLLECTION . FAILED_COMPANY_CARDS_ASSIGNMENTS } ${ workspaceAccountID } _${ feedNameWithDomainID } ` ] ,
6776 ) ;
@@ -86,6 +95,7 @@ export default createOnyxDerivedValueConfig({
8695 const newFeedState : Omit < CardFeedErrorState , 'shouldShowRBR' > = {
8796 isFeedConnectionBroken : isFeedConnectionBroken || previousFeedErrors . isFeedConnectionBroken ,
8897 hasFeedErrors : hasFeedErrors || previousFeedErrors . hasFeedErrors ,
98+ hasWorkspaceErrors : hasWorkspaceErrors || previousFeedErrors . hasWorkspaceErrors ,
8999 hasFailedCardAssignments : hasFailedCardAssignments || previousFeedErrors . hasFailedCardAssignments ,
90100 } ;
91101
@@ -96,6 +106,7 @@ export default createOnyxDerivedValueConfig({
96106 shouldShowRBR,
97107 cardErrors,
98108 feedErrors,
109+ workspaceErrors,
99110 } ;
100111
101112 // Track cards with broken feed connection
@@ -108,10 +119,12 @@ export default createOnyxDerivedValueConfig({
108119
109120 allFeedsState . isFeedConnectionBroken ||= newFeedState . isFeedConnectionBroken ;
110121 allFeedsState . hasFeedErrors ||= newFeedState . hasFeedErrors ;
122+ allFeedsState . hasWorkspaceErrors ||= newFeedState . hasWorkspaceErrors ;
111123 allFeedsState . hasFailedCardAssignments ||= newFeedState . hasFailedCardAssignments ;
112124
113125 cardTypeState . isFeedConnectionBroken ||= newFeedState . isFeedConnectionBroken ;
114126 cardTypeState . hasFeedErrors ||= newFeedState . hasFeedErrors ;
127+ cardTypeState . hasWorkspaceErrors ||= newFeedState . hasWorkspaceErrors ;
115128 cardTypeState . hasFailedCardAssignments ||= newFeedState . hasFailedCardAssignments ;
116129
117130 shouldShowRbrForWorkspaceAccountID [ workspaceAccountID ] ||= shouldShowRBR ;
0 commit comments