From bd6db1d11dbe4639e154db728bc0b190e34256fd Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Fri, 1 Dec 2023 20:45:13 +0100 Subject: [PATCH] Refactoring --- .../account-detail-dialog.component.ts | 12 ++++++---- .../account-detail-dialog.html | 11 +++++---- .../account-balances.component.html | 19 +++++++++++---- .../account-balances.component.scss | 14 ----------- .../account-balances.component.ts | 23 ++++++++++++------- .../account-balances.module.ts | 3 ++- 6 files changed, 46 insertions(+), 36 deletions(-) diff --git a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts index 284bfcca2..b3a916da9 100644 --- a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts +++ b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts @@ -29,14 +29,15 @@ import { AccountDetailDialogParams } from './interfaces/interfaces'; styleUrls: ['./account-detail-dialog.component.scss'] }) export class AccountDetailDialog implements OnDestroy, OnInit { + public activities: OrderWithAccount[]; public balance: number; public currency: string; public equity: number; public hasImpersonationId: boolean; public historicalDataItems: HistoricalDataItem[]; + public isLoadingActivities: boolean; public isLoadingChart: boolean; public name: string; - public orders: OrderWithAccount[]; public platformName: string; public transactionCount: number; public user: User; @@ -64,6 +65,7 @@ export class AccountDetailDialog implements OnDestroy, OnInit { } public ngOnInit() { + this.isLoadingActivities = true; this.isLoadingChart = true; this.dataService @@ -103,7 +105,9 @@ export class AccountDetailDialog implements OnDestroy, OnInit { }) .pipe(takeUntil(this.unsubscribeSubject)) .subscribe(({ activities }) => { - this.orders = activities; + this.activities = activities; + + this.isLoadingActivities = false; this.changeDetectorRef.markForCheck(); }); @@ -153,8 +157,8 @@ export class AccountDetailDialog implements OnDestroy, OnInit { public onExport() { this.dataService .fetchExport( - this.orders.map((order) => { - return order.id; + this.activities.map(({ id }) => { + return id; }) ) .pipe(takeUntil(this.unsubscribeSubject)) diff --git a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html index 6682e6ee7..5ec7ec0e9 100644 --- a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html +++ b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html @@ -64,11 +64,15 @@ - + Activities - Balances + Cash Balances diff --git a/libs/ui/src/lib/account-balances/account-balances.component.html b/libs/ui/src/lib/account-balances/account-balances.component.html index 78bfb6c38..81f8a8192 100644 --- a/libs/ui/src/lib/account-balances/account-balances.component.html +++ b/libs/ui/src/lib/account-balances/account-balances.component.html @@ -1,21 +1,30 @@ - +
- + -
Date + Date + - Value + + Value
diff --git a/libs/ui/src/lib/account-balances/account-balances.component.scss b/libs/ui/src/lib/account-balances/account-balances.component.scss index ea3dad292..b5b58f67e 100644 --- a/libs/ui/src/lib/account-balances/account-balances.component.scss +++ b/libs/ui/src/lib/account-balances/account-balances.component.scss @@ -2,18 +2,4 @@ :host { display: block; - - .activities { - overflow-x: auto; - - .mat-mdc-table { - th { - ::ng-deep { - .mat-sort-header-container { - justify-content: inherit; - } - } - } - } - } } diff --git a/libs/ui/src/lib/account-balances/account-balances.component.ts b/libs/ui/src/lib/account-balances/account-balances.component.ts index d31b6d504..681bb4578 100644 --- a/libs/ui/src/lib/account-balances/account-balances.component.ts +++ b/libs/ui/src/lib/account-balances/account-balances.component.ts @@ -4,11 +4,14 @@ import { Component, Input, OnDestroy, - OnInit + OnInit, + ViewChild } from '@angular/core'; +import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { DataService } from '@ghostfolio/client/services/data.service'; import { AccountBalance } from '@ghostfolio/common/interfaces'; +import { get } from 'lodash'; import { Subject, takeUntil } from 'rxjs'; @Component({ @@ -19,9 +22,10 @@ import { Subject, takeUntil } from 'rxjs'; }) export class AccountBalancesComponent implements OnDestroy, OnInit { @Input() accountId: string; - @Input() currency: string; @Input() locale: string; + @ViewChild(MatSort) sort: MatSort; + public dataSource: MatTableDataSource = new MatTableDataSource(); public displayedColumns: string[] = ['date', 'value']; @@ -37,19 +41,22 @@ export class AccountBalancesComponent implements OnDestroy, OnInit { this.fetchBalances(); } - public fetchBalances() { + public ngOnDestroy() { + this.unsubscribeSubject.next(); + this.unsubscribeSubject.complete(); + } + + private fetchBalances() { this.dataService .fetchAccountBalances(this.accountId) .pipe(takeUntil(this.unsubscribeSubject)) .subscribe(({ balances }) => { this.dataSource = new MatTableDataSource(balances); + this.dataSource.sort = this.sort; + this.dataSource.sortingDataAccessor = get; + this.changeDetectorRef.markForCheck(); }); } - - public ngOnDestroy() { - this.unsubscribeSubject.next(); - this.unsubscribeSubject.complete(); - } } diff --git a/libs/ui/src/lib/account-balances/account-balances.module.ts b/libs/ui/src/lib/account-balances/account-balances.module.ts index 1e570d36e..cc8fb9677 100644 --- a/libs/ui/src/lib/account-balances/account-balances.module.ts +++ b/libs/ui/src/lib/account-balances/account-balances.module.ts @@ -1,5 +1,6 @@ import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { MatSortModule } from '@angular/material/sort'; import { MatTableModule } from '@angular/material/table'; import { GfValueModule } from '@ghostfolio/ui/value'; @@ -8,7 +9,7 @@ import { AccountBalancesComponent } from './account-balances.component'; @NgModule({ declarations: [AccountBalancesComponent], exports: [AccountBalancesComponent], - imports: [CommonModule, GfValueModule, MatTableModule], + imports: [CommonModule, GfValueModule, MatSortModule, MatTableModule], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class GfAccountBalancesModule {}