mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Fix custom UI validation bugs (#1583)
This commit is contained in:
@@ -429,9 +429,9 @@ class ComponentWrapper implements sqlops.Component {
|
|||||||
public onEvent(eventArgs: IComponentEventArgs) {
|
public onEvent(eventArgs: IComponentEventArgs) {
|
||||||
if (eventArgs && eventArgs.eventType === ComponentEventType.PropertiesChanged) {
|
if (eventArgs && eventArgs.eventType === ComponentEventType.PropertiesChanged) {
|
||||||
this.properties = eventArgs.args;
|
this.properties = eventArgs.args;
|
||||||
}
|
} else if (eventArgs && eventArgs.eventType === ComponentEventType.validityChanged) {
|
||||||
else if (eventArgs && eventArgs.eventType === ComponentEventType.validityChanged) {
|
|
||||||
this._valid = eventArgs.args;
|
this._valid = eventArgs.args;
|
||||||
|
this._onValidityChangedEmitter.fire(this._valid);
|
||||||
} else if (eventArgs) {
|
} else if (eventArgs) {
|
||||||
let emitter = this._emitterMap.get(eventArgs.eventType);
|
let emitter = this._emitterMap.get(eventArgs.eventType);
|
||||||
if (emitter) {
|
if (emitter) {
|
||||||
|
|||||||
@@ -118,4 +118,14 @@ suite('ExtHostModelView Validation Tests', () => {
|
|||||||
});
|
});
|
||||||
assert.equal(inputBox.valid, true, 'Input box did not update validity to true based on the validityChanged event');
|
assert.equal(inputBox.valid, true, 'Input box did not update validity to true based on the validityChanged event');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('Main thread validityChanged events cause component to fire validity changed events', () => {
|
||||||
|
let validityFromEvent: boolean = undefined;
|
||||||
|
inputBox.onValidityChanged(valid => validityFromEvent = valid);
|
||||||
|
extHostModelView.$handleEvent(handle, inputBox.id, {
|
||||||
|
eventType: ComponentEventType.validityChanged,
|
||||||
|
args: false
|
||||||
|
});
|
||||||
|
assert.equal(validityFromEvent, false, 'Main thread validityChanged event did not cause component to fire its own event');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
@@ -364,7 +364,11 @@ export class InputBox extends Widget {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!errorMsg) {
|
if (errorMsg) {
|
||||||
|
this.inputElement.setAttribute('aria-invalid', 'true');
|
||||||
|
this.showMessage(errorMsg);
|
||||||
|
}
|
||||||
|
else if (this.inputElement.hasAttribute('aria-invalid')) {
|
||||||
this.inputElement.removeAttribute('aria-invalid');
|
this.inputElement.removeAttribute('aria-invalid');
|
||||||
this.hideMessage();
|
this.hideMessage();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user