From adafdd489fae4278755a76e56b41e4293604823e Mon Sep 17 00:00:00 2001 From: Candice Ye Date: Thu, 16 Jun 2022 15:03:51 -0700 Subject: [PATCH] Fixed dynamic enablement (#19742) * Fixed dynamic enablement * Set to false or original logic in constructor * Changed boolean to also undefined * Moved comment to constructor Co-authored-by: Candice Ye --- .../src/ui/radioGroupLoadingComponentBuilder.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/extensions/resource-deployment/src/ui/radioGroupLoadingComponentBuilder.ts b/extensions/resource-deployment/src/ui/radioGroupLoadingComponentBuilder.ts index da3dcf2cac..b5c899e5fe 100644 --- a/extensions/resource-deployment/src/ui/radioGroupLoadingComponentBuilder.ts +++ b/extensions/resource-deployment/src/ui/radioGroupLoadingComponentBuilder.ts @@ -12,9 +12,12 @@ export class RadioGroupLoadingComponentBuilder implements azdata.ComponentBuilde private _optionsLoadingBuilder: azdata.LoadingComponentBuilder; private _onValueChangedEmitter: vscode.EventEmitter = new vscode.EventEmitter(); private _currentRadioOption!: azdata.RadioButtonComponent; + private _enabled: boolean | undefined; constructor(private _view: azdata.ModelView, private _onNewDisposableCreated: (disposable: vscode.Disposable) => void, private _fieldInfo: FieldInfo) { this._optionsDivContainer = this._view!.modelBuilder.divContainer().withProps({ clickable: false }).component(); this._optionsLoadingBuilder = this._view!.modelBuilder.loadingComponent().withItem(this._optionsDivContainer); + // Dynamic enablement fields will default to false since they're calculated later + this._enabled = instanceOfDynamicEnablementInfo(this._fieldInfo.enabled) ? false : this._fieldInfo.enabled; } component(): azdata.LoadingComponent { @@ -51,7 +54,7 @@ export class RadioGroupLoadingComponentBuilder implements azdata.ComponentBuilde label: option.displayName, value: option.name, checked: option.displayName === defaultValue, - enabled: instanceOfDynamicEnablementInfo(this._fieldInfo.enabled) ? false : this._fieldInfo.enabled // Dynamic enablement is initially set to false + enabled: this._enabled }).component(); if (radioOption.checked) { this._currentRadioOption = radioOption; @@ -90,6 +93,7 @@ export class RadioGroupLoadingComponentBuilder implements azdata.ComponentBuilde this._optionsDivContainer.items.forEach(radioButton => { radioButton.enabled = enabled; }); + this._enabled = enabled; } get onValueChanged(): vscode.Event {