diff --git a/libs/components/src/badge/badge-list.component.html b/libs/components/src/badge/badge-list.component.html
index 0517925a8dd..63def19a210 100644
--- a/libs/components/src/badge/badge-list.component.html
+++ b/libs/components/src/badge/badge-list.component.html
@@ -5,7 +5,7 @@
class="tw-mx-1"
>
{{ item }}
- ,
+ ,
{{ "plusNMore" | i18n: (items.length - filteredItems.length).toString() }}
diff --git a/libs/components/src/badge/badge-list.component.ts b/libs/components/src/badge/badge-list.component.ts
index a333f940e03..6d59b69bf05 100644
--- a/libs/components/src/badge/badge-list.component.ts
+++ b/libs/components/src/badge/badge-list.component.ts
@@ -1,4 +1,4 @@
-import { Component, Input } from "@angular/core";
+import { Component, Input, OnChanges } from "@angular/core";
import { BadgeTypes } from "./badge.directive";
@@ -6,43 +6,30 @@ import { BadgeTypes } from "./badge.directive";
selector: "bit-badge-list",
templateUrl: "badge-list.component.html",
})
-export class BadgeListComponent {
- private _maxItems: number | null = null;
- private _items: string[] = [];
+export class BadgeListComponent implements OnChanges {
+ private _maxItems: number;
protected filteredItems: string[] = [];
+ protected isFiltered = false;
@Input() badgeType: BadgeTypes = "primary";
+ @Input() items: string[] = [];
@Input()
- get maxItems(): number | null {
+ get maxItems(): number | undefined {
return this._maxItems;
}
- set maxItems(value: number | null) {
- this._maxItems = value == null ? null : Math.max(1, value);
- this.updateFilteredItems();
+ set maxItems(value: number | undefined) {
+ this._maxItems = value == undefined ? undefined : Math.max(1, value);
}
- @Input()
- get items(): string[] {
- return this._items;
- }
-
- set items(value: string[]) {
- this._items = value;
- this.updateFilteredItems();
- }
-
- protected get isFiltered(): boolean {
- return this._items.length > this.filteredItems.length;
- }
-
- private updateFilteredItems() {
- if (this.maxItems == null) {
- this.filteredItems = this._items;
+ ngOnChanges() {
+ if (this.maxItems == undefined) {
+ this.filteredItems = this.items;
} else {
- this.filteredItems = this._items.slice(0, this.maxItems);
+ this.filteredItems = this.items.slice(0, this.maxItems);
}
+ this.isFiltered = this.items.length > this.filteredItems.length;
}
}