Browse Source

Feature/improve styling of benchmarks (#1131)

* Harmonize benchmark table styling

* Update changelog
pull/1132/head^2
Thomas Kaul 3 years ago
committed by GitHub
parent
commit
f127e7c61a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      CHANGELOG.md
  2. 1
      apps/client/src/app/components/home-market/home-market.html
  3. 52
      libs/ui/src/lib/benchmark/benchmark.component.html
  4. 1
      libs/ui/src/lib/benchmark/benchmark.component.ts
  5. 8
      libs/ui/src/lib/benchmark/benchmark.module.ts

1
CHANGELOG.md

@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ### Changed
- Simplified the initialization of the exchange rate service - Simplified the initialization of the exchange rate service
- Improved the styling of the benchmarks in the markets overview
## 1.177.0 - 04.08.2022 ## 1.177.0 - 04.08.2022

1
apps/client/src/app/components/home-market/home-market.html

@ -34,6 +34,7 @@
<ngx-skeleton-loader <ngx-skeleton-loader
*ngIf="isLoading" *ngIf="isLoading"
animation="pulse" animation="pulse"
class="px-2 py-3"
[theme]="{ [theme]="{
height: '1.5rem', height: '1.5rem',
width: '100%' width: '100%'

52
libs/ui/src/lib/benchmark/benchmark.component.html

@ -1,24 +1,19 @@
<table class="gf-table w-100"> <table class="gf-table w-100" mat-table [dataSource]="benchmarks">
<thead> <ng-container matColumnDef="name">
<tr class="mat-header-row"> <th *matHeaderCellDef class="px-2" i18n mat-header-cell>Index</th>
<th class="mat-header-cell px-1 py-2" i18n>Index</th> <td *matCellDef="let element" class="px-2" mat-cell>
<th class="mat-header-cell px-1 py-2 text-right"> {{ element?.name }}
</td>
</ng-container>
<ng-container matColumnDef="change">
<th *matHeaderCellDef class="text-right" mat-header-cell>
<span class="d-none d-sm-block text-nowrap" i18n <span class="d-none d-sm-block text-nowrap" i18n
>Change from All Time High</span >Change from All Time High</span
> >
<span class="d-block d-sm-none text-nowrap" i18n>from ATH</span> <span class="d-block d-sm-none text-nowrap" i18n>from ATH</span>
</th> </th>
<th class="mat-header-cell px-1 py-2 text-right" i18n></th> <td *matCellDef="let element" class="text-right" mat-cell>
</tr>
</thead>
<tbody>
<tr *ngFor="let benchmark of benchmarks" class="mat-row">
<td class="mat-cell px-1 py-2">
<div class="d-flex align-items-center">
{{ benchmark.name }}
</div>
</td>
<td class="mat-cell px-1 py-2 text-right">
<gf-value <gf-value
class="d-inline-block justify-content-end" class="d-inline-block justify-content-end"
size="medium" size="medium"
@ -26,25 +21,30 @@
[locale]="locale" [locale]="locale"
[ngClass]="{ [ngClass]="{
'text-danger': 'text-danger':
benchmark?.performances?.allTimeHigh?.performancePercent < 0, element?.performances?.allTimeHigh?.performancePercent < 0,
'text-success': 'text-success':
benchmark?.performances?.allTimeHigh?.performancePercent > 0 element?.performances?.allTimeHigh?.performancePercent > 0
}" }"
[value]=" [value]="
benchmark?.performances?.allTimeHigh?.performancePercent ?? element?.performances?.allTimeHigh?.performancePercent ?? undefined
undefined
" "
></gf-value> ></gf-value>
</td> </td>
<td class="mat-cell px-1 py-2"> </ng-container>
<ng-container matColumnDef="marketCondition">
<th *matHeaderCellDef mat-header-cell></th>
<td *matCellDef="let element" class="px-0" mat-cell>
<div <div
*ngIf="benchmark?.marketCondition" *ngIf="element?.marketCondition"
class="text-center" class="text-center"
[title]="benchmark?.marketCondition" [title]="element?.marketCondition"
> >
{{ resolveMarketCondition(benchmark.marketCondition).emoji }} {{ resolveMarketCondition(element.marketCondition).emoji }}
</div> </div>
</td> </td>
</tr> </ng-container>
</tbody>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
</table> </table>

1
libs/ui/src/lib/benchmark/benchmark.component.ts

@ -18,6 +18,7 @@ export class BenchmarkComponent implements OnChanges {
@Input() benchmarks: Benchmark[]; @Input() benchmarks: Benchmark[];
@Input() locale: string; @Input() locale: string;
public displayedColumns = ['name', 'change', 'marketCondition'];
public resolveMarketCondition = resolveMarketCondition; public resolveMarketCondition = resolveMarketCondition;
public constructor() {} public constructor() {}

8
libs/ui/src/lib/benchmark/benchmark.module.ts

@ -1,5 +1,6 @@
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { MatTableModule } from '@angular/material/table';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
import { GfValueModule } from '../value'; import { GfValueModule } from '../value';
@ -8,7 +9,12 @@ import { BenchmarkComponent } from './benchmark.component';
@NgModule({ @NgModule({
declarations: [BenchmarkComponent], declarations: [BenchmarkComponent],
exports: [BenchmarkComponent], exports: [BenchmarkComponent],
imports: [CommonModule, GfValueModule, NgxSkeletonLoaderModule], imports: [
CommonModule,
GfValueModule,
MatTableModule,
NgxSkeletonLoaderModule
],
schemas: [CUSTOM_ELEMENTS_SCHEMA] schemas: [CUSTOM_ELEMENTS_SCHEMA]
}) })
export class GfBenchmarkModule {} export class GfBenchmarkModule {}

Loading…
Cancel
Save