diff --git a/frontend/src/app/shared/components/fee-rate/fee-rate.component.html b/frontend/src/app/shared/components/fee-rate/fee-rate.component.html new file mode 100644 index 000000000..3b6ecc75e --- /dev/null +++ b/frontend/src/app/shared/components/fee-rate/fee-rate.component.html @@ -0,0 +1,4 @@ + + {{ fee / (weight / 4) | feeRounding:rounding }} sat/vB + {{ fee / weight | feeRounding:rounding }} sat/WU + \ No newline at end of file diff --git a/frontend/src/app/shared/components/fee-rate/fee-rate.component.scss b/frontend/src/app/shared/components/fee-rate/fee-rate.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/frontend/src/app/shared/components/fee-rate/fee-rate.component.ts b/frontend/src/app/shared/components/fee-rate/fee-rate.component.ts new file mode 100644 index 000000000..f48686ad5 --- /dev/null +++ b/frontend/src/app/shared/components/fee-rate/fee-rate.component.ts @@ -0,0 +1,26 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { Observable } from 'rxjs'; +import { StateService } from '../../../services/state.service'; + +@Component({ + selector: 'app-fee-rate', + templateUrl: './fee-rate.component.html', + styleUrls: ['./fee-rate.component.scss'] +}) +export class FeeRateComponent implements OnInit { + @Input() fee: number; + @Input() weight: number = 4; + @Input() rounding: string = null; + @Input() showUnit: boolean = true; + @Input() unitClass: string = 'symbol'; + + rateUnits$: Observable; + + constructor( + private stateService: StateService, + ) { } + + ngOnInit() { + this.rateUnits$ = this.stateService.rateUnits$; + } +} diff --git a/frontend/src/app/shared/pipes/fee-rounding/fee-rounding.pipe.ts b/frontend/src/app/shared/pipes/fee-rounding/fee-rounding.pipe.ts index 319698b23..554b0774b 100644 --- a/frontend/src/app/shared/pipes/fee-rounding/fee-rounding.pipe.ts +++ b/frontend/src/app/shared/pipes/fee-rounding/fee-rounding.pipe.ts @@ -9,7 +9,11 @@ export class FeeRoundingPipe implements PipeTransform { @Inject(LOCALE_ID) private locale: string, ) {} - transform(fee: number): string { + transform(fee: number, rounding = null): string { + if (rounding) { + return formatNumber(fee, this.locale, rounding); + } + if (fee >= 100) { return formatNumber(fee, this.locale, '1.0-0') } else if (fee < 10) { diff --git a/frontend/src/app/shared/shared.module.ts b/frontend/src/app/shared/shared.module.ts index 9d9606084..d68f1e4e0 100644 --- a/frontend/src/app/shared/shared.module.ts +++ b/frontend/src/app/shared/shared.module.ts @@ -83,6 +83,7 @@ import { IndexingProgressComponent } from '../components/indexing-progress/index import { SvgImagesComponent } from '../components/svg-images/svg-images.component'; import { ChangeComponent } from '../components/change/change.component'; import { SatsComponent } from './components/sats/sats.component'; +import { FeeRateComponent } from './components/fee-rate/fee-rate.component'; import { TruncateComponent } from './components/truncate/truncate.component'; import { SearchResultsComponent } from '../components/search-form/search-results/search-results.component'; import { TimestampComponent } from './components/timestamp/timestamp.component'; @@ -173,6 +174,7 @@ import { ClockComponent } from '../components/clock/clock.component'; SvgImagesComponent, ChangeComponent, SatsComponent, + FeeRateComponent, TruncateComponent, SearchResultsComponent, TimestampComponent, @@ -287,6 +289,7 @@ import { ClockComponent } from '../components/clock/clock.component'; SvgImagesComponent, ChangeComponent, SatsComponent, + FeeRateComponent, TruncateComponent, SearchResultsComponent, TimestampComponent, diff --git a/frontend/src/styles.scss b/frontend/src/styles.scss index aea8e8d6e..e5eb2272b 100644 --- a/frontend/src/styles.scss +++ b/frontend/src/styles.scss @@ -221,7 +221,7 @@ main { } .block-size, .blocks-container { - span { + .symbol { font-size: 16px; color: #fff !important; }