Skip to content

Commit 5c96fdd

Browse files
committed
fix(combo): use isEqual to handle both complex types and NaN/falsy values
1 parent 7c1b211 commit 5c96fdd

File tree

2 files changed

+3
-13
lines changed

2 files changed

+3
-13
lines changed

projects/igniteui-angular/src/lib/combo/combo.common.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import { noop, Subject } from 'rxjs';
3030
import { takeUntil } from 'rxjs/operators';
3131
import { DisplayDensityBase, DisplayDensityToken, IDisplayDensityOptions } from '../core/density';
3232
import { IgxSelectionAPIService } from '../core/selection';
33-
import { CancelableBrowserEventArgs, cloneArray, IBaseCancelableBrowserEventArgs, IBaseEventArgs, isNaNvalue, rem } from '../core/utils';
33+
import { CancelableBrowserEventArgs, cloneArray, IBaseCancelableBrowserEventArgs, IBaseEventArgs, rem } from '../core/utils';
3434
import { SortingDirection } from '../data-operations/sorting-strategy';
3535
import { IForOfState, IgxForOfDirective } from '../directives/for-of/for_of.directive';
3636
import { IgxIconService } from '../icon/icon.service';
@@ -46,6 +46,7 @@ import {
4646
import { IComboItemAdditionEvent, IComboSearchInputEventArgs } from './public_api';
4747
import { ComboResourceStringsEN, IComboResourceStrings } from '../core/i18n/combo-resources';
4848
import { getCurrentResourceStrings } from '../core/i18n/resources';
49+
import { isEqual } from 'lodash-es';
4950

5051
export const IGX_COMBO_COMPONENT = /*@__PURE__*/new InjectionToken<IgxComboBase>('IgxComboComponentToken');
5152

@@ -1282,9 +1283,7 @@ export abstract class IgxComboBaseDirective extends DisplayDensityBase implement
12821283
}
12831284

12841285
return keys.map(key => {
1285-
const item = isNaNvalue(key)
1286-
? this.data.find(entry => isNaNvalue(entry[this.valueKey]))
1287-
: this.data.find(entry => entry[this.valueKey] === key);
1286+
const item = this.data.find(entry => isEqual(entry[this.valueKey], key));
12881287

12891288
return item !== undefined ? item : { [this.valueKey]: key };
12901289
});

projects/igniteui-angular/src/lib/core/utils.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -226,15 +226,6 @@ export const isEqual = (obj1, obj2): boolean => {
226226
return obj1 === obj2;
227227
};
228228

229-
/**
230-
* Checks if provided variable is the value NaN
231-
*
232-
* @param value Value to check
233-
* @returns true if provided variable is NaN
234-
* @hidden
235-
*/
236-
export const isNaNvalue = (value: any): boolean => isNaN(value) && value !== undefined && typeof value !== 'string';
237-
238229
/**
239230
* Utility service taking care of various utility functions such as
240231
* detecting browser features, general cross browser DOM manipulation, etc.

0 commit comments

Comments
 (0)