From fc0db985c64a475dec0fbcfee5864ab035628e29 Mon Sep 17 00:00:00 2001 From: Yunwen Zheng Date: Tue, 9 Sep 2025 12:23:06 -0400 Subject: [PATCH] BootstrapStep: Enhancement resource manage card options (#110723) * BootstrapStep: card reorganize * ConnectRepositoryButton: Move to Provisioning page actions spot --- public/app/features/provisioning/HomePage.tsx | 2 + .../Shared/ConnectRepositoryButton.tsx | 60 +++++++++++++------ .../provisioning/Shared/RepositoryList.tsx | 3 - .../Wizard/BootstrapStep.test.tsx | 7 +-- .../provisioning/Wizard/BootstrapStep.tsx | 56 ++++++++++------- .../Wizard/BootstrapStepCardIcons.tsx | 29 +++++++++ .../Wizard/BootstrapStepResourceCounting.tsx | 40 +++++++++++++ public/locales/en-US/grafana.json | 10 ++-- 8 files changed, 155 insertions(+), 52 deletions(-) create mode 100644 public/app/features/provisioning/Wizard/BootstrapStepCardIcons.tsx create mode 100644 public/app/features/provisioning/Wizard/BootstrapStepResourceCounting.tsx diff --git a/public/app/features/provisioning/HomePage.tsx b/public/app/features/provisioning/HomePage.tsx index 1ad6ab656b8..465a294fa61 100644 --- a/public/app/features/provisioning/HomePage.tsx +++ b/public/app/features/provisioning/HomePage.tsx @@ -10,6 +10,7 @@ import { Page } from 'app/core/components/Page/Page'; import GettingStarted from './GettingStarted/GettingStarted'; import GettingStartedPage from './GettingStarted/GettingStartedPage'; +import { ConnectRepositoryButton } from './Shared/ConnectRepositoryButton'; import { RepositoryList } from './Shared/RepositoryList'; import { InlineSecureValueWarning } from './components/InlineSecureValueWarning'; import { useRepositoryList } from './hooks/useRepositoryList'; @@ -67,6 +68,7 @@ export default function HomePage() { } > {settings.data?.legacyStorage && ( diff --git a/public/app/features/provisioning/Shared/ConnectRepositoryButton.tsx b/public/app/features/provisioning/Shared/ConnectRepositoryButton.tsx index 64ace020dcb..e61b9f31e21 100644 --- a/public/app/features/provisioning/Shared/ConnectRepositoryButton.tsx +++ b/public/app/features/provisioning/Shared/ConnectRepositoryButton.tsx @@ -1,7 +1,7 @@ import { useNavigate } from 'react-router-dom-v5-compat'; -import { Trans } from '@grafana/i18n'; -import { Alert, Button, Dropdown, Icon, Menu, Stack } from '@grafana/ui'; +import { t, Trans } from '@grafana/i18n'; +import { Button, Dropdown, Icon, Menu, Stack } from '@grafana/ui'; import { Repository } from 'app/api/clients/provisioning/v0alpha1'; import { useGetFrontendSettingsQuery } from 'app/api/clients/provisioning/v0alpha1/endpoints.gen'; @@ -18,22 +18,7 @@ export function ConnectRepositoryButton({ items }: Props) { const navigate = useNavigate(); const { data: frontendSettings } = useGetFrontendSettingsQuery(); - if (state.instanceConnected) { - return null; - } - - if (state.maxReposReached) { - return ( - - - Repository limit reached ({'{{count}}'}) - - - ); - } + const isButtonDisabled = state.instanceConnected || state.maxReposReached; const availableTypes = frontendSettings?.availableRepositoryTypes || DEFAULT_REPOSITORY_TYPES; const { orderedConfigs } = getOrderedRepositoryConfigs(availableTypes); @@ -55,7 +40,15 @@ export function ConnectRepositoryButton({ items }: Props) { } > -