Skip to content

Commit 0dc048e

Browse files
authored
fix(filter-bar): initial invalid state on empty filter name (#DS-3526) (#764)
1 parent a61e075 commit 0dc048e

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

packages/components/filter-bar/filters.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,13 @@
159159
<label class="kbq-form__label">{{ localeData.name }}</label>
160160

161161
<kbq-form-field class="kbq-form__control">
162-
<input #newFilterName kbqInput type="text" [formControl]="filterName" />
162+
<input
163+
#newFilterName
164+
kbqInput
165+
type="text"
166+
[formControl]="filterName"
167+
(keydown.enter)="saveAsNew($event)"
168+
/>
163169

164170
@if (filterName.hasError('filterNameAlreadyExist')) {
165171
<kbq-hint [color]="'error'">{{ localeData.error }}</kbq-hint>

packages/components/filter-bar/filters.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ export class KbqFilters implements OnInit {
171171
});
172172
}
173173

174-
saveAsNew() {
174+
saveAsNew(event?: Event) {
175175
if (this.filterName.invalid) return;
176176

177177
const name = this.filterName.value || '';
@@ -189,6 +189,8 @@ export class KbqFilters implements OnInit {
189189
} else {
190190
this.onSave.emit({ filter, filterBar: this.filterBar, status: KbqSaveFilterStatuses.NewName });
191191
}
192+
193+
event?.preventDefault();
192194
}
193195

194196
showError(error?: KbqSaveFilterError) {
@@ -215,7 +217,10 @@ export class KbqFilters implements OnInit {
215217
merge(...this.popover.defaultClosingActions()).subscribe(this.closePopover);
216218
this.popover.visibleChange.pipe(filter((state) => !state)).subscribe(this.closePopover);
217219

218-
setTimeout(() => this.newFilterName.nativeElement.focus());
220+
setTimeout(() => {
221+
this.newFilterName.nativeElement.focus();
222+
this.filterName.setErrors(null);
223+
});
219224
}
220225

221226
openSaveAsNewFilterPopover() {

tools/public_api_guard/components/filter-bar.api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ export class KbqFilters implements OnInit {
305305
// (undocumented)
306306
restoreFocus(): void;
307307
// (undocumented)
308-
saveAsNew(): void;
308+
saveAsNew(event?: Event): void;
309309
// (undocumented)
310310
saveChanges(): void;
311311
saveNewFilter: boolean;

0 commit comments

Comments
 (0)