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",