Merge pull request #5112 from mempool/mononaut/polish-acc-pie

Polish acceleration pie chart section
This commit is contained in:
wiz 2024-05-30 17:58:58 +09:00 committed by GitHub
commit a9ad892495
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 75 additions and 23 deletions

View File

@ -1,8 +1,8 @@
<table> <table>
<tbody> <tbody>
<tr> <tr>
<td class="td-width" i18n="transaction.accelerated-to-feerate|Accelerated to feerate">Accelerated to</td> <td class="td-width field-label" i18n="transaction.accelerated-to-feerate|Accelerated to feerate">Accelerated to</td>
<td> <td class="field-value">
<div class="effective-fee-container"> <div class="effective-fee-container">
@if (accelerationInfo?.acceleratedFeeRate && (!tx.effectiveFeePerVsize || accelerationInfo.acceleratedFeeRate >= tx.effectiveFeePerVsize)) { @if (accelerationInfo?.acceleratedFeeRate && (!tx.effectiveFeePerVsize || accelerationInfo.acceleratedFeeRate >= tx.effectiveFeePerVsize)) {
<app-fee-rate [fee]="accelerationInfo.acceleratedFeeRate"></app-fee-rate> <app-fee-rate [fee]="accelerationInfo.acceleratedFeeRate"></app-fee-rate>
@ -11,24 +11,30 @@
} }
</div> </div>
</td> </td>
<td rowspan="2" *ngIf="tx && (tx.acceleratedBy || accelerationInfo) && miningStats" class="text-right" style="width: 100%;"> <td class="pie-chart" rowspan="2">
<div class="chart-container" style="width: 100px; margin-left:auto;"> <div class="chart-container">
@if (tx && (tx.acceleratedBy || accelerationInfo) && miningStats) {
<div <div
echarts echarts
*browserOnly *browserOnly
class="chart" class="chart"
[initOpts]="chartInitOptions" [initOpts]="chartInitOptions"
[options]="chartOptions" [options]="chartOptions"
style="height: 72px" style="height: 72px; width: 72px;"
(chartInit)="onChartInit($event)" (chartInit)="onChartInit($event)"
></div> ></div>
} @else {
<div class="chart-loading">
<div class="spinner-border text-light"></div>
</div>
}
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="td-width" i18n="transaction.accelerated-by-hashrate|Accelerated to hashrate">Accelerated by</td> <td class="td-width field-label" i18n="transaction.accelerated-by-hashrate|Accelerated to hashrate">Accelerated by</td>
<td *ngIf="acceleratedByPercentage"> <td class="field-value" *ngIf="acceleratedByPercentage">
{{ acceleratedByPercentage }} <span class="symbol">of hashrate</span> {{ acceleratedByPercentage }} <span class="symbol hashrate-label">of hashrate</span>
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@ -7,3 +7,44 @@
min-width: 175px; min-width: 175px;
} }
} }
.field-label {
@media (max-width: 849px) {
text-align: left;
}
@media (max-width: 649px) {
width: auto;
min-width: auto;
}
}
.field-value {
@media (max-width: 849px) {
width: 100%;
}
.hashrate-label {
@media (max-width: 420px) {
display: none;
}
}
}
.pie-chart {
width: 100%;
vertical-align: middle;
text-align: center;
.chart-container {
width: 72px;
height: 100%;
margin-left: auto;
}
@media (max-width: 850px) {
width: 150px;
}
@media (max-width: 420px) {
padding-left: 0;
}
}

View File

@ -83,7 +83,7 @@ export class ActiveAccelerationBox implements OnChanges {
this.acceleratedByPercentage = ((totalAcceleratedHashrate / parseFloat(this.miningStats.lastEstimatedHashrate)) * 100).toFixed(1) + '%'; this.acceleratedByPercentage = ((totalAcceleratedHashrate / parseFloat(this.miningStats.lastEstimatedHashrate)) * 100).toFixed(1) + '%';
data.push(getDataItem( data.push(getDataItem(
totalAcceleratedHashrate, totalAcceleratedHashrate,
'var(--tertiary)', 'var(--mainnet-alt)',
`${this.acceleratedByPercentage} accelerating`, `${this.acceleratedByPercentage} accelerating`,
) as PieSeriesOption); ) as PieSeriesOption);
const notAcceleratedByPercentage = ((1 - (totalAcceleratedHashrate / parseFloat(this.miningStats.lastEstimatedHashrate))) * 100).toFixed(1) + '%'; const notAcceleratedByPercentage = ((1 - (totalAcceleratedHashrate / parseFloat(this.miningStats.lastEstimatedHashrate))) * 100).toFixed(1) + '%';

View File

@ -380,7 +380,12 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
this.txInBlockIndex = this.mempoolPosition.block; this.txInBlockIndex = this.mempoolPosition.block;
if (txPosition.cpfp !== undefined) { if (txPosition.cpfp !== undefined) {
if (txPosition.position.acceleratedBy) {
txPosition.cpfp.acceleratedBy = txPosition.position.acceleratedBy;
}
this.setCpfpInfo(txPosition.cpfp); this.setCpfpInfo(txPosition.cpfp);
} else if ((this.tx?.acceleration && txPosition.position.acceleratedBy)) {
this.tx.acceleratedBy = txPosition.position.acceleratedBy;
} }
} }
} else { } else {