Pixel-aligned grids for sharper block visualizations
This commit is contained in:
		
							parent
							
								
									fe527e4e1a
								
							
						
					
					
						commit
						82264ce9a1
					
				@ -1,15 +1,17 @@
 | 
			
		||||
<div class="block-overview-graph">
 | 
			
		||||
  <canvas class="block-overview-canvas" [class.clickable]="!!hoverTx" #blockCanvas></canvas>
 | 
			
		||||
  <div class="loader-wrapper" [class.hidden]="(!isLoading || disableSpinner) && !unavailable">
 | 
			
		||||
    <div *ngIf="isLoading" class="spinner-border ml-3 loading" role="status"></div>
 | 
			
		||||
    <div *ngIf="!isLoading && unavailable" class="ml-3" i18n="block.not-available">not available</div>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <app-block-overview-tooltip
 | 
			
		||||
    [tx]="selectedTx || hoverTx"
 | 
			
		||||
    [cursorPosition]="tooltipPosition"
 | 
			
		||||
    [clickable]="!!selectedTx"
 | 
			
		||||
    [auditEnabled]="auditHighlighting"
 | 
			
		||||
    [blockConversion]="blockConversion"
 | 
			
		||||
  ></app-block-overview-tooltip>
 | 
			
		||||
<div class="grid-align" [style.gridTemplateColumns]="'repeat(auto-fit, ' + resolution + 'px)'">
 | 
			
		||||
  <div class="block-overview-graph">
 | 
			
		||||
    <canvas class="block-overview-canvas" [class.clickable]="!!hoverTx" #blockCanvas></canvas>
 | 
			
		||||
    <div class="loader-wrapper" [class.hidden]="(!isLoading || disableSpinner) && !unavailable">
 | 
			
		||||
      <div *ngIf="isLoading" class="spinner-border ml-3 loading" role="status"></div>
 | 
			
		||||
      <div *ngIf="!isLoading && unavailable" class="ml-3" i18n="block.not-available">not available</div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <app-block-overview-tooltip
 | 
			
		||||
      [tx]="selectedTx || hoverTx"
 | 
			
		||||
      [cursorPosition]="tooltipPosition"
 | 
			
		||||
      [clickable]="!!selectedTx"
 | 
			
		||||
      [auditEnabled]="auditHighlighting"
 | 
			
		||||
      [blockConversion]="blockConversion"
 | 
			
		||||
    ></app-block-overview-tooltip>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
@ -6,8 +6,16 @@
 | 
			
		||||
  display: flex;
 | 
			
		||||
  justify-content: center;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  grid-column: 1/-1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.grid-align {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  display: grid;
 | 
			
		||||
  grid-template-columns: repeat(auto-fit, 75px);
 | 
			
		||||
  justify-content: center;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.block-overview-canvas {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
 | 
			
		||||
@ -71,7 +71,7 @@
 | 
			
		||||
      <app-block-overview-graph
 | 
			
		||||
        #blockGraph
 | 
			
		||||
        [isLoading]="false"
 | 
			
		||||
        [resolution]="75"
 | 
			
		||||
        [resolution]="80"
 | 
			
		||||
        [blockLimit]="stateService.blockVSize"
 | 
			
		||||
        [orientation]="'top'"
 | 
			
		||||
        [flip]="false"
 | 
			
		||||
 | 
			
		||||
@ -52,8 +52,8 @@
 | 
			
		||||
.chart-container {
 | 
			
		||||
  flex-grow: 0;
 | 
			
		||||
  flex-shrink: 0;
 | 
			
		||||
  width: 470px;
 | 
			
		||||
  min-width: 470px;
 | 
			
		||||
  width: 480px;
 | 
			
		||||
  min-width: 480px;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  margin-right: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -110,7 +110,7 @@
 | 
			
		||||
          <app-block-overview-graph
 | 
			
		||||
            #blockGraphActual
 | 
			
		||||
            [isLoading]="isLoadingOverview"
 | 
			
		||||
            [resolution]="75"
 | 
			
		||||
            [resolution]="80"
 | 
			
		||||
            [blockLimit]="stateService.blockVSize"
 | 
			
		||||
            [orientation]="'top'"
 | 
			
		||||
            [flip]="false"
 | 
			
		||||
@ -227,7 +227,7 @@
 | 
			
		||||
      <div class="col-sm">
 | 
			
		||||
        <h3 class="block-subtitle" *ngIf="!isMobile"><ng-container i18n="block.expected-block">Expected Block</ng-container> <span class="badge badge-pill badge-warning beta" i18n="beta">beta</span></h3>
 | 
			
		||||
        <div class="block-graph-wrapper">
 | 
			
		||||
          <app-block-overview-graph #blockGraphProjected [isLoading]="isLoadingOverview" [resolution]="75"
 | 
			
		||||
          <app-block-overview-graph #blockGraphProjected [isLoading]="isLoadingOverview" [resolution]="80"
 | 
			
		||||
            [blockLimit]="stateService.blockVSize" [orientation]="'top'" [flip]="false" [mirrorTxid]="hoverTx" [auditHighlighting]="showAudit"
 | 
			
		||||
            (txClickEvent)="onTxClick($event)" (txHoverEvent)="onTxHover($event)" [unavailable]="!isMobile && !showAudit"></app-block-overview-graph>
 | 
			
		||||
          <ng-container *ngIf="!isMobile || mode !== 'actual'; else emptyBlockInfo"></ng-container>
 | 
			
		||||
@ -239,7 +239,7 @@
 | 
			
		||||
      <div class="col-sm" *ngIf="!isMobile">
 | 
			
		||||
        <h3 class="block-subtitle actual" *ngIf="!isMobile"><ng-container i18n="block.actual-block">Actual Block</ng-container> <a class="info-link" [routerLink]="['/docs/faq' | relativeUrl ]" fragment="how-do-block-audits-work"><fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true"></fa-icon></a></h3>
 | 
			
		||||
        <div class="block-graph-wrapper">
 | 
			
		||||
          <app-block-overview-graph #blockGraphActual [isLoading]="isLoadingOverview" [resolution]="75"
 | 
			
		||||
          <app-block-overview-graph #blockGraphActual [isLoading]="isLoadingOverview" [resolution]="80"
 | 
			
		||||
            [blockLimit]="stateService.blockVSize" [orientation]="'top'" [flip]="false" [mirrorTxid]="hoverTx" mode="mined"  [auditHighlighting]="showAudit"
 | 
			
		||||
            (txClickEvent)="onTxClick($event)" (txHoverEvent)="onTxHover($event)" [unavailable]="isMobile && !showAudit"></app-block-overview-graph>
 | 
			
		||||
          <ng-container *ngTemplateOutlet="emptyBlockInfo"></ng-container>
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
<app-block-overview-graph
 | 
			
		||||
  #blockGraph
 | 
			
		||||
  [isLoading]="isLoading$ | async"
 | 
			
		||||
  [resolution]="75"
 | 
			
		||||
  [resolution]="80"
 | 
			
		||||
  [blockLimit]="stateService.blockVSize"
 | 
			
		||||
  [orientation]="timeLtr ? 'right' : 'left'"
 | 
			
		||||
  [flip]="true"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user