diff --git a/src/commands/revision/changeRevisionActiveState.ts b/src/commands/revision/changeRevisionActiveState.ts index c09568243..58ca3637a 100644 --- a/src/commands/revision/changeRevisionActiveState.ts +++ b/src/commands/revision/changeRevisionActiveState.ts @@ -3,17 +3,26 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { ContainerAppsAPIClient } from "@azure/arm-appcontainers"; -import { IActionContext, nonNullProp } from "@microsoft/vscode-azext-utils"; +import { ContainerAppsAPIClient, KnownActiveRevisionsMode } from "@azure/arm-appcontainers"; +import { IActionContext, nonNullProp, nonNullValue } from "@microsoft/vscode-azext-utils"; import { ext } from "../../extensionVariables"; import type { ContainerAppItem } from "../../tree/ContainerAppItem"; import { RevisionItem } from "../../tree/revisionManagement/RevisionItem"; import { createContainerAppsClient } from "../../utils/azureClients"; import { localize } from "../../utils/localize"; import { pickContainerApp } from "../../utils/pickItem/pickContainerApp"; +import { pickRevision } from "../../utils/pickItem/pickRevision"; export async function executeRevisionOperation(context: IActionContext, node: ContainerAppItem | RevisionItem | undefined, operation: RevisionOperation): Promise { - const item = node ?? await pickContainerApp(context); + if (!node) { + node = await pickContainerApp(context); + + if (node.containerApp.revisionsMode === KnownActiveRevisionsMode.Multiple) { + node = await pickRevision(context, node); + } + } + + const item: ContainerAppItem | RevisionItem = nonNullValue(node); await ext.state.runWithTemporaryDescription(item.id, revisionOperationDescriptions[operation], async () => { const appClient: ContainerAppsAPIClient = await createContainerAppsClient(context, item.subscription);