diff --git a/public/app/features/browse-dashboards/components/RecentlyDeletedActions.tsx b/public/app/features/browse-dashboards/components/RecentlyDeletedActions.tsx index a8da562add4..ba25904d43a 100644 --- a/public/app/features/browse-dashboards/components/RecentlyDeletedActions.tsx +++ b/public/app/features/browse-dashboards/components/RecentlyDeletedActions.tsx @@ -128,9 +128,7 @@ export function RecentlyDeletedActions() { results.forEach((result, index) => { const dashboardUid = selectedDashboards[index]; - if (result.status === 'rejected') { - failed.push(dashboardUid); - } else if (result.value.error) { + if (result.status === 'rejected' || result.value.error) { failed.push(dashboardUid); } else if ('data' in result.value && result.value.data?.name) { successful.push(result.value.data.name); diff --git a/public/app/features/dashboard/api/UnifiedDashboardAPI.ts b/public/app/features/dashboard/api/UnifiedDashboardAPI.ts index a76049421d2..613403420e5 100644 --- a/public/app/features/dashboard/api/UnifiedDashboardAPI.ts +++ b/public/app/features/dashboard/api/UnifiedDashboardAPI.ts @@ -8,10 +8,10 @@ import { SaveDashboardCommand } from '../components/SaveDashboard/types'; import { DashboardAPI, DashboardVersionError, DashboardWithAccessInfo, ListDeletedDashboardsOptions } from './types'; import { + failedFromVersion, isDashboardV2Spec, isV1DashboardCommand, isV2DashboardCommand, - failedFromVersion, isV2StoredVersion, } from './utils'; import { K8sDashboardAPI } from './v1'; @@ -69,14 +69,14 @@ export class UnifiedDashboardAPI options: ListDeletedDashboardsOptions ): Promise> { const v1Response = await this.v1Client.listDeletedDashboards(options); - const filteredV1Items = v1Response.items.filter((item) => !failedFromVersion(item, 'v2')); + const filteredV1Items = v1Response.items.filter((item) => !failedFromVersion(item, ['v2'])); if (filteredV1Items.length === v1Response.items.length) { return v1Response; } const v2Response = await this.v2Client.listDeletedDashboards(options); - const filteredV2Items = v2Response.items.filter((item) => !failedFromVersion(item, 'v1')); + const filteredV2Items = v2Response.items.filter((item) => !failedFromVersion(item, ['v0', 'v1'])); return { ...v2Response, diff --git a/public/app/features/dashboard/api/utils.ts b/public/app/features/dashboard/api/utils.ts index 9a2e7406576..b0f582869a1 100644 --- a/public/app/features/dashboard/api/utils.ts +++ b/public/app/features/dashboard/api/utils.ts @@ -100,15 +100,15 @@ export function getFailedVersion( } /** - * Helper function to check if a dashboard resource has a failed conversion from a specific version family + * Helper function to check if a dashboard resource has a failed conversion from specific versions * @param item - Dashboard resource item - * @param versionPrefix - Version prefix to check (e.g., 'v1', 'v2') - * @returns True if conversion failed and stored version starts with the specified prefix + * @param versionPrefixes - Array of version prefixes to check (e.g., ['v1', 'v2']) + * @returns True if conversion failed and stored version starts with any of the specified prefixes */ export function failedFromVersion( item: Resource, - versionPrefix: string + versionPrefixes: string[] ): boolean { const storedVersion = getFailedVersion(item); - return !!storedVersion && storedVersion.startsWith(versionPrefix); + return !!storedVersion && versionPrefixes.some((prefix) => storedVersion.startsWith(prefix)); }