Skip to content

Commit 1b69c69

Browse files
ddaribokdinevteodosiahChronosSF
authored
fix(simple-combo): Toggle combo on templated icon click (#12355)
* fix(simple-combo): handle click on suffix * fix(simple-combo): fix failing text due to change Co-authored-by: Konstantin Dinev <[email protected]> Co-authored-by: Teodosia Hristodorova <[email protected]> Co-authored-by: Stamen Stoychev <[email protected]>
1 parent 6601fc3 commit 1b69c69

File tree

2 files changed

+46
-4
lines changed

2 files changed

+46
-4
lines changed

projects/igniteui-angular/src/lib/simple-combo/simple-combo.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@
3434
(click)="toggleCaseSensitive()">
3535
</igx-icon>
3636
</igx-suffix>
37-
<igx-suffix class="igx-combo__toggle-button">
37+
<igx-suffix class="igx-combo__toggle-button" (click)="onClick($event)">
3838
<ng-container *ngIf="toggleIconTemplate">
3939
<ng-container *ngTemplateOutlet="toggleIconTemplate; context: {$implicit: collapsed}"></ng-container>
4040
</ng-container>
41-
<igx-icon (click)="onClick($event)" *ngIf="!toggleIconTemplate">
41+
<igx-icon *ngIf="!toggleIconTemplate">
4242
{{ dropdown.collapsed ? 'arrow_drop_down' : 'arrow_drop_up'}}
4343
</igx-icon>
4444
</igx-suffix>

projects/igniteui-angular/src/lib/simple-combo/simple-combo.component.spec.ts

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -810,7 +810,8 @@ describe('IgxSimpleCombo', () => {
810810
TestBed.configureTestingModule({
811811
declarations: [
812812
IgxSimpleComboSampleComponent,
813-
IgxComboInContainerTestComponent
813+
IgxComboInContainerTestComponent,
814+
IgxSimpleComboIconTemplatesComponent
814815
],
815816
imports: [
816817
IgxSimpleComboModule,
@@ -992,9 +993,10 @@ describe('IgxSimpleCombo', () => {
992993
const toggleButton = fixture.debugElement.query(By.directive(IgxIconComponent));
993994
expect(toggleButton).toBeDefined();
994995

995-
toggleButton.triggerEventHandler('click', UIInteractions.getMouseEvent('click'));
996+
toggleButton.nativeElement.click();
996997
fixture.detectChanges();
997998

999+
expect(combo.collapsed).toBeFalsy();
9981000
expect(combo.onClick).toHaveBeenCalledTimes(1);
9991001
expect((combo as any).virtDir.scrollTo).toHaveBeenCalledWith(0);
10001002
});
@@ -1278,6 +1280,30 @@ describe('IgxSimpleCombo', () => {
12781280
expect(combo.selection).toEqual([]);
12791281
expect(combo.value).toBe('');
12801282
});
1283+
1284+
it('should toggle dropdown list on clicking a templated toggle icon', fakeAsync(() => {
1285+
fixture = TestBed.createComponent(IgxSimpleComboIconTemplatesComponent);
1286+
fixture.detectChanges();
1287+
combo = fixture.componentInstance.combo;
1288+
1289+
const toggleIcon = fixture.debugElement.query(By.directive(IgxIconComponent));
1290+
expect(toggleIcon).toBeDefined();
1291+
1292+
expect(toggleIcon.nativeElement.textContent).toBe('search');
1293+
expect(combo.collapsed).toBeTruthy();
1294+
1295+
toggleIcon.nativeElement.click();
1296+
tick();
1297+
fixture.detectChanges();
1298+
1299+
expect(combo.collapsed).toBeFalsy();
1300+
1301+
toggleIcon.nativeElement.click();
1302+
tick();
1303+
fixture.detectChanges();
1304+
1305+
expect(combo.collapsed).toBeTruthy();
1306+
}));
12811307
});
12821308

12831309
describe('Display density', () => {
@@ -1862,6 +1888,22 @@ export class IgxSimpleComboEmptyComponent {
18621888
public name!: string;
18631889
}
18641890

1891+
@Component({
1892+
template: `<igx-simple-combo #combo [data]="data" displayKey="name" valueKey="id" [(ngModel)]="name">
1893+
<ng-template igxComboToggleIcon><igx-icon>search</igx-icon></ng-template>
1894+
</igx-simple-combo>`
1895+
})
1896+
export class IgxSimpleComboIconTemplatesComponent {
1897+
@ViewChild('combo', { read: IgxSimpleComboComponent, static: true })
1898+
public combo: IgxSimpleComboComponent;
1899+
1900+
public data: any[] = [
1901+
{ name: 'Sofia', id: '1' },
1902+
{ name: 'London', id: '2' },
1903+
];;
1904+
public name!: string;
1905+
}
1906+
18651907
@Component({
18661908
template: `<igx-simple-combo [(ngModel)]="selectedItem" [data]="items"></igx-simple-combo>`
18671909
})

0 commit comments

Comments
 (0)