From fd2d011fe3ed285212f2670dda1976869861212e Mon Sep 17 00:00:00 2001 From: GeoffCoxMSFT Date: Thu, 8 Apr 2021 16:03:00 -0700 Subject: [PATCH 1/2] Fixed broken tenant ID on save --- .../src/components/ResourceGroupPicker.tsx | 26 ++++++++++--------- .../src/components/azureProvisionDialog.tsx | 3 ++- extensions/azurePublish/src/node/provision.ts | 1 + 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/extensions/azurePublish/src/components/ResourceGroupPicker.tsx b/extensions/azurePublish/src/components/ResourceGroupPicker.tsx index aafe5163bf..1a88433245 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,12 +133,14 @@ export const ResourceGroupPicker = ({ }, [debouncedNewName, resourceGroupNames]); React.useEffect(() => { - const isNew = selectedName === CREATE_NEW_KEY; - onChange({ - isNew, - name: isNew ? debouncedNewName : selectedName, - errorMessage: isNew ? newNameErrorMessage : undefined, - }); + if (!disabled) { + const isNew = selectedName === CREATE_NEW_KEY; + onChange({ + isNew, + name: isNew ? debouncedNewName : selectedName, + errorMessage: isNew ? newNameErrorMessage : undefined, + }); + } }, [selectedName, debouncedNewName, newNameErrorMessage]); const options = React.useMemo(() => { @@ -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 From def564dc5c31fa017ae2ef12ff9247293c15e813 Mon Sep 17 00:00:00 2001 From: GeoffCoxMSFT Date: Thu, 8 Apr 2021 16:09:59 -0700 Subject: [PATCH 2/2] Fix dependency --- extensions/azurePublish/src/components/ResourceGroupPicker.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/azurePublish/src/components/ResourceGroupPicker.tsx b/extensions/azurePublish/src/components/ResourceGroupPicker.tsx index 1a88433245..9d778a6e0b 100644 --- a/extensions/azurePublish/src/components/ResourceGroupPicker.tsx +++ b/extensions/azurePublish/src/components/ResourceGroupPicker.tsx @@ -141,7 +141,7 @@ export const ResourceGroupPicker = ({ errorMessage: isNew ? newNameErrorMessage : undefined, }); } - }, [selectedName, debouncedNewName, newNameErrorMessage]); + }, [disabled, selectedName, debouncedNewName, newNameErrorMessage]); const options = React.useMemo(() => { const optionsList: IDropdownOption[] =