From 9ced594b5f46e856058104c0c99a138f43f41507 Mon Sep 17 00:00:00 2001 From: bendn Date: Sat, 24 Feb 2024 07:38:47 +0700 Subject: [PATCH] remove useless fields on /accounts --- src/app/accounts/page.tsx | 81 ++++++++++++++++++++++---------- src/app/data/accounts.js | 4 -- src/components/AccountsTable.tsx | 25 ---------- src/graphql/queries.ts | 14 +++--- 4 files changed, 64 insertions(+), 60 deletions(-) diff --git a/src/app/accounts/page.tsx b/src/app/accounts/page.tsx index a4145e7..026731c 100644 --- a/src/app/accounts/page.tsx +++ b/src/app/accounts/page.tsx @@ -1,9 +1,8 @@ "use client"; -import React, { Suspense, useEffect, useState } from "react"; +import React, { Suspense, useState } from "react"; import AccountsTable from "@/components/AccountsTable"; -import { gql, useQuery } from "@apollo/client"; import { Card, CardBody, CardFooter } from "@nextui-org/react"; import { User, Users } from "lucide-react"; @@ -11,33 +10,65 @@ import { columns } from "../data/accounts"; import PaginationControls from "@/components/PaginationControls"; import { useSearchParams } from "next/navigation"; import SearchInput from "@/components/SearchInput"; -import { GET_ACCOUNTS } from "@/graphql/queries"; +import { get_accounts } from "@/graphql/queries"; +import { Account } from "@/graphql/types"; +import { HashLoader, ScaleLoader } from "react-spinners"; function Accounts() { - const PAGE_SiZE = useSearchParams().get("page") ?? "1"; - const [currentPage, setCurrentPage] = useState(parseInt(PAGE_SiZE)); + const PAGE_SIZE = useSearchParams().get("page") ?? "1"; + const [currentPage, setCurrentPage] = useState(parseInt(PAGE_SIZE)); const [loading, setLoading] = useState(false); - const [accounts, setAccounts] = useState([]); - const { error, data } = useQuery(GET_ACCOUNTS); - // if (loading) return

Loading...

; - // if (error) return

Error :(

; - // const accounts = data.accounts; - // console.log("accounts", accounts.length); - useEffect(() => { - if (!data) { - return; - } - setLoading(true); - const intervalId = setInterval(() => { - setAccounts(data.accounts); - }, 1000); + const result = get_accounts(); + let accounts: Account[]; + + switch (result.state) { + case "loading": return
+
+

Accounts

+
+ +
+
+
+ + +
+ +
+
+

Holders

+ +
+
+
- return () => clearInterval(intervalId); - }, [data]); + + + {/* account-img */} +
+ +
+
+

Active Holders

+

-

+
+
+
+
+ + + + + + + +
+ case "error": return

Error

+ case "ok": accounts = result.data; + } const itemsPerPage = 20; - const totalPages = Math.ceil(data?.accounts.length / itemsPerPage); - console.log("length", data?.accounts.length); + const totalPages = Math.ceil(accounts.length / itemsPerPage); const handlePageChange = (newPage: number) => { setLoading(true); @@ -62,7 +93,7 @@ function Accounts() {
-

Holder

+

Holders

{accounts.length - 1}

@@ -75,7 +106,7 @@ function Accounts() {
-

Active Holder

+

Active Holders

-

diff --git a/src/app/data/accounts.js b/src/app/data/accounts.js index eaa89f2..32b95db 100644 --- a/src/app/data/accounts.js +++ b/src/app/data/accounts.js @@ -1,10 +1,6 @@ const columns = [ - { name: 'Rank', uid: 'eid' }, { name: 'Account', uid: 'account' }, - { name: 'Extrinsics', uid: 'extrinsics' }, { name: 'Total Balance', uid: 'balance' }, - // { name: 'Free Balance', uid: 'freeBalance' }, - { name: 'Reward', uid: 'reward' }, ]; const users = [ diff --git a/src/components/AccountsTable.tsx b/src/components/AccountsTable.tsx index e6529a5..11a7653 100644 --- a/src/components/AccountsTable.tsx +++ b/src/components/AccountsTable.tsx @@ -25,18 +25,10 @@ interface BlocksTableProps { } export default function AccountsTable({ users, columns }: BlocksTableProps) { - console.log("sglagla", users); - const renderCell = React.useCallback((user: Account, columnKey: React.Key) => { const cellValue = user[columnKey as keyof Account]; switch (columnKey) { - case "eid": - return ( - -

#

- - ); case "name": return ( @@ -62,23 +54,6 @@ export default function AccountsTable({ users, columns }: BlocksTableProps) { ); - case "reward": - return ( -
- - - - -
- ); - case "extrinsics": - return ( -
- - - - -
- ); - default: return cellValue; } diff --git a/src/graphql/queries.ts b/src/graphql/queries.ts index c43948c..8a0c752 100644 --- a/src/graphql/queries.ts +++ b/src/graphql/queries.ts @@ -145,13 +145,15 @@ export function get_latest_transactions(n: number): Result { { variables: { n } }), (y) => y.transfers) } -export const GET_ACCOUNTS = gql` - query Accounts { - accounts { - ${ACCOUNT} +export function get_accounts(): Result { + return map_query(useQuery(gql` + query Accounts { + accounts { + ${ACCOUNT} + } } - } -`; + `), x => x.accounts) +} export function get_account_by_address(address: string): Result {