diff --git a/common/components/TabbedBar/TabbedBar.tsx b/common/components/TabbedBar/TabbedBar.tsx index 3c601a109..b36e55a18 100644 --- a/common/components/TabbedBar/TabbedBar.tsx +++ b/common/components/TabbedBar/TabbedBar.tsx @@ -28,17 +28,20 @@ type TabbedBarProps = { export function TabbedBar({ options, size }: TabbedBarProps) { return ( - {options.map(({ key, label, onClick, selected, enabled, indicator }) => ( - - {label} {indicator} - - ))} + {options.map( + ({ key, label, onClick, selected, enabled, indicator, hide }) => + !hide ? ( + + {label} {indicator} + + ) : null + )} ); } diff --git a/common/components/TabbedBar/types.ts b/common/components/TabbedBar/types.ts index 374a199ce..e8878d55f 100644 --- a/common/components/TabbedBar/types.ts +++ b/common/components/TabbedBar/types.ts @@ -24,6 +24,7 @@ export type TabOption = { selected: boolean; enabled?: boolean; indicator?: React.ReactNode; + hide?: boolean; }; export type TabbedBarSize = "medium" | "large"; diff --git a/publisher/src/components/AdminPanel/AdminPanel.test.tsx b/publisher/src/components/AdminPanel/AdminPanel.test.tsx index 22dbd29ca..5d2fea963 100644 --- a/publisher/src/components/AdminPanel/AdminPanel.test.tsx +++ b/publisher/src/components/AdminPanel/AdminPanel.test.tsx @@ -695,6 +695,7 @@ test("Clicking on an existing agency card opens the edit agency modal", async () await waitFor(() => { adminPanelStore.teamMemberListLoading = false; + adminPanelStore.reportingAgencyMetadataLoading = false; }); const editAgencyModalTitle = screen.getByText("Edit Agency Information"); @@ -770,6 +771,7 @@ test("Team members tab renders with add/remove buttons and users who are connect await waitFor(() => { adminPanelStore.teamMemberListLoading = false; + adminPanelStore.reportingAgencyMetadataLoading = false; }); const teamMemberRolesTab = screen.getByText("Team Members & Roles"); @@ -806,6 +808,7 @@ test("Adding a user adds a card to the list of team members", async () => { await waitFor(() => { adminPanelStore.teamMemberListLoading = false; + adminPanelStore.reportingAgencyMetadataLoading = false; }); const teamMemberRolesTab = screen.getByText("Team Members & Roles"); @@ -855,6 +858,7 @@ test("Deleting a user deletes a card to the list of team members", async () => { await waitFor(() => { adminPanelStore.teamMemberListLoading = false; + adminPanelStore.reportingAgencyMetadataLoading = false; }); const teamMemberRolesTab = screen.getByText("Team Members & Roles"); @@ -911,6 +915,7 @@ test("Loading spinner works properly in Agency Provisioning", async () => { await waitFor(() => { adminPanelStore.teamMemberListLoading = false; + adminPanelStore.reportingAgencyMetadataLoading = false; }); const teamMemberRolesTab = screen.getByText("Team Members & Roles"); diff --git a/publisher/src/components/AdminPanel/AgencyProvisioning.tsx b/publisher/src/components/AdminPanel/AgencyProvisioning.tsx index de18a62d3..2e931e8f8 100644 --- a/publisher/src/components/AdminPanel/AgencyProvisioning.tsx +++ b/publisher/src/components/AdminPanel/AgencyProvisioning.tsx @@ -190,6 +190,8 @@ export const AgencyProvisioning: React.FC = observer( selected: currentSettingType === AgencyProvisioningSettings.METRICS_REPORTING_AGENCY, + /** Hide metrics reporting agency tab when creating a new agency */ + hide: !selectedIDToEdit, }, ]; diff --git a/publisher/src/components/AdminPanel/AgencyProvisioningOverview.tsx b/publisher/src/components/AdminPanel/AgencyProvisioningOverview.tsx index a65aefe36..e605029ac 100644 --- a/publisher/src/components/AdminPanel/AgencyProvisioningOverview.tsx +++ b/publisher/src/components/AdminPanel/AgencyProvisioningOverview.tsx @@ -325,6 +325,7 @@ export const AgencyProvisioningOverview = observer(() => { onClick={() => { // Fetch the team associations for the agency. adminPanelStore.fetchAgencyTeam(String(agency.id)); + // Fetch the metrics reporting agency metadata adminPanelStore.fetchReportingAgency(String(agency.id)); editAgency(agency.id); }} diff --git a/publisher/src/stores/AdminPanelStore.ts b/publisher/src/stores/AdminPanelStore.ts index 856838841..4d156dcb7 100644 --- a/publisher/src/stores/AdminPanelStore.ts +++ b/publisher/src/stores/AdminPanelStore.ts @@ -120,7 +120,7 @@ class AdminPanelStore { this.agencyProvisioningUpdates = initialEmptyAgencyProvisioningUpdates; this.userAgenciesLoading = false; this.teamMemberListLoading = false; - this.reportingAgencyMetadataLoading = true; + this.reportingAgencyMetadataLoading = false; } get users(): UserWithAgenciesByID[] { @@ -381,6 +381,8 @@ class AdminPanelStore { async fetchReportingAgency(agencyID: string) { try { + this.reportingAgencyMetadataLoading = true; + const response = (await this.api.request({ path: `admin/agency/${agencyID}/reporting-agency`, method: "GET",