Browse Source

Improve loading state

pull/7841/head
Thomas Kaul 1 month ago
parent
commit
edf67ab2cd
  1. 62
      apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
  2. 10
      apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts

62
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html

@ -9,25 +9,36 @@
/>
</div>
</div>
<div
class="flex-nowrap px-3 py-1 row"
[hidden]="summary?.activityCount === null"
>
<div class="d-flex flex-grow-1 indent-1 text-truncate">
{{ summary?.activityCount }}
<ng-container i18n>{summary?.activityCount, plural,
=1 {activity}
other {activities}
}</ng-container>
<span
class="align-items-center d-none d-sm-flex ml-1"
matTooltipPosition="above"
[matTooltip]="buyAndSellActivitiesTooltip"
>
<ion-icon name="information-circle-outline" />
</span>
@if (isLoading) {
<div class="flex-nowrap px-3 py-1 row">
<div class="d-flex flex-grow-1 indent-1 text-truncate">
<ngx-skeleton-loader
animation="pulse"
[theme]="{ height: '1rem', width: '6rem' }"
/>
</div>
</div>
</div>
} @else {
<div
class="flex-nowrap px-3 py-1 row"
[hidden]="summary?.activityCount === null"
>
<div class="d-flex flex-grow-1 indent-1 text-truncate">
{{ summary?.activityCount }}
<ng-container i18n>{summary?.activityCount, plural,
=1 {activity}
other {activities}
}</ng-container>
<span
class="align-items-center d-none d-sm-flex ml-1"
matTooltipPosition="above"
[matTooltip]="buyAndSellActivitiesTooltip"
>
<ion-icon name="information-circle-outline" />
</span>
</div>
</div>
}
<div class="row">
<div class="col"><hr /></div>
</div>
@ -127,11 +138,16 @@
<div class="flex-nowrap px-3 py-1 row">
<div class="flex-grow-1 indent-1 text-truncate">
<ng-container i18n>Net Performance</ng-container>
<abbr
class="d-none d-sm-inline-block initialism ml-2 text-muted"
title="Return on Average Investment"
>(ROAI)</abbr
>
@if (
user?.settings?.performanceCalculationType ===
PerformanceCalculationType.ROAI
) {
<abbr
class="d-none d-sm-inline-block initialism ml-2 text-muted"
title="Return on Average Investment"
>(ROAI)</abbr
>
}
</div>
<div class="flex-column flex-wrap justify-content-end">
<gf-value

10
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts

@ -1,6 +1,7 @@
import { NUMERICAL_PRECISION_THRESHOLD_6_FIGURES } from '@ghostfolio/common/config';
import { getDateFnsLocale, getLocale } from '@ghostfolio/common/helper';
import { PortfolioSummary, User } from '@ghostfolio/common/interfaces';
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
import { translate } from '@ghostfolio/ui/i18n';
import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfValueComponent } from '@ghostfolio/ui/value';
@ -23,10 +24,16 @@ import {
informationCircleOutline
} from 'ionicons/icons';
import { isNumber } from 'lodash';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [GfValueComponent, IonIcon, MatTooltipModule],
imports: [
GfValueComponent,
IonIcon,
MatTooltipModule,
NgxSkeletonLoaderModule
],
selector: 'gf-portfolio-summary',
styleUrls: ['./portfolio-summary.component.scss'],
templateUrl: './portfolio-summary.component.html'
@ -47,6 +54,7 @@ export class GfPortfolioSummaryComponent implements OnChanges {
protected readonly buyAndSellActivitiesTooltip = translate(
'BUY_AND_SELL_ACTIVITIES_TOOLTIP'
);
protected readonly PerformanceCalculationType = PerformanceCalculationType;
protected isCashExpanded = false;
protected isHoldingsExpanded = false;

Loading…
Cancel
Save