Skip to content

Commit fcd8129

Browse files
authored
fix(chip): add and use destroy subject (#12839)
1 parent 01cba61 commit fcd8129

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

projects/igniteui-angular/src/lib/chips/chip.component.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
Renderer2,
1212
TemplateRef,
1313
Inject,
14-
Optional
14+
Optional,
15+
OnDestroy
1516
} from '@angular/core';
1617
import { IDisplayDensityOptions, DisplayDensityToken, DisplayDensityBase } from '../core/displayDensity';
1718
import {
@@ -24,7 +25,7 @@ import {
2425
import { IBaseEventArgs } from '../core/utils';
2526
import { IChipResourceStrings } from '../core/i18n/chip-resources';
2627
import { CurrentResourceStrings } from '../core/i18n/resources';
27-
import { fromEvent } from 'rxjs';
28+
import { fromEvent, Subject } from 'rxjs';
2829
import { take, filter } from 'rxjs/operators';
2930

3031
export interface IBaseChipEventArgs extends IBaseEventArgs {
@@ -79,7 +80,7 @@ let CHIP_ID = 0;
7980
selector: 'igx-chip',
8081
templateUrl: 'chip.component.html'
8182
})
82-
export class IgxChipComponent extends DisplayDensityBase {
83+
export class IgxChipComponent extends DisplayDensityBase implements OnDestroy {
8384
/**
8485
* An @Input property that sets the value of `id` attribute. If not provided it will be automatically generated.
8586
*
@@ -536,6 +537,12 @@ export class IgxChipComponent extends DisplayDensityBase {
536537
*/
537538
public hideBaseElement = false;
538539

540+
/**
541+
* @hidden
542+
* @internal
543+
*/
544+
public destroy$ = new Subject();
545+
539546
protected _tabIndex = null;
540547
protected _selected = false;
541548
protected _selectedItemClass = 'igx-chip__item--selected';
@@ -854,4 +861,9 @@ export class IgxChipComponent extends DisplayDensityBase {
854861
}
855862
}
856863
}
864+
865+
public ngOnDestroy(): void {
866+
this.destroy$.next();
867+
this.destroy$.complete();
868+
}
857869
}

projects/igniteui-angular/src/lib/chips/chips-area.component.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -223,20 +223,20 @@ export class IgxChipsAreaComponent implements DoCheck, AfterViewInit, OnDestroy
223223
const changes = this._differ.diff(this.chipsList.toArray());
224224
if (changes) {
225225
changes.forEachAddedItem((addedChip) => {
226-
addedChip.item.moveStart.pipe(takeUntil(this.destroy$)).subscribe((args) => {
226+
addedChip.item.moveStart.pipe(takeUntil(addedChip.item.destroy$)).subscribe((args) => {
227227
this.onChipMoveStart(args);
228228
});
229-
addedChip.item.moveEnd.pipe(takeUntil(this.destroy$)).subscribe((args) => {
229+
addedChip.item.moveEnd.pipe(takeUntil(addedChip.item.destroy$)).subscribe((args) => {
230230
this.onChipMoveEnd(args);
231231
});
232-
addedChip.item.dragEnter.pipe(takeUntil(this.destroy$)).subscribe((args) => {
232+
addedChip.item.dragEnter.pipe(takeUntil(addedChip.item.destroy$)).subscribe((args) => {
233233
this.onChipDragEnter(args);
234234
});
235-
addedChip.item.keyDown.pipe(takeUntil(this.destroy$)).subscribe((args) => {
235+
addedChip.item.keyDown.pipe(takeUntil(addedChip.item.destroy$)).subscribe((args) => {
236236
this.onChipKeyDown(args);
237237
});
238238
if (addedChip.item.selectable) {
239-
addedChip.item.selectedChanging.pipe(takeUntil(this.destroy$)).subscribe((args) => {
239+
addedChip.item.selectedChanging.pipe(takeUntil(addedChip.item.destroy$)).subscribe((args) => {
240240
this.onChipSelectionChange(args);
241241
});
242242
}

0 commit comments

Comments
 (0)