Skip to content

Commit 8762123

Browse files
committed
feat(web): add latest cases to court page
1 parent df21080 commit 8762123

File tree

4 files changed

+43
-39
lines changed

4 files changed

+43
-39
lines changed

web/src/components/LatestCases.tsx

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import React, { useMemo } from "react";
2+
import styled from "styled-components";
3+
import { Dispute_Filter } from "../graphql/graphql";
4+
import { DisputeDetailsFragment, useCasesQuery } from "queries/useCasesQuery";
5+
import DisputeCard from "components/DisputeCard";
6+
import { StyledSkeleton } from "components/StyledSkeleton";
7+
import { isUndefined } from "utils/index";
8+
9+
const Container = styled.div`
10+
margin-top: calc(64px + (80 - 64) * (min(max(100vw, 375px), 1250px) - 375px) / 875);
11+
`;
12+
13+
const Title = styled.h1`
14+
margin-bottom: calc(16px + (48 - 16) * (min(max(100vw, 375px), 1250px) - 375px) / 875);
15+
`;
16+
17+
const DisputeContainer = styled.div`
18+
display: flex;
19+
gap: 24px;
20+
flex-wrap: wrap;
21+
justify-content: center;
22+
`;
23+
24+
const LatestCases: React.FC<{ filters?: Dispute_Filter }> = ({ filters }) => {
25+
const { data } = useCasesQuery(0, 3, filters);
26+
const disputes: DisputeDetailsFragment[] = useMemo(() => data?.disputes as DisputeDetailsFragment[], [data]);
27+
28+
return isUndefined(disputes) || disputes.length > 0 ? (
29+
<Container>
30+
<Title>Latest Cases</Title>
31+
<DisputeContainer>
32+
{isUndefined(disputes)
33+
? Array.from({ length: 3 }).map((_, index) => <StyledSkeleton key={index} width={312} height={260} />)
34+
: disputes.map((dispute) => <DisputeCard key={dispute.id} {...dispute} overrideIsList />)}
35+
</DisputeContainer>
36+
</Container>
37+
) : null;
38+
};
39+
40+
export default LatestCases;

web/src/pages/Courts/CourtDetails/index.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { usePNKFaucetAddress } from "hooks/useContractAddress";
1111
import { wrapWithToast } from "utils/wrapWithToast";
1212
import { isUndefined } from "utils/index";
1313
import { StyledSkeleton } from "components/StyledSkeleton";
14+
import LatestCases from "components/LatestCases";
1415
import Stats from "./Stats";
1516
import Description from "./Description";
1617
import StakePanel from "./StakePanel";
@@ -115,6 +116,7 @@ const CourtDetails: React.FC = () => {
115116
<StyledCard>
116117
<Description />
117118
</StyledCard>
119+
<LatestCases filters={{ court: id }} />
118120
</Container>
119121
);
120122
};

web/src/pages/Home/LatestCases.tsx

Lines changed: 0 additions & 38 deletions
This file was deleted.

web/src/pages/Home/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from "react";
22
import styled from "styled-components";
3+
import LatestCases from "components/LatestCases";
34
import CourtOverview from "./CourtOverview";
4-
import LatestCases from "./LatestCases";
55
import Community from "./Community";
66
import HeroImage from "./HeroImage";
77
import { HomePageProvider } from "hooks/useHomePageContext";

0 commit comments

Comments
 (0)