Skip to content

Commit

Permalink
Merge pull request #184 from rayanfer32/develop
Browse files Browse the repository at this point in the history
  • Loading branch information
rayanfer32 authored May 15, 2022
2 parents d778c0e + 3ebb35b commit 88b3ca4
Show file tree
Hide file tree
Showing 6 changed files with 151 additions and 129 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "nexus-explorer-next",
"private": true,
"version": "0.0.9",
"version": "0.0.9a",
"scripts": {
"dev": "next dev",
"build": "next build",
Expand Down
131 changes: 131 additions & 0 deletions src/components/Trustlist/Trustlist.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
import Table from 'components/Table/Table';
import { useQuery } from 'react-query';
import styles from './trustlist.module.scss';
import Loader from 'components/atoms/NE_Loader';
import { intlNum } from 'utils/converter';
import CopyText from 'components/atoms/NE_CopyText/CopyText';
import { useNetwork } from 'hooks/useNetwork/useNetwork';
import ErrorCard from 'components/atoms/NE_ErrorCard/ErrorCard';
import PageHeader from 'components/Header/PageHeader';
import DynamicPagination from 'components/atoms/NE_Pagination';
// import DynamicPagination from 'components/Table/DynamicPagination';
import { useState } from 'react';
import ErrorMessage from 'components/atoms/ErrorMessage';

export default function Trustlist() {
const [pageIndex, setPageIndex] = useState(0);
const [pageSize, setPageSize] = useState(10);
const [pageCount] = useState(Infinity);

const { network, getTrustlist } = useNetwork();
const { isLoading, data, error } = useQuery(
['trustlist', pageIndex, pageSize, network.name],
getTrustlist
);

const columns = [
{
Header: '#ID',
Cell: (props) => (
<div>{parseInt(props.cell.row.id) + 1 + pageIndex * pageSize}</div>
),
},
{
Header: 'Address',
accessor: 'address',
Cell: ({ value }) => <CopyText value={value} />,
},
{
Header: 'Balance',
accessor: 'balance',
Cell: (props) => intlNum(props.value.toFixed(2)) + ' NXS',
},
{
Header: 'Stake',
accessor: 'stake',
Cell: (props) => intlNum(props.value.toFixed(2)) + ' NXS',
},
{
Header: 'Stake Rate',
accessor: 'rate',
},
{
Header: 'Trust',
accessor: 'trust',
Cell: (props) => intlNum(props.value),
},
];

if (isLoading) {
return (
<div
style={{
display: 'grid',
placeItems: 'center',
minHeight: '200px',
margin: 'auto',
}}>
<Loader type="circle" size="5rem" />
</div>
);
}

if (error) {
return (
<div>
<ErrorCard />
</div>
);
}

const newData = data.data?.result?.map((item, index) => ({
key: index,
...item,
stake: item.stake,
balance: item.balance,
}));

const dynamicPageControls = {
canPreviousPage: pageIndex > 0,
canNextPage: pageIndex < pageCount - 1,
pageCount: pageCount,
pageIndex: pageIndex,
pageSize: pageSize,
gotoPage: (pageIndex) => {
setPageIndex(pageIndex);
},
setPageSize: (pageSize) => {
setPageIndex(0);
setPageSize(pageSize);
},
handleStartOfPageClick: () => {
setPageIndex(0);
},
handlePreviousPageClick: () => {
setPageIndex(pageIndex - 1);
},
handleNextPageClick: () => {
setPageIndex(pageIndex + 1);
},
};

return (
<>
<PageHeader page={'trustlist'} />
<div className={styles.page} style={{ marginBottom: '1rem' }}>
<Table
columns={columns}
data={data.data?.error ? [] : newData}
paginate={false}
/>
<div style={{ marginBottom: '1rem' }}>
<DynamicPagination
controls={dynamicPageControls}
isStaticPanination={false}
/>
</div>
{data.data?.error && <ErrorMessage error={data.data.error} />}
</div>
</>
);
}
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ function RTTransaction(props) {
<BlockData
href={`/scan/${txnId}`}
data={`${middleElipsis(txnId, 10)}`}
dataUnit={'txn_id'}
dataUnit="txid"
/>
</div>
<div className={styles.tertiaryData}>
Expand Down
23 changes: 14 additions & 9 deletions src/hooks/useNetwork/useNetwork.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,21 @@ export function useNetwork() {
const getRichlist = async (page = 0, limit = 111) => {
// * to consider the users who have moved their balance to trust
// * query for both trust and normal accounts
const page0 = await axios.get(
`${url}/register/list/trust,accounts?page=${page}&sort=total&order=desc&limit=${limit}&where=object.token=0`,
const json = JSON.stringify({
page: page,
sort: 'total',
order: 'desc',
limit: limit,
where: 'object.token=0',
});

const page0 = await axios.post(
`${url}/register/list/trust,accounts`,
json,
{
headers: { 'Cache-Control': 'max-age=300' },
params: {
// page: page,
// limit: limit,
// sort: 'total',
// order: 'desc',
// where: 'object.token=0', // * cannot be used as = gets url encoded.
headers: {
'Cache-Control': 'max-age=300',
'Content-Type': 'application/json',
},
}
);
Expand Down
122 changes: 4 additions & 118 deletions src/pages/trustlist/index.js
Original file line number Diff line number Diff line change
@@ -1,125 +1,11 @@
import Table from 'components/Table/Table';
import { useQuery } from 'react-query';
import styles from './trustlist.module.scss';
import Loader from 'components/atoms/NE_Loader';
import { intlNum } from 'utils/converter';
import CopyText from 'components/atoms/NE_CopyText/CopyText';
import { useNetwork } from 'hooks/useNetwork/useNetwork';
import ErrorCard from 'components/atoms/NE_ErrorCard/ErrorCard';
import PageHeader from 'components/Header/PageHeader';
import DynamicPagination from 'components/atoms/NE_Pagination';
// import DynamicPagination from 'components/Table/DynamicPagination';
import { useState } from 'react';
import ErrorMessage from 'components/atoms/ErrorMessage';

export default function Trustlist() {
const [pageIndex, setPageIndex] = useState(0);
const [pageSize, setPageSize] = useState(10);
const [pageCount] = useState(Infinity);

const { network, getTrustlist } = useNetwork();
const { isLoading, data, error } = useQuery(
['trustlist', pageIndex, pageSize, network.name],
getTrustlist
);

const columns = [
{
Header: 'Address',
accessor: 'address',
Cell: ({ value }) => <CopyText value={value} />,
},
{
Header: 'Balance',
accessor: 'balance',
Cell: (props) => intlNum(props.value.toFixed(2)) + ' NXS',
},
{
Header: 'Stake',
accessor: 'stake',
Cell: (props) => intlNum(props.value.toFixed(2)) + ' NXS',
},
{
Header: 'Stake Rate',
accessor: 'rate',
},
{
Header: 'Trust',
accessor: 'trust',
Cell: (props) => intlNum(props.value),
},
];

if (isLoading) {
return (
<div
style={{
display: 'grid',
placeItems: 'center',
minHeight: '200px',
margin: 'auto',
}}>
<Loader type="circle" size="5rem" />
</div>
);
}

if (error) {
return (
<div>
<ErrorCard />
</div>
);
}

const newData = data.data?.result?.map((item, index) => ({
key: index,
...item,
stake: item.stake,
balance: item.balance,
}));

const dynamicPageControls = {
canPreviousPage: pageIndex > 0,
canNextPage: pageIndex < pageCount - 1,
pageCount: pageCount,
pageIndex: pageIndex,
pageSize: pageSize,
gotoPage: (pageIndex) => {
setPageIndex(pageIndex);
},
setPageSize: (pageSize) => {
setPageIndex(0);
setPageSize(pageSize);
},
handleStartOfPageClick: () => {
setPageIndex(0);
},
handlePreviousPageClick: () => {
setPageIndex(pageIndex - 1);
},
handleNextPageClick: () => {
setPageIndex(pageIndex + 1);
},
};
import Richlist from 'components/Trustlist/Trustlist';

export default function index() {
return (
<>
<PageHeader page={'trustlist'} />
<div className={styles.page} style={{ marginBottom: '1rem' }}>
<Table
columns={columns}
data={data.data?.error ? [] : newData}
paginate={false}
/>
<div style={{ marginBottom: '1rem' }}>
<DynamicPagination
controls={dynamicPageControls}
isStaticPanination={false}
/>
</div>
{data.data?.error && <ErrorMessage error={data.data.error} />}
</div>
<PageHeader page="Trustlist" />
<Richlist />
</>
);
}

1 comment on commit 88b3ca4

@vercel
Copy link

@vercel vercel bot commented on 88b3ca4 May 15, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.