Skip to content

Commit d9ef8f5

Browse files
committed
fix: dashboard new user problem
1 parent 7a3ea07 commit d9ef8f5

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

web/src/hooks/queries/useUser.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { useQuery } from "@tanstack/react-query";
22
import { Address } from "viem";
33
import { graphql } from "src/graphql";
4-
import { UserQuery } from "src/graphql/graphql";
4+
import { UserQuery, Dispute_Filter } from "src/graphql/graphql";
55
import { graphqlQueryFnHelper } from "utils/graphqlQueryFnHelper";
66
export type { UserQuery };
77

88
const userQuery = graphql(`
9-
query User($address: ID!) {
9+
query User($address: ID!, $where: Dispute_filter) {
1010
user(id: $address) {
1111
totalDisputes
1212
totalResolvedDisputes
@@ -22,11 +22,14 @@ const userQuery = graphql(`
2222
pnkAmount
2323
ethAmount
2424
}
25+
disputes(orderBy: lastPeriodChange, where: $where) {
26+
id
27+
}
2528
}
2629
}
2730
`);
2831

29-
export const useUserQuery = (address?: Address) => {
32+
export const useUserQuery = (address?: Address, where?: Dispute_Filter) => {
3033
const isEnabled = address !== undefined;
3134

3235
return useQuery<UserQuery>({

web/src/pages/Dashboard/index.tsx

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,35 @@ const ConnectWalletContainer = styled.div`
2929
color: ${({ theme }) => theme.primaryText};
3030
`;
3131

32-
const calculatePages = (status: number, data: UserQuery | undefined, casesPerPage: number, myAppeals?: number) => {
33-
if (!data) {
32+
const calculatePages = (
33+
status: number,
34+
data: UserQuery | undefined,
35+
casesPerPage: number,
36+
courtFilter: number,
37+
myAppeals?: number
38+
) => {
39+
if (!data?.user) {
3440
return 0;
3541
}
3642

3743
let totalCases = 0;
3844

45+
if (courtFilter !== 0) {
46+
return data?.user?.disputes?.length / casesPerPage;
47+
}
48+
3949
switch (status) {
4050
case 1:
41-
totalCases = data.user?.totalDisputes - data.user?.totalResolvedDisputes;
51+
totalCases = parseInt(data.user?.totalDisputes) - parseInt(data.user?.totalResolvedDisputes);
4252
break;
4353
case 2:
44-
totalCases = data.user?.totalResolvedDisputes ?? 0;
54+
totalCases = parseInt(data.user?.totalResolvedDisputes) ?? 0;
4555
break;
4656
case 3:
4757
totalCases = myAppeals ?? 0;
4858
break;
4959
default:
50-
totalCases = data.user?.totalDisputes ?? 0;
60+
totalCases = parseInt(data.user?.totalDisputes) ?? 0;
5161
}
5262

5363
return totalCases / casesPerPage;
@@ -64,8 +74,14 @@ const Dashboard: React.FC = () => {
6474
const courtChoice = courtFilter === 0 ? {} : { court: courtFilter.toString() };
6575
const queryFilters = { ...combinedQueryFilters, ...courtChoice };
6676
const { data: disputesData } = useMyCasesQuery(address, disputeSkip, queryFilters, direction);
67-
const { data: userData } = useUserQuery(address);
68-
const totalPages = calculatePages(statusFilter, userData, casesPerPage, userData?.user?.totalAppealingDisputes);
77+
const { data: userData } = useUserQuery(address, { ...courtChoice });
78+
const totalPages = calculatePages(
79+
statusFilter,
80+
userData,
81+
casesPerPage,
82+
courtFilter,
83+
parseInt(userData?.user?.totalAppealingDisputes)
84+
);
6985

7086
useEffect(() => {
7187
setCurrentPage(1);

0 commit comments

Comments
 (0)