Bisq dashboard: Change color between red/green when price changes

This commit is contained in:
softsimon 2021-05-13 19:23:43 +04:00
parent bbd21c9401
commit 5aa57d6df9
No known key found for this signature in database
GPG Key ID: 488D7DCFB5A430D7
4 changed files with 35 additions and 2 deletions

View File

@ -8,7 +8,9 @@
<div class="card-body"> <div class="card-body">
<h5 class="card-title" i18n="bisq-dashboard.price-index-title">Bisq Price Index</h5> <h5 class="card-title" i18n="bisq-dashboard.price-index-title">Bisq Price Index</h5>
<div class="big-fiat"> <div class="big-fiat">
<span class="green-color" *ngIf="usdPrice$ | async as usdPrice; else loading">{{ usdPrice | currency:'USD':'symbol':'1.2-2' }}</span> <span *ngIf="usdPrice$ | async as usdPrice; else loading">
<span [appColoredPrice]="usdPrice">{{ usdPrice | currency:'USD':'symbol':'1.2-2' }}</span>
</span>
</div> </div>
</div> </div>
</div> </div>
@ -18,7 +20,9 @@
<div class="card-body"> <div class="card-body">
<h5 class="card-title" i18n="bisq-dashboard.market-price-title">Bisq Market Price</h5> <h5 class="card-title" i18n="bisq-dashboard.market-price-title">Bisq Market Price</h5>
<div class="big-fiat"> <div class="big-fiat">
<span class="green-color" *ngIf="bisqMarketPrice; else loading">{{ bisqMarketPrice | currency:'USD':'symbol':'1.2-2' }}</span> <span class="green-color" *ngIf="bisqMarketPrice; else loading">
<span [appColoredPrice]="bisqMarketPrice">{{ bisqMarketPrice | currency:'USD':'symbol':'1.2-2' }}</span>
</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -0,0 +1,22 @@
import { Directive, ElementRef, Input, OnChanges } from '@angular/core';
@Directive({
selector: '[appColoredPrice]',
})
export class ColoredPriceDirective implements OnChanges {
@Input() appColoredPrice: number;
previousValue = null;
constructor(
private element: ElementRef
) { }
ngOnChanges() {
if (this.previousValue && this.appColoredPrice < this.previousValue) {
this.element.nativeElement.classList.add('red-color');
} else {
this.element.nativeElement.classList.remove('red-color');
}
this.previousValue = this.appColoredPrice;
}
}

View File

@ -19,6 +19,7 @@ import { TxFeaturesComponent } from '../components/tx-features/tx-features.compo
import { TxFeeRatingComponent } from '../components/tx-fee-rating/tx-fee-rating.component'; import { TxFeeRatingComponent } from '../components/tx-fee-rating/tx-fee-rating.component';
import { ReactiveFormsModule } from '@angular/forms'; import { ReactiveFormsModule } from '@angular/forms';
import { LanguageSelectorComponent } from '../components/language-selector/language-selector.component'; import { LanguageSelectorComponent } from '../components/language-selector/language-selector.component';
import { ColoredPriceDirective } from './directives/colored-price.directive';
@NgModule({ @NgModule({
declarations: [ declarations: [
@ -39,6 +40,7 @@ import { LanguageSelectorComponent } from '../components/language-selector/langu
CeilPipe, CeilPipe,
ShortenStringPipe, ShortenStringPipe,
Decimal2HexPipe, Decimal2HexPipe,
ColoredPriceDirective,
], ],
imports: [ imports: [
CommonModule, CommonModule,
@ -77,6 +79,7 @@ import { LanguageSelectorComponent } from '../components/language-selector/langu
CeilPipe, CeilPipe,
ShortenStringPipe, ShortenStringPipe,
Decimal2HexPipe, Decimal2HexPipe,
ColoredPriceDirective,
] ]
}) })
export class SharedModule {} export class SharedModule {}

View File

@ -218,6 +218,10 @@ body {
color: #3bcc49; color: #3bcc49;
} }
.red-color {
color: #dc3545;
}
.yellow-color { .yellow-color {
color: #ffd800; color: #ffd800;
} }