From 9c55ca78fcdfb41bf7e53b84449bbcb0fb930f24 Mon Sep 17 00:00:00 2001 From: Justin Sabelko Date: Thu, 23 Jul 2026 14:40:50 -0500 Subject: [PATCH] Hide 'Last Updated' for offline organizations Offline orgs never download data, but the nightly import still stamps person_organization_accounts.last_download on a no-op run, so the Organizations settings panel advertised a fresh 'Last Updated' time on cards that had never received anything. This masked dead DonorHub connections for migrated Wycliffe users, who read the offline card as healthy. Gate the 'Last Updated' row on the org type already computed in the component, matching the existing Sync/Import button gating. 'Last Gift Date' still renders for offline orgs as the honest signal. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01HcHZJWUKidBEU4h6s8urtV --- .../Organization/OrganizationAccordion.test.tsx | 8 +++++++- .../integrations/Organization/OrganizationAccordion.tsx | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/components/Settings/integrations/Organization/OrganizationAccordion.test.tsx b/src/components/Settings/integrations/Organization/OrganizationAccordion.test.tsx index 452b5a6b1d..348dd97b2e 100644 --- a/src/components/Settings/integrations/Organization/OrganizationAccordion.test.tsx +++ b/src/components/Settings/integrations/Organization/OrganizationAccordion.test.tsx @@ -194,7 +194,10 @@ describe('OrganizationAccordion', () => { getByText(GetUsersOrganizationsAccountsMock[0].organization.name), ).toBeInTheDocument(); - expect(getByText('Last Updated')).toBeInTheDocument(); + // Offline orgs never download, so a "Last Updated" timestamp is + // meaningless for them and must not be shown; "Last Gift Date" is the + // honest signal and stays. + expect(queryByText('Last Updated')).not.toBeInTheDocument(); expect(getByText('Last Gift Date')).toBeInTheDocument(); }); @@ -237,6 +240,9 @@ describe('OrganizationAccordion', () => { expect( queryByText('Import TntConnect DataSync file'), ).not.toBeInTheDocument(); + + // Non-offline orgs really do download, so "Last Updated" stays. + expect(getByText('Last Updated')).toBeInTheDocument(); }); userEvent.click(getByText('Sync')); diff --git a/src/components/Settings/integrations/Organization/OrganizationAccordion.tsx b/src/components/Settings/integrations/Organization/OrganizationAccordion.tsx index d9eb798363..4712316541 100644 --- a/src/components/Settings/integrations/Organization/OrganizationAccordion.tsx +++ b/src/components/Settings/integrations/Organization/OrganizationAccordion.tsx @@ -296,7 +296,7 @@ export const OrganizationAccordion: React.FC = ({ - {lastDownloadedAt && ( + {type !== OrganizationTypesEnum.OFFLINE && lastDownloadedAt && (