Browse Source

chore(metrics): remove metrics dashboard import flag (#69760)

Ogi 10 months ago
parent
commit
80860f59e3

+ 0 - 4
static/app/utils/metrics/features.tsx

@@ -5,10 +5,6 @@ export function hasMetricsExperimentalFeature(organization: Organization) {
   return organization.features.includes('custom-metrics-experimental');
 }
 
-export function hasDashboardImportFeature(organization: Organization) {
-  return organization.features.includes('ddm-dashboard-import');
-}
-
 export function hasMetricsSidebarItem(organization: Organization) {
   return !organization.features.includes('ddm-sidebar-item-hidden');
 }

+ 29 - 0
static/app/views/dashboards/manage/dashboardImport.tsx

@@ -0,0 +1,29 @@
+import {Button} from 'sentry/components/button';
+import {IconDownload} from 'sentry/icons';
+import {t} from 'sentry/locale';
+import useOrganization from 'sentry/utils/useOrganization';
+import {useUser} from 'sentry/utils/useUser';
+
+import {openDashboardImport} from '../../metrics/dashboardImportModal';
+
+// Allows easy import of dashboards. Visible to superusers only.
+export function DashboardImportButton() {
+  const organization = useOrganization();
+  const user = useUser();
+
+  if (!user.isSuperuser) {
+    return null;
+  }
+
+  return (
+    <Button
+      onClick={() => {
+        openDashboardImport(organization);
+      }}
+      size="sm"
+      icon={<IconDownload />}
+    >
+      {t('Import Dashboard')}
+    </Button>
+  );
+}

+ 3 - 14
static/app/views/dashboards/manage/index.tsx

@@ -20,20 +20,19 @@ import {PageHeadingQuestionTooltip} from 'sentry/components/pageHeadingQuestionT
 import SearchBar from 'sentry/components/searchBar';
 import SentryDocumentTitle from 'sentry/components/sentryDocumentTitle';
 import Switch from 'sentry/components/switchButton';
-import {IconAdd, IconDownload} from 'sentry/icons';
+import {IconAdd} from 'sentry/icons';
 import {t} from 'sentry/locale';
 import {space} from 'sentry/styles/space';
 import type {SelectValue} from 'sentry/types/core';
 import type {Organization} from 'sentry/types/organization';
 import {trackAnalytics} from 'sentry/utils/analytics';
-import {hasDashboardImportFeature} from 'sentry/utils/metrics/features';
 import {decodeScalar} from 'sentry/utils/queryString';
 import withApi from 'sentry/utils/withApi';
 import {normalizeUrl} from 'sentry/utils/withDomainRequired';
 import withOrganization from 'sentry/utils/withOrganization';
+import {DashboardImportButton} from 'sentry/views/dashboards/manage/dashboardImport';
 import DeprecatedAsyncView from 'sentry/views/deprecatedAsyncView';
 
-import {openDashboardImport} from '../../metrics/dashboardImportModal';
 import {DASHBOARDS_TEMPLATES} from '../data';
 import {assignDefaultLayout, getInitialColumnDepths} from '../layoutUtils';
 import type {DashboardDetails, DashboardListItem} from '../types';
@@ -317,17 +316,7 @@ class ManageDashboards extends DeprecatedAsyncView<Props, State> {
                         toggle={this.toggleTemplates}
                       />
                     </TemplateSwitch>
-                    {hasDashboardImportFeature(organization) && (
-                      <Button
-                        onClick={() => {
-                          openDashboardImport(organization);
-                        }}
-                        size="sm"
-                        icon={<IconDownload />}
-                      >
-                        {t('Import Dashboard')}
-                      </Button>
-                    )}
+                    <DashboardImportButton />
                     <Button
                       data-test-id="dashboard-create"
                       onClick={event => {