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