diff --git a/apps/client/src/app/components/transactions-table/transactions-table.component.ts b/apps/client/src/app/components/transactions-table/transactions-table.component.ts index 0e2677d24..5cc3ac699 100644 --- a/apps/client/src/app/components/transactions-table/transactions-table.component.ts +++ b/apps/client/src/app/components/transactions-table/transactions-table.component.ts @@ -13,8 +13,8 @@ import { MatDialog } from '@angular/material/dialog'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { ActivatedRoute, Router } from '@angular/router'; +import { OrderWithAccount } from '@ghostfolio/api/app/order/interfaces/order-with-account.type'; import { DEFAULT_DATE_FORMAT } from '@ghostfolio/helper'; -import { Order as OrderModel } from '@prisma/client'; import { Subject, Subscription } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; @@ -32,15 +32,15 @@ export class TransactionsTableComponent @Input() deviceType: string; @Input() locale: string; @Input() showActions: boolean; - @Input() transactions: OrderModel[]; + @Input() transactions: OrderWithAccount[]; @Output() transactionDeleted = new EventEmitter(); - @Output() transactionToClone = new EventEmitter(); - @Output() transactionToUpdate = new EventEmitter(); + @Output() transactionToClone = new EventEmitter(); + @Output() transactionToUpdate = new EventEmitter(); @ViewChild(MatSort) sort: MatSort; - public dataSource: MatTableDataSource = new MatTableDataSource(); + public dataSource: MatTableDataSource = new MatTableDataSource(); public defaultDateFormat = DEFAULT_DATE_FORMAT; public displayedColumns = []; public isLoading = true; @@ -87,18 +87,19 @@ export class TransactionsTableComponent if (this.transactions) { this.dataSource = new MatTableDataSource(this.transactions); - this.dataSource.sort = this.sort; - - this.dataSource.filterPredicate = (data, filter: string) => { - const accumulator = (currentTerm, key) => { + this.dataSource.filterPredicate = (data, filter) => { + const accumulator = (currentTerm: string, key: string) => { return key === 'Account' ? currentTerm + data.Account.name : currentTerm + data[key]; }; - const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase(); + const dataString = Object.keys(data) + .reduce(accumulator, '') + .toLowerCase(); const transformedFilter = filter.trim().toLowerCase(); - return dataStr.indexOf(transformedFilter) !== -1; + return dataString.includes(transformedFilter); }; + this.dataSource.sort = this.sort; this.isLoading = false; } @@ -131,11 +132,11 @@ export class TransactionsTableComponent }); } - public onUpdateTransaction(aTransaction: OrderModel) { + public onUpdateTransaction(aTransaction: OrderWithAccount) { this.transactionToUpdate.emit(aTransaction); } - public onCloneTransaction(aTransaction: OrderModel) { + public onCloneTransaction(aTransaction: OrderWithAccount) { this.transactionToClone.emit(aTransaction); }