Browse Source

feat(lib): make displayedColumns a computed signal

pull/6306/head
KenTandrian 2 months ago
parent
commit
261e66e57a
  1. 4
      libs/ui/src/lib/holdings-table/holdings-table.component.html
  2. 28
      libs/ui/src/lib/holdings-table/holdings-table.component.ts

4
libs/ui/src/lib/holdings-table/holdings-table.component.html

@ -177,9 +177,9 @@
</td>
</ng-container>
<tr *matHeaderRowDef="displayedColumns" mat-header-row></tr>
<tr *matHeaderRowDef="displayedColumns()" mat-header-row></tr>
<tr
*matRowDef="let row; columns: displayedColumns"
*matRowDef="let row; columns: displayedColumns()"
mat-row
[ngClass]="{
'cursor-pointer':

28
libs/ui/src/lib/holdings-table/holdings-table.component.ts

@ -56,7 +56,6 @@ export class GfHoldingsTableComponent implements OnChanges, OnDestroy {
@Output() holdingClicked = new EventEmitter<AssetProfileIdentifier>();
public displayedColumns: string[] = [];
public ignoreAssetSubClasses = [AssetSubClass.CASH];
public routeQueryParams: Subscription;
@ -75,28 +74,33 @@ export class GfHoldingsTableComponent implements OnChanges, OnDestroy {
return dataSource;
});
protected readonly isLoading = computed(() => !this.holdings());
private readonly unsubscribeSubject = new Subject<void>();
public ngOnChanges() {
this.displayedColumns = ['icon', 'nameWithSymbol', 'dateOfFirstActivity'];
protected readonly displayedColumns = computed(() => {
const columns = ['icon', 'nameWithSymbol', 'dateOfFirstActivity'];
if (this.hasPermissionToShowQuantities()) {
this.displayedColumns.push('quantity');
columns.push('quantity');
}
if (this.hasPermissionToShowValues()) {
this.displayedColumns.push('valueInBaseCurrency');
columns.push('valueInBaseCurrency');
}
this.displayedColumns.push('allocationInPercentage');
columns.push('allocationInPercentage');
if (this.hasPermissionToShowValues()) {
this.displayedColumns.push('performance');
columns.push('performance');
}
this.displayedColumns.push('performanceInPercentage');
columns.push('performanceInPercentage');
return columns;
});
protected readonly isLoading = computed(() => !this.holdings());
private readonly unsubscribeSubject = new Subject<void>();
public ngOnChanges() {
return;
}
public onOpenHoldingDialog({ dataSource, symbol }: AssetProfileIdentifier) {

Loading…
Cancel
Save