Skip to content

Commit 606a805

Browse files
authored
fix: updating table source (#326)
* fix: updating table source * refactor: add debounce time and fix column's datasource dependency * refactor: fixing lint and formatting * refactor: adding comment
1 parent 2cf5d71 commit 606a805

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

projects/components/src/table/data/table-cdk-data-source.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { DataSource } from '@angular/cdk/collections';
22
import { forkJoinSafeEmpty, isEqualIgnoreFunctions, RequireBy, sortUnknown } from '@hypertrace/common';
33
import { combineLatest, NEVER, Observable, of, Subject, throwError } from 'rxjs';
4-
import { catchError, map, mergeMap, startWith, switchMap, tap } from 'rxjs/operators';
4+
import { catchError, debounceTime, map, mergeMap, startWith, switchMap, tap } from 'rxjs/operators';
55
import { PageEvent } from '../../paginator/page.event';
66
import { PaginationProvider } from '../../paginator/paginator-api';
77
import { RowStateChange, StatefulTableRow, StatefulTreeTableRow, TableFilter, TableRow } from '../table-api';
@@ -54,6 +54,10 @@ export class TableCdkDataSource implements DataSource<TableRow> {
5454
this.buildChangeObservable()
5555
.pipe(
5656
tap(() => this.loadingStateSubject.next({ loading$: NEVER })),
57+
/**
58+
* Below debouce is needed to handle multiple emission from buildChangeObservable.
59+
*/
60+
debounceTime(100),
5761
mergeMap(([columnConfigs, pageEvent, filters, changedColumn, changedRow]) =>
5862
this.buildDataObservable(columnConfigs, pageEvent, filters, changedColumn, changedRow)
5963
)

projects/components/src/table/table.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ export class TableComponent
519519
}
520520

521521
private buildColumnConfigExtendeds(): TableColumnConfigExtended[] {
522-
if (!this.columnConfigs || !this.dataSource) {
522+
if (!this.columnConfigs) {
523523
return [];
524524
}
525525

projects/components/src/table/table.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export class TableService {
3434

3535
public buildExtendedColumnConfigs(
3636
columnConfigs: TableColumnConfig[],
37-
dataSource: TableCdkDataSource,
37+
dataSource?: TableCdkDataSource,
3838
attributes: FilterAttribute[] = []
3939
): TableColumnConfigExtended[] {
4040
return columnConfigs.map(columnConfig => {
@@ -52,7 +52,7 @@ export class TableService {
5252
attribute: attribute,
5353
renderer: rendererConstructor,
5454
parser: new parserConstructor(this.rootInjector),
55-
filterValues: dataSource.getFilterValues(columnConfig.id)
55+
filterValues: dataSource?.getFilterValues(columnConfig.id) ?? []
5656
};
5757
});
5858
}

0 commit comments

Comments
 (0)