Merge pull request #4146 from mempool/mononaut/fix-mempool-blocks-stacking
Fix stacked mempool blocks layout & width
This commit is contained in:
		
						commit
						52cc3022c6
					
				@ -31,6 +31,7 @@ export class MempoolBlocksComponent implements OnInit, OnChanges, OnDestroy {
 | 
			
		||||
  @Input() spotlight: number = 0;
 | 
			
		||||
  @Input() getHref?: (index) => string = (index) => `/mempool-block/${index}`;
 | 
			
		||||
  @Input() allBlocks: boolean = false;
 | 
			
		||||
  @Input() forceRtl: boolean = false;
 | 
			
		||||
 | 
			
		||||
  mempoolWidth: number = 0;
 | 
			
		||||
  @Output() widthChange: EventEmitter<number> = new EventEmitter();
 | 
			
		||||
@ -102,7 +103,7 @@ export class MempoolBlocksComponent implements OnInit, OnChanges, OnDestroy {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    this.timeLtrSubscription = this.stateService.timeLtr.subscribe((ltr) => {
 | 
			
		||||
      this.timeLtr = !!ltr;
 | 
			
		||||
      this.timeLtr = !this.forceRtl && !!ltr;
 | 
			
		||||
      this.cd.markForCheck();
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
@ -114,11 +115,6 @@ export class MempoolBlocksComponent implements OnInit, OnChanges, OnDestroy {
 | 
			
		||||
    });
 | 
			
		||||
    this.reduceEmptyBlocksToFitScreen(this.mempoolEmptyBlocks);
 | 
			
		||||
 | 
			
		||||
    this.mempoolBlocks.map(() => {
 | 
			
		||||
      this.updateMempoolBlockStyles();
 | 
			
		||||
      this.calculateTransactionPosition();
 | 
			
		||||
    });
 | 
			
		||||
    this.reduceMempoolBlocksToFitScreen(this.mempoolBlocks);
 | 
			
		||||
    this.isTabHiddenSubscription = this.stateService.isTabHidden$.subscribe((tabHidden) => this.tabHidden = tabHidden);
 | 
			
		||||
    this.loadingBlocks$ = combineLatest([
 | 
			
		||||
      this.stateService.isLoadingWebSocket$,
 | 
			
		||||
@ -206,14 +202,17 @@ export class MempoolBlocksComponent implements OnInit, OnChanges, OnDestroy {
 | 
			
		||||
        if (!block) {
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const isNewBlock = block.height > this.chainTip;
 | 
			
		||||
 | 
			
		||||
        if (this.chainTip === -1) {
 | 
			
		||||
          this.animateEntry = block.height === this.stateService.latestBlockHeight;
 | 
			
		||||
        } else {
 | 
			
		||||
          this.animateEntry = block.height > this.chainTip;
 | 
			
		||||
          this.animateEntry = isNewBlock;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.chainTip = this.stateService.latestBlockHeight;
 | 
			
		||||
        if ((block?.extras?.similarity == null || block?.extras?.similarity > 0.5) && !this.tabHidden) {
 | 
			
		||||
        if (isNewBlock && (block?.extras?.similarity == null || block?.extras?.similarity > 0.5) && !this.tabHidden) {
 | 
			
		||||
          this.blockIndex++;
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
@ -283,7 +282,7 @@ export class MempoolBlocksComponent implements OnInit, OnChanges, OnDestroy {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  reduceEmptyBlocksToFitScreen(blocks: MempoolBlock[]): MempoolBlock[] {
 | 
			
		||||
    const innerWidth = this.stateService.env.BASE_MODULE !== 'liquid' && window.innerWidth <= 767.98 ? window.innerWidth : window.innerWidth / 2;
 | 
			
		||||
    const innerWidth = this.containerWidth || (this.stateService.env.BASE_MODULE !== 'liquid' && window.innerWidth <= 767.98 ? window.innerWidth : window.innerWidth / 2);
 | 
			
		||||
    let blocksAmount = this.stateService.env.MEMPOOL_BLOCKS_AMOUNT;
 | 
			
		||||
    if (!this.allBlocks) {
 | 
			
		||||
      blocksAmount = Math.min(this.stateService.env.MEMPOOL_BLOCKS_AMOUNT, Math.floor(innerWidth / (this.blockWidth + this.blockPadding)));
 | 
			
		||||
@ -306,7 +305,7 @@ export class MempoolBlocksComponent implements OnInit, OnChanges, OnDestroy {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  reduceMempoolBlocksToFitScreen(blocks: MempoolBlock[]): MempoolBlock[] {
 | 
			
		||||
    const innerWidth = this.stateService.env.BASE_MODULE !== 'liquid' && window.innerWidth <= 767.98 ? window.innerWidth : window.innerWidth / 2;
 | 
			
		||||
    const innerWidth = this.containerWidth || (this.stateService.env.BASE_MODULE !== 'liquid' && window.innerWidth <= 767.98 ? window.innerWidth : window.innerWidth / 2);
 | 
			
		||||
    let blocksAmount = this.stateService.env.MEMPOOL_BLOCKS_AMOUNT;
 | 
			
		||||
    if (this.count) {
 | 
			
		||||
      blocksAmount = 8;
 | 
			
		||||
@ -316,7 +315,7 @@ export class MempoolBlocksComponent implements OnInit, OnChanges, OnDestroy {
 | 
			
		||||
    while (blocks.length > blocksAmount) {
 | 
			
		||||
      const block = blocks.pop();
 | 
			
		||||
      if (!this.count) {
 | 
			
		||||
        const lastBlock = blocks[0];
 | 
			
		||||
        const lastBlock = blocks[blocks.length - 1];
 | 
			
		||||
        lastBlock.blockSize += block.blockSize;
 | 
			
		||||
        lastBlock.blockVSize += block.blockVSize;
 | 
			
		||||
        lastBlock.nTx += block.nTx;
 | 
			
		||||
@ -327,7 +326,7 @@ export class MempoolBlocksComponent implements OnInit, OnChanges, OnDestroy {
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (blocks.length) {
 | 
			
		||||
      blocks[0].isStack = blocks[0].blockVSize > this.stateService.blockVSize;
 | 
			
		||||
      blocks[blocks.length - 1].isStack = blocks[blocks.length - 1].blockVSize > this.stateService.blockVSize;
 | 
			
		||||
    }
 | 
			
		||||
    return blocks;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user