function AlarmsMain()

in ui/src/App.js [48:115]


function AlarmsMain() {
  const [tenantID, setTenantID] = useState<string>("default");

  const apiUtil = React.useMemo(() => APIUtil(tenantID),[tenantID])

  // Initialize tenant if not already initialized
  const {error} = apiUtil.useAlarmsApi(apiUtil.getRouteTree, {tenantID})
  React.useEffect(() => {
    if (error?.response?.status === 400 &&
        error?.response?.data?.message?.includes('does not exist')) {
      APIUtil(tenantID).editRouteTree({
        route: {
          receiver: `${tenantID}_tenant_base_route`,
        }
      })
    }
  }, [error, tenantID])


  const {response: amTenancyResp} = apiUtil.useAlarmsApi(apiUtil.getAlertmanagerTenancy, {})
  const {response: promTenancyResp} = apiUtil.useAlarmsApi(apiUtil.getPrometheusTenancy, {})

  const amTenancy: TenancyConfig = amTenancyResp ?? {restrictor_label: "", restrict_queries: false};
  const promTenancy: TenancyConfig = promTenancyResp ?? {restrictor_label: "tenant", restrict_queries: false};

  const isSingleTenant = amTenancy.restrictor_label === "";

  const filterLabels = (labels: Labels): Labels => {
    const labelsToFilter = ['monitor', 'instance', 'job'];
    isSingleTenant && labelsToFilter.push(promTenancy.restrictor_label);
    const filtered = {...labels};
    for (const label of labelsToFilter) {
      delete filtered[label];
    }
    return filtered;
  }

  return(
    <>
      <MuiThemeProvider theme={theme}>
        <MuiStylesThemeProvider theme={theme}>
          <SnackbarProvider
            maxSnack={3}
            preventDuplicate
            anchorOrigin={{
              vertical: 'bottom',
              horizontal: 'right',
          }}>
          {isSingleTenant ||
          <TenantSelector apiUtil={apiUtil} setTenantId={setTenantID} tenantID={tenantID}/>
          }
          <Alarms
            apiUtil={apiUtil}
            makeTabLink={({match, keyName}) => {
                return `${keyName}`
              }
            }
            alertManagerGlobalConfigEnabled={true}
            disabledTabs={['suppressions', 'routes']}
            thresholdEditorEnabled={true}
            filterLabels={filterLabels}
          />
          </SnackbarProvider>
        </MuiStylesThemeProvider>
      </MuiThemeProvider>
    </>
  )
}