Add show all toggle for redeem scripts
This commit is contained in:
		
							parent
							
								
									9b9aaed757
								
							
						
					
					
						commit
						f840ac951b
					
				@ -142,7 +142,16 @@
 | 
				
			|||||||
                        <ng-template #p2wsh>
 | 
					                        <ng-template #p2wsh>
 | 
				
			||||||
                          <td i18n="transactions-list.p2wsh-witness-script">P2WSH witness script</td>
 | 
					                          <td i18n="transactions-list.p2wsh-witness-script">P2WSH witness script</td>
 | 
				
			||||||
                        </ng-template>
 | 
					                        </ng-template>
 | 
				
			||||||
                        <td style="text-align: left;" [innerHTML]="vin.inner_witnessscript_asm | asmStyler"></td>
 | 
					                        <td style="text-align: left;">
 | 
				
			||||||
 | 
					                          <div [innerHTML]="vin.inner_witnessscript_asm | asmStyler:showFullScript[vindex]"></div>
 | 
				
			||||||
 | 
					                          <div *ngIf="vin.inner_witnessscript_asm.length > 1000" style="display: flex;">
 | 
				
			||||||
 | 
					                            <span *ngIf="!showFullScript[vindex]">...</span>
 | 
				
			||||||
 | 
					                            <label class="btn btn-sm btn-primary mt-2" (click)="toggleShowFullScript(vindex)" style="margin-left: auto;">
 | 
				
			||||||
 | 
					                              <span *ngIf="!showFullScript[vindex]" i18n="show-all">Show all</span>
 | 
				
			||||||
 | 
					                              <span *ngIf="showFullScript[vindex]" i18n="show-less">Show less</span>
 | 
				
			||||||
 | 
					                            </label>
 | 
				
			||||||
 | 
					                          </div>
 | 
				
			||||||
 | 
					                        </td>
 | 
				
			||||||
                      </tr>
 | 
					                      </tr>
 | 
				
			||||||
                      <tr>
 | 
					                      <tr>
 | 
				
			||||||
                        <td i18n="transactions-list.nsequence">nSequence</td>
 | 
					                        <td i18n="transactions-list.nsequence">nSequence</td>
 | 
				
			||||||
 | 
				
			|||||||
@ -48,6 +48,7 @@ export class TransactionsListComponent implements OnInit, OnChanges {
 | 
				
			|||||||
  transactionsLength: number = 0;
 | 
					  transactionsLength: number = 0;
 | 
				
			||||||
  inputRowLimit: number = 12;
 | 
					  inputRowLimit: number = 12;
 | 
				
			||||||
  outputRowLimit: number = 12;
 | 
					  outputRowLimit: number = 12;
 | 
				
			||||||
 | 
					  showFullScript: { [vinIndex: number]: boolean } = {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  constructor(
 | 
					  constructor(
 | 
				
			||||||
    public stateService: StateService,
 | 
					    public stateService: StateService,
 | 
				
			||||||
@ -300,7 +301,9 @@ export class TransactionsListComponent implements OnInit, OnChanges {
 | 
				
			|||||||
  toggleDetails(): void {
 | 
					  toggleDetails(): void {
 | 
				
			||||||
    if (this.showDetails$.value === true) {
 | 
					    if (this.showDetails$.value === true) {
 | 
				
			||||||
      this.showDetails$.next(false);
 | 
					      this.showDetails$.next(false);
 | 
				
			||||||
 | 
					      this.showFullScript = {};
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
 | 
					      this.showFullScript = this.transactions[0] ? this.transactions[0].vin.reduce((acc, _, i) => ({...acc, [i]: false}), {}) : {};
 | 
				
			||||||
      this.showDetails$.next(true);
 | 
					      this.showDetails$.next(true);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -352,6 +355,10 @@ export class TransactionsListComponent implements OnInit, OnChanges {
 | 
				
			|||||||
    return limit;
 | 
					    return limit;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  toggleShowFullScript(vinIndex: number): void {
 | 
				
			||||||
 | 
					    this.showFullScript[vinIndex] = !this.showFullScript[vinIndex];
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ngOnDestroy(): void {
 | 
					  ngOnDestroy(): void {
 | 
				
			||||||
    this.outspendsSubscription.unsubscribe();
 | 
					    this.outspendsSubscription.unsubscribe();
 | 
				
			||||||
    this.currencyChangeSubscription?.unsubscribe();
 | 
					    this.currencyChangeSubscription?.unsubscribe();
 | 
				
			||||||
 | 
				
			|||||||
@ -5,13 +5,18 @@ import { Pipe, PipeTransform } from '@angular/core';
 | 
				
			|||||||
})
 | 
					})
 | 
				
			||||||
export class AsmStylerPipe implements PipeTransform {
 | 
					export class AsmStylerPipe implements PipeTransform {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  transform(asm: string): string {
 | 
					  transform(asm: string, showAll = true): string {
 | 
				
			||||||
    const instructions = asm.split('OP_');
 | 
					    const instructions = asm.split('OP_');
 | 
				
			||||||
    let out = '';
 | 
					    let out = '';
 | 
				
			||||||
 | 
					    let chars = -3;
 | 
				
			||||||
    for (const instruction of instructions) {
 | 
					    for (const instruction of instructions) {
 | 
				
			||||||
      if (instruction === '') {
 | 
					      if (instruction === '') {
 | 
				
			||||||
        continue;
 | 
					        continue;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					      if (!showAll && chars > 1000) {
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      chars += instruction.length + 3;
 | 
				
			||||||
      out += this.addStyling(instruction);
 | 
					      out += this.addStyling(instruction);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return out;
 | 
					    return out;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user