Skip to content

Commit 9100fc6

Browse files
committed
web-ui: Add infinite scroll to block screen
1 parent 870f2c7 commit 9100fc6

File tree

4 files changed

+45
-27
lines changed

4 files changed

+45
-27
lines changed

package-lock.json

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web-ui/package-lock.json

+16-16
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web-ui/src/app/components/block-details/block-details.component.html

+6-8
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,12 @@ <h2 class="col-xs-12">{{'label.block' | translate}} #{{blockDetails.block.height
271271
</tr>
272272
</thead>
273273

274-
<tbody>
274+
<tbody
275+
infiniteScroll
276+
[infiniteScrollDistance]="1"
277+
[infiniteScrollThrottle]="300"
278+
(scrolled)="load()"
279+
[scrollWindow]="true">
275280
<tr *ngFor="let index = index; let item of transactions">
276281
<td>{{index + 1}}</td>
277282
<td>
@@ -285,13 +290,6 @@ <h2 class="col-xs-12">{{'label.block' | translate}} #{{blockDetails.block.height
285290
</table>
286291
</div>
287292

288-
<div class="row">
289-
<div class="col-xs-11 col-xs-offset-1 col-sm-5 col-sm-offset-4">
290-
<button (click)="load()">{{'label.more' | translate}}</button>
291-
</div>
292-
</div>
293-
</div>
294-
295293
<!-- transaction list only -->
296294
<div *ngIf="transactions != null && transactions.length == 0" class="col-xs-12 col-md-offset-2 col-md-8">
297295
<div class="table-responsive">

web-ui/src/app/components/block-details/block-details.component.ts

+12-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Component, OnInit } from '@angular/core';
1+
import { Component, OnInit, HostListener } from '@angular/core';
22
import { ActivatedRoute } from '@angular/router';
33

44
import { BlockDetails } from '../../models/block';
@@ -8,6 +8,8 @@ import { BlocksService } from '../../services/blocks.service';
88
import { ErrorService } from '../../services/error.service';
99
import { PaginatedResult } from '../../models/paginated-result';
1010

11+
import { getNumberOfRowsForScreen } from '../../utils';
12+
1113
@Component({
1214
selector: 'app-block-details',
1315
templateUrl: './block-details.component.html',
@@ -19,7 +21,7 @@ export class BlockDetailsComponent implements OnInit {
1921
blockDetails: BlockDetails;
2022

2123
// pagination
22-
limit = 10;
24+
limit = 30;
2325
transactions: Transaction[] = [];
2426

2527
constructor(
@@ -28,6 +30,8 @@ export class BlockDetailsComponent implements OnInit {
2830
private errorService: ErrorService) { }
2931

3032
ngOnInit() {
33+
const height = this.getScreenSize();
34+
this.limit = getNumberOfRowsForScreen(height);
3135
this.route.params.forEach(params => this.onQuery(params['query']));
3236
}
3337

@@ -59,10 +63,15 @@ export class BlockDetailsComponent implements OnInit {
5963

6064
this.blocksService
6165
.getTransactionsV2(this.blockhash, this.limit, lastSeenTxid)
62-
.do(response => this.transactions = this.transactions.concat(response.data))
66+
.do(response => this.transactions.push(...response.data))
6367
.subscribe();
6468
}
6569

70+
@HostListener('window:resize', ['$event'])
71+
private getScreenSize(_?): number {
72+
return window.innerHeight;
73+
}
74+
6675
private onError(response: any) {
6776
this.errorService.renderServerErrors(null, response);
6877
}

0 commit comments

Comments
 (0)