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