mirror of
https://github.com/mempool/mempool.git
synced 2024-11-20 02:11:49 +01:00
Improve difficulty tooltip display on mobile
This commit is contained in:
parent
cac2a984ab
commit
d06fe83bd9
@ -4,38 +4,56 @@
|
|||||||
class="difficulty-tooltip"
|
class="difficulty-tooltip"
|
||||||
[style.visibility]="status ? 'visible' : 'hidden'"
|
[style.visibility]="status ? 'visible' : 'hidden'"
|
||||||
[style.left]="tooltipPosition.x + 'px'"
|
[style.left]="tooltipPosition.x + 'px'"
|
||||||
[style.top]="tooltipPosition.y + 'px'"
|
[style.top]="tooltipPosition.y + (isMobile ? -60 : 0) + 'px'"
|
||||||
>
|
>
|
||||||
<ng-container [ngSwitch]="status">
|
<ng-container *ngIf="!isMobile" [ngSwitch]="status">
|
||||||
<ng-container *ngSwitchCase="'mined'">
|
<ng-container *ngSwitchCase="'mined'">
|
||||||
<ng-container *ngIf="isAhead">
|
<ng-container *ngIf="isAhead">
|
||||||
<ng-container *ngTemplateOutlet="expected === 1 ? blocksSingular : blocksPlural; context: {$implicit: expected }"></ng-container>
|
<ng-container *ngTemplateOutlet="expected === 1 ? expectedMinedBlocksSingular : expectedMinedBlocksPlural; context: {$implicit: expected }"></ng-container>
|
||||||
<ng-template #blocksPlural let-i i18n="difficulty-box.expected-blocks">{{ i }} blocks expected</ng-template>
|
|
||||||
<ng-template #blocksSingular let-i i18n="difficulty-box.expected-block">{{ i }} block expected</ng-template>
|
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngIf="!isAhead">
|
<ng-container *ngIf="!isAhead">
|
||||||
<ng-container *ngTemplateOutlet="mined === 1 ? blocksSingular : blocksPlural; context: {$implicit: mined }"></ng-container>
|
<ng-container *ngTemplateOutlet="mined === 1 ? minedBlocksSingular : minedBlocksPlural; context: {$implicit: mined }"></ng-container>
|
||||||
<ng-template #blocksPlural let-i i18n="difficulty-box.mined-blocks">{{ i }} blocks mined</ng-template>
|
|
||||||
<ng-template #blocksSingular let-i i18n="difficulty-box.mined-block">{{ i }} block mined</ng-template>
|
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngSwitchCase="'remaining'">
|
<ng-container *ngSwitchCase="'remaining'">
|
||||||
<ng-container *ngTemplateOutlet="remaining === 1 ? blocksSingular : blocksPlural; context: {$implicit: remaining }"></ng-container>
|
<ng-container *ngTemplateOutlet="remaining === 1 ? remainingBlocksSingular : remainingBlocksPlural; context: {$implicit: remaining }"></ng-container>
|
||||||
<ng-template #blocksPlural let-i i18n="difficulty-box.remaining-blocks">{{ i }} blocks remaining</ng-template>
|
|
||||||
<ng-template #blocksSingular let-i i18n="difficulty-box.remaining-block">{{ i }} block remaining</ng-template>
|
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngSwitchCase="'ahead'">
|
<ng-container *ngSwitchCase="'ahead'">
|
||||||
<ng-container *ngTemplateOutlet="ahead === 1 ? blocksSingular : blocksPlural; context: {$implicit: ahead }"></ng-container>
|
<ng-container *ngTemplateOutlet="ahead === 1 ? aheadBlocksSingular : aheadBlocksPlural; context: {$implicit: ahead }"></ng-container>
|
||||||
<ng-template #blocksPlural let-i i18n="difficulty-box.blocks-ahead">{{ i }} blocks ahead</ng-template>
|
|
||||||
<ng-template #blocksSingular let-i i18n="difficulty-box.block-ahead">{{ i }} block ahead</ng-template>
|
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngSwitchCase="'behind'">
|
<ng-container *ngSwitchCase="'behind'">
|
||||||
<ng-container *ngTemplateOutlet="behind === 1 ? blocksSingular : blocksPlural; context: {$implicit: behind }"></ng-container>
|
<ng-container *ngTemplateOutlet="behind === 1 ? behindBlocksSingular : behindBlocksPlural; context: {$implicit: behind }"></ng-container>
|
||||||
<ng-template #blocksPlural let-i i18n="difficulty-box.blocks-behind">{{ i }} blocks behind</ng-template>
|
|
||||||
<ng-template #blocksSingular let-i i18n="difficulty-box.block-behind">{{ i }} block behind</ng-template>
|
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngSwitchCase="'next'">
|
<ng-container *ngSwitchCase="'next'">
|
||||||
<span class="next-block" i18n="@@bdf0e930eb22431140a2eaeacd809cc5f8ebd38c">Next Block</span>
|
<span class="next-block" i18n="@@bdf0e930eb22431140a2eaeacd809cc5f8ebd38c">Next Block</span>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
<ng-container *ngIf="isMobile">
|
||||||
|
<ng-container *ngIf="isAhead">
|
||||||
|
<ng-container *ngTemplateOutlet="expected === 1 ? minedBlocksSingular : minedBlocksPlural; context: {$implicit: expected }"></ng-container>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container *ngIf="!isAhead">
|
||||||
|
<ng-container *ngTemplateOutlet="mined === 1 ? minedBlocksSingular : minedBlocksPlural; context: {$implicit: mined }"></ng-container>
|
||||||
|
</ng-container>
|
||||||
|
<br>
|
||||||
|
<ng-container *ngTemplateOutlet="remaining === 1 ? remainingBlocksSingular : remainingBlocksPlural; context: {$implicit: remaining }"></ng-container>
|
||||||
|
<br>
|
||||||
|
<ng-container *ngIf="ahead > 0">
|
||||||
|
<ng-container *ngTemplateOutlet="ahead === 1 ? aheadBlocksSingular : aheadBlocksPlural; context: {$implicit: ahead }"></ng-container>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container *ngIf="behind > 0">
|
||||||
|
<ng-container *ngTemplateOutlet="behind === 1 ? behindBlocksSingular : behindBlocksPlural; context: {$implicit: behind }"></ng-container>
|
||||||
|
</ng-container>
|
||||||
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<ng-template #expectedMinedBlocksPlural let-i i18n="difficulty-box.expected-blocks">{{ i }} blocks expected</ng-template>
|
||||||
|
<ng-template #expectedMinedBlocksSingular let-i i18n="difficulty-box.expected-block">{{ i }} block expected</ng-template>
|
||||||
|
<ng-template #minedBlocksPlural let-i i18n="difficulty-box.mined-blocks">{{ i }} blocks mined</ng-template>
|
||||||
|
<ng-template #minedBlocksSingular let-i i18n="difficulty-box.mined-block">{{ i }} block mined</ng-template>
|
||||||
|
<ng-template #remainingBlocksPlural let-i i18n="difficulty-box.remaining-blocks">{{ i }} blocks remaining</ng-template>
|
||||||
|
<ng-template #remainingBlocksSingular let-i i18n="difficulty-box.remaining-block">{{ i }} block remaining</ng-template>
|
||||||
|
<ng-template #aheadBlocksPlural let-i i18n="difficulty-box.blocks-ahead">{{ i }} blocks ahead</ng-template>
|
||||||
|
<ng-template #aheadBlocksSingular let-i i18n="difficulty-box.block-ahead">{{ i }} block ahead</ng-template>
|
||||||
|
<ng-template #behindBlocksPlural let-i i18n="difficulty-box.blocks-behind">{{ i }} blocks behind</ng-template>
|
||||||
|
<ng-template #behindBlocksSingular let-i i18n="difficulty-box.block-behind">{{ i }} block behind</ng-template>
|
@ -1,4 +1,4 @@
|
|||||||
import { Component, ElementRef, ViewChild, Input, OnChanges } from '@angular/core';
|
import { Component, ElementRef, ViewChild, Input, OnChanges, HostListener } from '@angular/core';
|
||||||
|
|
||||||
interface EpochProgress {
|
interface EpochProgress {
|
||||||
base: string;
|
base: string;
|
||||||
@ -35,12 +35,15 @@ export class DifficultyTooltipComponent implements OnChanges {
|
|||||||
remaining: number;
|
remaining: number;
|
||||||
isAhead: boolean;
|
isAhead: boolean;
|
||||||
isBehind: boolean;
|
isBehind: boolean;
|
||||||
|
isMobile: boolean;
|
||||||
|
|
||||||
tooltipPosition = { x: 0, y: 0 };
|
tooltipPosition = { x: 0, y: 0 };
|
||||||
|
|
||||||
@ViewChild('tooltip') tooltipElement: ElementRef<HTMLCanvasElement>;
|
@ViewChild('tooltip') tooltipElement: ElementRef<HTMLCanvasElement>;
|
||||||
|
|
||||||
constructor() {}
|
constructor() {
|
||||||
|
this.onResize();
|
||||||
|
}
|
||||||
|
|
||||||
ngOnChanges(changes): void {
|
ngOnChanges(changes): void {
|
||||||
if (changes.cursorPosition && changes.cursorPosition.currentValue) {
|
if (changes.cursorPosition && changes.cursorPosition.currentValue) {
|
||||||
@ -63,4 +66,9 @@ export class DifficultyTooltipComponent implements OnChanges {
|
|||||||
this.isBehind = this.behind > 0;
|
this.isBehind = this.behind > 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@HostListener('window:resize', ['$event'])
|
||||||
|
onResize(): void {
|
||||||
|
this.isMobile = window.innerWidth <= 767.98;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -193,6 +193,7 @@ export class DifficultyComponent implements OnInit {
|
|||||||
@HostListener('pointerdown', ['$event'])
|
@HostListener('pointerdown', ['$event'])
|
||||||
onPointerDown(event) {
|
onPointerDown(event) {
|
||||||
this.onPointerMove(event);
|
this.onPointerMove(event);
|
||||||
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
@HostListener('pointermove', ['$event'])
|
@HostListener('pointermove', ['$event'])
|
||||||
|
Loading…
Reference in New Issue
Block a user