From 38be94bf7a5b76afafad518243444aca60a89b3c Mon Sep 17 00:00:00 2001 From: emkhalid Date: Sun, 5 Jul 2026 05:19:15 +0430 Subject: [PATCH 1/5] Fix Track onboarding admin room visibility --- src/hooks/useAutoCreateTrackWorkspace.ts | 1 + src/libs/ReportUtils.ts | 4 ++ src/libs/SidebarUtils.ts | 7 +++ src/libs/actions/Policy/Policy.ts | 4 +- src/types/onyx/Report.ts | 3 ++ tests/unit/ReportUtilsTest.ts | 58 +++++++++++++++++++++++ tests/unit/SidebarUtilsTest.ts | 60 +++++++++++++++++++++++- 7 files changed, 135 insertions(+), 2 deletions(-) diff --git a/src/hooks/useAutoCreateTrackWorkspace.ts b/src/hooks/useAutoCreateTrackWorkspace.ts index 4af67c97476d..70cbe3db6428 100644 --- a/src/hooks/useAutoCreateTrackWorkspace.ts +++ b/src/hooks/useAutoCreateTrackWorkspace.ts @@ -95,6 +95,7 @@ function useAutoCreateTrackWorkspace() { isSelfTourViewed, hasActiveAdminPolicies, personalTrackGoal: onboardingPurposeSelected === CONST.ONBOARDING_CHOICES.TRACK_PERSONAL && !!personalTrackGoal ? personalTrackGoal : undefined, + shouldShowTrackAdminRoomInLHN: onboardingPurposeSelected === CONST.ONBOARDING_CHOICES.TRACK_WORKSPACE, }) : {adminsChatReportID: onboardingAdminsChatReportID, policyID: onboardingPolicyID}; diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 2c440fcec374..087d62008d6a 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -626,6 +626,7 @@ type OptimisticChatReport = Pick< | 'iouReportID' | 'isOwnPolicyExpenseChat' | 'isPinned' + | 'isTrackOnboardingAdminRoom' | 'lastActorAccountID' | 'lastMessageHtml' | 'lastMessageText' @@ -8630,6 +8631,7 @@ function buildOptimisticWorkspaceChats( currentUserAccountID: number | undefined, currentUserEmail: string | undefined, expenseReportId?: string, + shouldShowTrackAdminRoomInLHN = false, ): OptimisticWorkspaceChats { const pendingChatMembers = getPendingChatMembers(currentUserAccountID ? [currentUserAccountID] : [], [], CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD); const adminsChatData = { @@ -8643,6 +8645,7 @@ function buildOptimisticWorkspaceChats( isPinned: shouldPinAdminRoomByDefault(), currentUserAccountID, }), + ...(shouldShowTrackAdminRoomInLHN && {isTrackOnboardingAdminRoom: true}), }; const adminsChatReportID = adminsChatData.reportID; const adminsCreatedAction = buildOptimisticCreatedReportAction({emailCreatingAction: CONST.POLICY.OWNER_EMAIL_FAKE}); @@ -9700,6 +9703,7 @@ function reasonForReportToBeInOptionList({ !isConciergeChatReport(report, conciergeReportID) && !isSystemChatReport && !isSelfDMWithVisiblePreference && + !(report.isTrackOnboardingAdminRoom && isAdminRoom(report) && !isReportArchived) && canHideReport ) { return null; diff --git a/src/libs/SidebarUtils.ts b/src/libs/SidebarUtils.ts index 8f28be104bd6..d76985982681 100644 --- a/src/libs/SidebarUtils.ts +++ b/src/libs/SidebarUtils.ts @@ -327,6 +327,12 @@ function shouldDisplayReportInLHN({ const parentReport = reports?.[`${ONYXKEYS.COLLECTION.REPORT}${report.parentReportID}`]; const hasErrorsOtherThanFailedReceipt = hasReportErrorsOtherThanFailedReceipt(report, chatReport, doesReportHaveViolations, transactionViolations, transactions, reportAttributes); const isReportInAccessible = report?.errorFields?.notFound; + const isTrackOnboardingAdminRoom = report.isTrackOnboardingAdminRoom && isAdminRoom(report); + + if (isTrackOnboardingAdminRoom && isReportArchived) { + return {shouldDisplay: false}; + } + if (isOneTransactionThread(report, parentReport, parentReportAction, isOffline)) { return {shouldDisplay: false}; } @@ -345,6 +351,7 @@ function shouldDisplayReportInLHN({ isFocused || isSystemChat || !!report.isPinned || + isTrackOnboardingAdminRoom || // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing requiresAttention || (report.isOwnPolicyExpenseChat && !isReportArchived); diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index d4a36d01ea08..7d25026205d3 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -244,6 +244,7 @@ type BuildPolicyDataOptions = { hasActiveAdminPolicies: boolean | undefined; betas?: OnyxEntry; personalTrackGoal?: string; + shouldShowTrackAdminRoomInLHN?: boolean; }; // TODO: Remove this type once we complete refactoring the buildPolicyData function to use isSelfTourViewed. Refactor issue: https://github.com/Expensify/App/issues/66424 @@ -2612,6 +2613,7 @@ function buildPolicyData(options: BuildPolicyDataOptions): OnyxData { ).toBeFalsy(); }); + it('should return true for an active empty Track onboarding admins room when empty chats are excluded', () => { + const report: Report = { + ...createAdminRoom(1), + isPinned: false, + isTrackOnboardingAdminRoom: true, + }; + + expect( + shouldReportBeInOptionList({ + report, + chatReport: mockedChatReport, + currentReportId: '', + isInFocusMode: false, + betas: [CONST.BETAS.DEFAULT_ROOMS], + doesReportHaveViolations: false, + excludeEmptyChats: true, + draftComment: '', + isReportArchived: false, + }), + ).toBeTruthy(); + }); + + it('should retain archived Track onboarding admins rooms in report option lists used by search', () => { + const report: Report = { + ...createAdminRoom(1), + isPinned: false, + isTrackOnboardingAdminRoom: true, + }; + + expect( + reasonForReportToBeInOptionList({ + report, + chatReport: mockedChatReport, + currentReportId: '', + isInFocusMode: false, + betas: [CONST.BETAS.DEFAULT_ROOMS], + doesReportHaveViolations: false, + excludeEmptyChats: false, + draftComment: '', + isReportArchived: true, + }), + ).toBe(CONST.REPORT_IN_LHN_REASONS.IS_ARCHIVED); + }); + it('should return DEFAULT for an empty concierge chat when excludeEmptyChats is true', async () => { const conciergeReportID = 'concierge-report-123'; const report: Report = { @@ -7452,6 +7496,20 @@ describe('ReportUtils', () => { expect(result.expenseChatReportID).toBe(providedExpenseReportID); expect(result.expenseChatData.reportID).toBe(providedExpenseReportID); }); + + it('should mark only the Track onboarding admins room for LHN visibility', () => { + const result = buildOptimisticWorkspaceChats(policyID, policyName, 100, 'user@expensifail.com', undefined, true); + + expect(result.adminsChatData.isTrackOnboardingAdminRoom).toBe(true); + expect(result.expenseChatData.isTrackOnboardingAdminRoom).toBeUndefined(); + }); + + it('should not mark workspace chats by default', () => { + const result = buildOptimisticWorkspaceChats(policyID, policyName, 100, 'user@expensifail.com'); + + expect(result.adminsChatData.isTrackOnboardingAdminRoom).toBeUndefined(); + expect(result.expenseChatData.isTrackOnboardingAdminRoom).toBeUndefined(); + }); }); describe('getWorkspaceNameUpdatedMessage', () => { diff --git a/tests/unit/SidebarUtilsTest.ts b/tests/unit/SidebarUtilsTest.ts index f18474089139..5fd8560d99e8 100644 --- a/tests/unit/SidebarUtilsTest.ts +++ b/tests/unit/SidebarUtilsTest.ts @@ -29,7 +29,7 @@ import {actionR14932 as mockIOUAction} from '../../__mocks__/reportData/actions' import {chatReportR14932, iouReportR14932} from '../../__mocks__/reportData/reports'; import createRandomPolicy from '../utils/collections/policies'; import createRandomReportAction from '../utils/collections/reportActions'; -import {createRandomReport} from '../utils/collections/reports'; +import {createAdminRoom, createRandomReport} from '../utils/collections/reports'; import {createSidebarReportsCollection, createSidebarTestData} from '../utils/collections/sidebarReports'; import createRandomTransaction from '../utils/collections/transaction'; import * as LHNTestUtils from '../utils/LHNTestUtils'; @@ -836,6 +836,64 @@ describe('SidebarUtils', () => { }); describe('shouldDisplayReportInLHN', () => { + const getAdminRoomDisplayResult = (reportOverrides: Partial, isReportArchived = false, currentReportId?: string) => { + const report: Report = { + ...createAdminRoom(92431), + participants: { + [CURRENT_USER_ACCOUNT_ID]: { + notificationPreference: CONST.REPORT.NOTIFICATION_PREFERENCE.HIDDEN, + }, + }, + isPinned: false, + lastMessageText: '', + ...reportOverrides, + }; + + return SidebarUtils.shouldDisplayReportInLHN({ + report, + reports: {[`${ONYXKEYS.COLLECTION.REPORT}${report.reportID}`]: report}, + currentReportId, + isInFocusMode: false, + betas: [], + transactionViolations: {}, + draftComment: undefined, + transactions: {}, + isOffline: false, + isReportArchived, + currentUserLogin: CURRENT_USER_LOGIN, + currentUserAccountID: CURRENT_USER_ACCOUNT_ID, + }); + }; + + it('shows an active hidden and empty Track onboarding admins room without pinning it', () => { + const result = getAdminRoomDisplayResult({isTrackOnboardingAdminRoom: true}); + + expect(result).toStrictEqual({shouldDisplay: true}); + }); + + it.each([ + ['unpinned and empty', {isPinned: false}], + ['pinned', {isPinned: true}], + ['non-empty', {lastMessageText: 'Message'}], + ])('hides an archived Track onboarding admins room when it is %s', (_description, reportOverrides) => { + const result = getAdminRoomDisplayResult({isTrackOnboardingAdminRoom: true, ...reportOverrides}, true); + + expect(result).toStrictEqual({shouldDisplay: false}); + }); + + it('hides an archived Track onboarding admins room even when it is focused', () => { + const report = createAdminRoom(92431); + const result = getAdminRoomDisplayResult({reportID: report.reportID, isTrackOnboardingAdminRoom: true}, true, report.reportID); + + expect(result).toStrictEqual({shouldDisplay: false}); + }); + + it('does not change visibility for an unmarked hidden and empty admins room', () => { + const result = getAdminRoomDisplayResult({}); + + expect(result).toStrictEqual({shouldDisplay: false}); + }); + it('returns shouldDisplay as true if a one transaction thread expense report has receipt upload error', async () => { const MOCK_REPORT: Report = { reportID: '1', From 88654fa4ab139d96d5a3a8035e247da5c90c0a17 Mon Sep 17 00:00:00 2001 From: emkhalid Date: Sun, 5 Jul 2026 05:43:48 +0430 Subject: [PATCH 2/5] Fix Track onboarding admin room visibility --- src/libs/ReportUtils.ts | 5 +---- src/libs/SidebarUtils.ts | 2 +- src/libs/actions/Policy/Policy.ts | 3 ++- src/types/onyx/Report.ts | 3 --- src/types/onyx/ReportMetadata.ts | 3 +++ tests/unit/ReportUtilsTest.ts | 24 ++++++------------------ tests/unit/SidebarUtilsTest.ts | 21 ++++++++++++--------- 7 files changed, 25 insertions(+), 36 deletions(-) diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 087d62008d6a..0328632a8089 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -626,7 +626,6 @@ type OptimisticChatReport = Pick< | 'iouReportID' | 'isOwnPolicyExpenseChat' | 'isPinned' - | 'isTrackOnboardingAdminRoom' | 'lastActorAccountID' | 'lastMessageHtml' | 'lastMessageText' @@ -8631,7 +8630,6 @@ function buildOptimisticWorkspaceChats( currentUserAccountID: number | undefined, currentUserEmail: string | undefined, expenseReportId?: string, - shouldShowTrackAdminRoomInLHN = false, ): OptimisticWorkspaceChats { const pendingChatMembers = getPendingChatMembers(currentUserAccountID ? [currentUserAccountID] : [], [], CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD); const adminsChatData = { @@ -8645,7 +8643,6 @@ function buildOptimisticWorkspaceChats( isPinned: shouldPinAdminRoomByDefault(), currentUserAccountID, }), - ...(shouldShowTrackAdminRoomInLHN && {isTrackOnboardingAdminRoom: true}), }; const adminsChatReportID = adminsChatData.reportID; const adminsCreatedAction = buildOptimisticCreatedReportAction({emailCreatingAction: CONST.POLICY.OWNER_EMAIL_FAKE}); @@ -9703,7 +9700,7 @@ function reasonForReportToBeInOptionList({ !isConciergeChatReport(report, conciergeReportID) && !isSystemChatReport && !isSelfDMWithVisiblePreference && - !(report.isTrackOnboardingAdminRoom && isAdminRoom(report) && !isReportArchived) && + !(getReportMetadata(report.reportID)?.isTrackOnboardingAdminRoom && isAdminRoom(report) && !isReportArchived) && canHideReport ) { return null; diff --git a/src/libs/SidebarUtils.ts b/src/libs/SidebarUtils.ts index d76985982681..062c3aa1260e 100644 --- a/src/libs/SidebarUtils.ts +++ b/src/libs/SidebarUtils.ts @@ -327,7 +327,7 @@ function shouldDisplayReportInLHN({ const parentReport = reports?.[`${ONYXKEYS.COLLECTION.REPORT}${report.parentReportID}`]; const hasErrorsOtherThanFailedReceipt = hasReportErrorsOtherThanFailedReceipt(report, chatReport, doesReportHaveViolations, transactionViolations, transactions, reportAttributes); const isReportInAccessible = report?.errorFields?.notFound; - const isTrackOnboardingAdminRoom = report.isTrackOnboardingAdminRoom && isAdminRoom(report); + const isTrackOnboardingAdminRoom = getReportMetadata(report.reportID)?.isTrackOnboardingAdminRoom && isAdminRoom(report); if (isTrackOnboardingAdminRoom && isReportArchived) { return {shouldDisplay: false}; diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index 7d25026205d3..e37e5a723bcd 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -2628,7 +2628,7 @@ function buildPolicyData(options: BuildPolicyDataOptions): OnyxData { ).toBeFalsy(); }); - it('should return true for an active empty Track onboarding admins room when empty chats are excluded', () => { + it('should return true for an active empty Track onboarding admins room when empty chats are excluded', async () => { const report: Report = { ...createAdminRoom(1), isPinned: false, - isTrackOnboardingAdminRoom: true, }; + await Onyx.set(`${ONYXKEYS.COLLECTION.REPORT_METADATA}${report.reportID}`, {isTrackOnboardingAdminRoom: true}); + await waitForBatchedUpdates(); expect( shouldReportBeInOptionList({ @@ -6711,12 +6712,13 @@ describe('ReportUtils', () => { ).toBeTruthy(); }); - it('should retain archived Track onboarding admins rooms in report option lists used by search', () => { + it('should retain archived Track onboarding admins rooms in report option lists used by search', async () => { const report: Report = { ...createAdminRoom(1), isPinned: false, - isTrackOnboardingAdminRoom: true, }; + await Onyx.set(`${ONYXKEYS.COLLECTION.REPORT_METADATA}${report.reportID}`, {isTrackOnboardingAdminRoom: true}); + await waitForBatchedUpdates(); expect( reasonForReportToBeInOptionList({ @@ -7496,20 +7498,6 @@ describe('ReportUtils', () => { expect(result.expenseChatReportID).toBe(providedExpenseReportID); expect(result.expenseChatData.reportID).toBe(providedExpenseReportID); }); - - it('should mark only the Track onboarding admins room for LHN visibility', () => { - const result = buildOptimisticWorkspaceChats(policyID, policyName, 100, 'user@expensifail.com', undefined, true); - - expect(result.adminsChatData.isTrackOnboardingAdminRoom).toBe(true); - expect(result.expenseChatData.isTrackOnboardingAdminRoom).toBeUndefined(); - }); - - it('should not mark workspace chats by default', () => { - const result = buildOptimisticWorkspaceChats(policyID, policyName, 100, 'user@expensifail.com'); - - expect(result.adminsChatData.isTrackOnboardingAdminRoom).toBeUndefined(); - expect(result.expenseChatData.isTrackOnboardingAdminRoom).toBeUndefined(); - }); }); describe('getWorkspaceNameUpdatedMessage', () => { diff --git a/tests/unit/SidebarUtilsTest.ts b/tests/unit/SidebarUtilsTest.ts index 5fd8560d99e8..f93e053241c1 100644 --- a/tests/unit/SidebarUtilsTest.ts +++ b/tests/unit/SidebarUtilsTest.ts @@ -836,7 +836,7 @@ describe('SidebarUtils', () => { }); describe('shouldDisplayReportInLHN', () => { - const getAdminRoomDisplayResult = (reportOverrides: Partial, isReportArchived = false, currentReportId?: string) => { + const getAdminRoomDisplayResult = async (reportOverrides: Partial, isReportArchived = false, currentReportId?: string, isTrackOnboardingAdminRoom = false) => { const report: Report = { ...createAdminRoom(92431), participants: { @@ -848,6 +848,9 @@ describe('SidebarUtils', () => { lastMessageText: '', ...reportOverrides, }; + await act(async () => { + await Onyx.set(`${ONYXKEYS.COLLECTION.REPORT_METADATA}${report.reportID}`, {isTrackOnboardingAdminRoom}); + }); return SidebarUtils.shouldDisplayReportInLHN({ report, @@ -865,8 +868,8 @@ describe('SidebarUtils', () => { }); }; - it('shows an active hidden and empty Track onboarding admins room without pinning it', () => { - const result = getAdminRoomDisplayResult({isTrackOnboardingAdminRoom: true}); + it('shows an active hidden and empty Track onboarding admins room without pinning it', async () => { + const result = await getAdminRoomDisplayResult({}, false, undefined, true); expect(result).toStrictEqual({shouldDisplay: true}); }); @@ -875,21 +878,21 @@ describe('SidebarUtils', () => { ['unpinned and empty', {isPinned: false}], ['pinned', {isPinned: true}], ['non-empty', {lastMessageText: 'Message'}], - ])('hides an archived Track onboarding admins room when it is %s', (_description, reportOverrides) => { - const result = getAdminRoomDisplayResult({isTrackOnboardingAdminRoom: true, ...reportOverrides}, true); + ])('hides an archived Track onboarding admins room when it is %s', async (_description, reportOverrides) => { + const result = await getAdminRoomDisplayResult(reportOverrides, true, undefined, true); expect(result).toStrictEqual({shouldDisplay: false}); }); - it('hides an archived Track onboarding admins room even when it is focused', () => { + it('hides an archived Track onboarding admins room even when it is focused', async () => { const report = createAdminRoom(92431); - const result = getAdminRoomDisplayResult({reportID: report.reportID, isTrackOnboardingAdminRoom: true}, true, report.reportID); + const result = await getAdminRoomDisplayResult({reportID: report.reportID}, true, report.reportID, true); expect(result).toStrictEqual({shouldDisplay: false}); }); - it('does not change visibility for an unmarked hidden and empty admins room', () => { - const result = getAdminRoomDisplayResult({}); + it('does not change visibility for an unmarked hidden and empty admins room', async () => { + const result = await getAdminRoomDisplayResult({}); expect(result).toStrictEqual({shouldDisplay: false}); }); From 0577eac66cc8314a4e6fe762fe114a14c75c6a75 Mon Sep 17 00:00:00 2001 From: emkhalid Date: Sun, 5 Jul 2026 05:58:09 +0430 Subject: [PATCH 3/5] Keep Track onboarding admin room unpinned --- src/libs/actions/Policy/Policy.ts | 1 + tests/actions/PolicyTest.ts | 38 +++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index e37e5a723bcd..cb79f0123852 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -2807,6 +2807,7 @@ function buildPolicyData(options: BuildPolicyDataOptions): OnyxData { mockFetch?.resume?.(); }); + it('creates Track onboarding admins rooms unpinned without changing the regular workspace default', async () => { + (fetch as MockFetch)?.pause?.(); + await Onyx.set(ONYXKEYS.SESSION, {email: ESH_EMAIL, accountID: ESH_ACCOUNT_ID}); + await waitForBatchedUpdates(); + + const createWorkspaceOptions = { + policyOwnerEmail: ESH_EMAIL, + makeMeAdmin: true, + policyName: WORKSPACE_NAME, + engagementChoice: CONST.ONBOARDING_CHOICES.TRACK_WORKSPACE, + introSelected: {choice: CONST.ONBOARDING_CHOICES.TRACK_WORKSPACE}, + currentUserAccountIDParam: ESH_ACCOUNT_ID, + currentUserEmailParam: ESH_EMAIL, + currency: CONST.CURRENCY.USD, + isSelfTourViewed: false, + hasActiveAdminPolicies: false, + activePolicy: undefined, + }; + + const trackWorkspaceParams = Policy.createWorkspace({ + ...createWorkspaceOptions, + policyID: Policy.generatePolicyID(), + shouldShowTrackAdminRoomInLHN: true, + }); + const regularWorkspaceParams = Policy.createWorkspace({ + ...createWorkspaceOptions, + policyID: Policy.generatePolicyID(), + shouldShowTrackAdminRoomInLHN: false, + }); + await waitForBatchedUpdates(); + + const trackAdminReport = await getOnyxValue(`${ONYXKEYS.COLLECTION.REPORT}${trackWorkspaceParams.adminsChatReportID}`); + const regularAdminReport = await getOnyxValue(`${ONYXKEYS.COLLECTION.REPORT}${regularWorkspaceParams.adminsChatReportID}`); + + expect(trackAdminReport?.isPinned).toBe(false); + expect(regularAdminReport?.isPinned).toBe(true); + }); + it('creates a new workspace', async () => { (fetch as MockFetch)?.pause?.(); await Onyx.set(ONYXKEYS.SESSION, {email: ESH_EMAIL, accountID: ESH_ACCOUNT_ID}); From 595a604117a5a0008a87b2c1d5127e343b713baf Mon Sep 17 00:00:00 2001 From: emkhalid Date: Sun, 5 Jul 2026 06:46:23 +0430 Subject: [PATCH 4/5] fixed eslint --- tests/actions/PolicyTest.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/actions/PolicyTest.ts b/tests/actions/PolicyTest.ts index 7aac0a25e127..2800587499c4 100644 --- a/tests/actions/PolicyTest.ts +++ b/tests/actions/PolicyTest.ts @@ -77,7 +77,7 @@ describe('actions/Policy', () => { }); it('creates Track onboarding admins rooms unpinned without changing the regular workspace default', async () => { - (fetch as MockFetch)?.pause?.(); + mockFetch.pause?.(); await Onyx.set(ONYXKEYS.SESSION, {email: ESH_EMAIL, accountID: ESH_ACCOUNT_ID}); await waitForBatchedUpdates(); From 66061e3ed6cdb52af6e4fc2aad163963c58d408d Mon Sep 17 00:00:00 2001 From: emkhalid Date: Sun, 5 Jul 2026 09:34:52 +0430 Subject: [PATCH 5/5] fix eslint: add nullish coalescing disable for isTrackOnboardingAdminRoom --- src/libs/SidebarUtils.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libs/SidebarUtils.ts b/src/libs/SidebarUtils.ts index 062c3aa1260e..628d645da005 100644 --- a/src/libs/SidebarUtils.ts +++ b/src/libs/SidebarUtils.ts @@ -351,6 +351,7 @@ function shouldDisplayReportInLHN({ isFocused || isSystemChat || !!report.isPinned || + // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing isTrackOnboardingAdminRoom || // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing requiresAttention ||