diff --git a/extensions/azurePublish/src/components/ResourceGroupPicker.tsx b/extensions/azurePublish/src/components/ResourceGroupPicker.tsx index aafe5163bf..9d778a6e0b 100644 --- a/extensions/azurePublish/src/components/ResourceGroupPicker.tsx +++ b/extensions/azurePublish/src/components/ResourceGroupPicker.tsx @@ -46,10 +46,12 @@ type ResourceGroupItemChoice = { }; type Props = { - disabled: boolean; + /** + * If this picker should be disabled. + */ + disabled?: boolean; /** * The resource groups to choose from. - * Set to undefined to disable this picker. */ resourceGroupNames?: string[]; /** @@ -131,13 +133,15 @@ export const ResourceGroupPicker = ({ }, [debouncedNewName, resourceGroupNames]); React.useEffect(() => { - const isNew = selectedName === CREATE_NEW_KEY; - onChange({ - isNew, - name: isNew ? debouncedNewName : selectedName, - errorMessage: isNew ? newNameErrorMessage : undefined, - }); - }, [selectedName, debouncedNewName, newNameErrorMessage]); + if (!disabled) { + const isNew = selectedName === CREATE_NEW_KEY; + onChange({ + isNew, + name: isNew ? debouncedNewName : selectedName, + errorMessage: isNew ? newNameErrorMessage : undefined, + }); + } + }, [disabled, selectedName, debouncedNewName, newNameErrorMessage]); const options = React.useMemo(() => { const optionsList: IDropdownOption[] = @@ -151,8 +155,6 @@ export const ResourceGroupPicker = ({ // ----- Render -----// - const loading = resourceGroupNames === undefined; - const onRenderOption = (option) => { return (
@@ -171,7 +173,7 @@ export const ResourceGroupPicker = ({ ariaLabel={formatMessage( 'A resource group is a collection of resources that share the same lifecycle, permissions, and policies' )} - disabled={loading || disabled} + disabled={disabled} label={formatMessage('Resource group')} options={options} placeholder={formatMessage('Select one')} @@ -188,7 +190,7 @@ export const ResourceGroupPicker = ({ required ariaLabel={formatMessage('Enter a name for the new resource group')} data-testid={'newResourceGroupName'} - disabled={loading} + disabled={disabled} errorMessage={newNameErrorMessage} id={'newResourceGroupName'} label={formatMessage('Resource group name')} diff --git a/extensions/azurePublish/src/components/azureProvisionDialog.tsx b/extensions/azurePublish/src/components/azureProvisionDialog.tsx index 2499f6a6d5..78abe5c038 100644 --- a/extensions/azurePublish/src/components/azureProvisionDialog.tsx +++ b/extensions/azurePublish/src/components/azureProvisionDialog.tsx @@ -674,7 +674,7 @@ export const AzureProvisionDialog: React.FC = () => { const resourceGroupNames = resourceGroups?.map((r) => r.name) || []; - const isNewResourceGroupName = !resourceGroupNames.includes(formData.resourceGroup); + const isNewResourceGroupName = !currentConfig?.resourceGroup && !resourceGroupNames.includes(formData.resourceGroup); const PageChooseAction = ( { onClick={() => { const selectedResources = formData.requiredResources.concat(formData.enabledResources); onSubmit({ + tenantId: formData.tenantId, subscription: formData.subscriptionId, resourceGroup: formData.resourceGroup, hostname: formData.hostname, diff --git a/extensions/azurePublish/src/node/provision.ts b/extensions/azurePublish/src/node/provision.ts index 93d405d797..ce2dc13c6a 100644 --- a/extensions/azurePublish/src/node/provision.ts +++ b/extensions/azurePublish/src/node/provision.ts @@ -248,6 +248,7 @@ export class BotProjectProvision { // ensure a tenantId is available. if (!this.tenantId) { this.tenantId = await this.getTenantId(); + provisionResults.tenantId = this.tenantId; } // tokenCredentials is used for authentication across the API calls