explorer: add pagination to block rewards (#14906)

This commit is contained in:
Josh 2021-01-28 13:26:06 -08:00 committed by GitHub
parent 0b1015f7d3
commit ad9ea91c1d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 22 additions and 1 deletions

View File

@ -3,7 +3,11 @@ import { lamportsToSolString } from "utils";
import { ConfirmedBlock, PublicKey } from "@solana/web3.js";
import { Address } from "components/common/Address";
const PAGE_SIZE = 10;
export function BlockRewardsCard({ block }: { block: ConfirmedBlock }) {
const [rewardsDisplayed, setRewardsDisplayed] = React.useState(PAGE_SIZE);
if (block.rewards.length < 1) {
return null;
}
@ -26,7 +30,11 @@ export function BlockRewardsCard({ block }: { block: ConfirmedBlock }) {
</tr>
</thead>
<tbody>
{block.rewards.map((reward) => {
{block.rewards.map((reward, index) => {
if (index >= rewardsDisplayed - 1) {
return null;
}
let percentChange;
if (reward.postBalance !== null && reward.postBalance !== 0) {
percentChange = (
@ -54,6 +62,19 @@ export function BlockRewardsCard({ block }: { block: ConfirmedBlock }) {
</tbody>
</table>
</div>
{block.rewards.length > rewardsDisplayed && (
<div className="card-footer">
<button
className="btn btn-primary w-100"
onClick={() =>
setRewardsDisplayed((displayed) => displayed + PAGE_SIZE)
}
>
Load More
</button>
</div>
)}
</div>
);
}