From 981c066d143ab05a8626b16129b04390649da7ff Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Thu, 30 Nov 2023 18:49:02 +0100 Subject: [PATCH] Refactoring --- .../account-detail-dialog.html | 91 ++++++++++++++----- .../account-detail-dialog.module.ts | 2 +- libs/common/src/lib/interfaces/index.ts | 2 +- .../account-balances.component.html | 30 ++++-- .../account-balances.component.ts | 25 +++-- .../account-balances.module.ts | 32 +------ 6 files changed, 111 insertions(+), 71 deletions(-) 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 b0f9ba376..6682e6ee7 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 @@ -1,50 +1,99 @@ - +
- +
- +
- Cash Balance + Cash Balance
- Equity + Equity
- Activities + Activities
Platform
- - - + + + Activities + - - + + Balances +
- \ No newline at end of file + diff --git a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.module.ts b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.module.ts index 93b5649bb..83ac5b6ea 100644 --- a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.module.ts +++ b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.module.ts @@ -6,8 +6,8 @@ import { MatTabsModule } from '@angular/material/tabs'; import { GfDialogFooterModule } from '@ghostfolio/client/components/dialog-footer/dialog-footer.module'; import { GfDialogHeaderModule } from '@ghostfolio/client/components/dialog-header/dialog-header.module'; import { GfInvestmentChartModule } from '@ghostfolio/client/components/investment-chart/investment-chart.module'; -import { GfActivitiesTableModule } from '@ghostfolio/ui/activities-table/activities-table.module'; import { GfAccountBalancesModule } from '@ghostfolio/ui/account-balances/account-balances.module'; +import { GfActivitiesTableModule } from '@ghostfolio/ui/activities-table/activities-table.module'; import { GfValueModule } from '@ghostfolio/ui/value'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts index b57b6abf9..7634aad7b 100644 --- a/libs/common/src/lib/interfaces/index.ts +++ b/libs/common/src/lib/interfaces/index.ts @@ -1,6 +1,6 @@ import type { Access } from './access.interface'; -import type { Accounts } from './accounts.interface'; import type { AccountBalance } from './account-balance.interface'; +import type { Accounts } from './accounts.interface'; import type { AdminData } from './admin-data.interface'; import type { AdminJobs } from './admin-jobs.interface'; import type { AdminMarketDataDetails } from './admin-market-data-details.interface'; 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 c9c5966d4..78bfb6c38 100644 --- a/libs/ui/src/lib/account-balances/account-balances.component.html +++ b/libs/ui/src/lib/account-balances/account-balances.component.html @@ -1,15 +1,27 @@ - - +
- - + + - - + + - - -
Date {{balance.date}} Date + + Value {{balance.value}} + Value + +
+ +
+
\ No newline at end of file + + + 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 104dab886..d31b6d504 100644 --- a/libs/ui/src/lib/account-balances/account-balances.component.ts +++ b/libs/ui/src/lib/account-balances/account-balances.component.ts @@ -1,10 +1,12 @@ import { ChangeDetectionStrategy, + ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core'; +import { MatTableDataSource } from '@angular/material/table'; import { DataService } from '@ghostfolio/client/services/data.service'; import { AccountBalance } from '@ghostfolio/common/interfaces'; import { Subject, takeUntil } from 'rxjs'; @@ -17,26 +19,33 @@ import { Subject, takeUntil } from 'rxjs'; }) export class AccountBalancesComponent implements OnDestroy, OnInit { @Input() accountId: string; + @Input() currency: string; + @Input() locale: string; - public balances: AccountBalance[]; + public dataSource: MatTableDataSource = + new MatTableDataSource(); public displayedColumns: string[] = ['date', 'value']; private unsubscribeSubject = new Subject(); - public constructor(private dataService: DataService) {} + public constructor( + private changeDetectorRef: ChangeDetectorRef, + private dataService: DataService + ) {} + + public ngOnInit() { + this.fetchBalances(); + } public fetchBalances() { this.dataService .fetchAccountBalances(this.accountId) .pipe(takeUntil(this.unsubscribeSubject)) .subscribe(({ balances }) => { - console.log({ balances }); - this.balances = balances; - }); - } + this.dataSource = new MatTableDataSource(balances); - public ngOnInit() { - this.fetchBalances(); + this.changeDetectorRef.markForCheck(); + }); } public ngOnDestroy() { 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 eb4a994f6..1e570d36e 100644 --- a/libs/ui/src/lib/account-balances/account-balances.module.ts +++ b/libs/ui/src/lib/account-balances/account-balances.module.ts @@ -1,44 +1,14 @@ import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { MatCheckboxModule } from '@angular/material/checkbox'; -import { MatMenuModule } from '@angular/material/menu'; -import { MatPaginatorModule } from '@angular/material/paginator'; -import { MatSortModule } from '@angular/material/sort'; import { MatTableModule } from '@angular/material/table'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { RouterModule } from '@angular/router'; -import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; -import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; -import { GfActivitiesFilterModule } from '@ghostfolio/ui/activities-filter/activities-filter.module'; -import { GfActivityTypeModule } from '@ghostfolio/ui/activity-type'; -import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info'; import { GfValueModule } from '@ghostfolio/ui/value'; -import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { AccountBalancesComponent } from './account-balances.component'; @NgModule({ declarations: [AccountBalancesComponent], exports: [AccountBalancesComponent], - imports: [ - CommonModule, - GfActivitiesFilterModule, - GfActivityTypeModule, - GfNoTransactionsInfoModule, - GfSymbolIconModule, - GfSymbolModule, - GfValueModule, - MatButtonModule, - MatCheckboxModule, - MatMenuModule, - MatPaginatorModule, - MatSortModule, - MatTableModule, - MatTooltipModule, - NgxSkeletonLoaderModule, - RouterModule - ], + imports: [CommonModule, GfValueModule, MatTableModule], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class GfAccountBalancesModule {}