提交 977a9e01 编写于 作者: C Christof Marti

Validate initial value (fixes #52908)

上级 ba21a324
...@@ -971,27 +971,33 @@ export class QuickInputService extends Component implements IQuickInputService { ...@@ -971,27 +971,33 @@ export class QuickInputService extends Component implements IQuickInputService {
const input = this.createInputBox(); const input = this.createInputBox();
const validateInput = options.validateInput || (() => TPromise.as(undefined)); const validateInput = options.validateInput || (() => TPromise.as(undefined));
const onDidValueChange = debounceEvent(input.onDidChangeValue, (last, cur) => cur, 100); const onDidValueChange = debounceEvent(input.onDidChangeValue, (last, cur) => cur, 100);
let validationValue: string; let validationValue = options.value || '';
let validation = TPromise.as(''); let validation = TPromise.wrap(validateInput(validationValue));
const disposables = [ const disposables = [
input, input,
onDidValueChange(value => { onDidValueChange(value => {
if (value !== validationValue) { if (value !== validationValue) {
validation = TPromise.wrap(validateInput(value)); validation = TPromise.wrap(validateInput(value));
validationValue = value;
} }
validation.then(result => { validation.then(result => {
input.validationMessage = result; if (value === validationValue) {
input.validationMessage = result;
}
}); });
}), }),
input.onDidAccept(() => { input.onDidAccept(() => {
const value = input.value; const value = input.value;
if (value !== validationValue) { if (value !== validationValue) {
validation = TPromise.wrap(validateInput(value)); validation = TPromise.wrap(validateInput(value));
validationValue = value;
} }
validation.then(result => { validation.then(result => {
if (!result) { if (!result) {
resolve(value); resolve(value);
input.hide(); input.hide();
} else if (value === validationValue) {
input.validationMessage = result;
} }
}); });
}), }),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册