Skip to content

Commit 3da67bd

Browse files
authored
Merge pull request #1617 from ShubhamParkhi/dev
feat(web): Evidence: display submission timestamp
2 parents aeecb23 + 3f2934c commit 3da67bd

File tree

6 files changed

+25
-10
lines changed

6 files changed

+25
-10
lines changed

subgraph/core/schema.graphql

+2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ interface Evidence {
5353
evidence: String!
5454
evidenceGroup: EvidenceGroup!
5555
sender: User!
56+
timestamp: BigInt!
5657
}
5758

5859
############
@@ -296,6 +297,7 @@ type ClassicEvidence implements Evidence @entity {
296297
evidence: String!
297298
evidenceGroup: EvidenceGroup!
298299
sender: User!
300+
timestamp: BigInt!
299301
}
300302

301303
type ClassicContribution implements Contribution @entity {

subgraph/core/src/EvidenceModule.ts

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export function handleEvidenceEvent(event: EvidenceEvent): void {
1212
evidenceGroup.save();
1313
const evidence = new ClassicEvidence(`${evidenceGroupID}-${evidenceIndex.toString()}`);
1414
const userId = event.params._party.toHexString();
15+
evidence.timestamp = event.block.timestamp;
1516
evidence.evidence = event.params._evidence;
1617
evidence.evidenceGroup = evidenceGroupID.toString();
1718
evidence.sender = userId;

subgraph/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@kleros/kleros-v2-subgraph",
3-
"version": "0.5.0",
3+
"version": "0.5.1",
44
"license": "MIT",
55
"scripts": {
66
"update:core:arbitrum-sepolia-devnet": "./scripts/update.sh arbitrumSepoliaDevnet arbitrum-sepolia core/subgraph.yaml",

web/src/components/EvidenceCard.tsx

+18-7
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import AttachmentIcon from "svgs/icons/attachment.svg";
1111
import { useIPFSQuery } from "hooks/useIPFSQuery";
1212
import { getIpfsUrl } from "utils/getIpfsUrl";
1313
import { shortenAddress } from "utils/shortenAddress";
14+
import { formatDate } from "utils/date";
1415

1516
import { landscapeStyle } from "styles/landscapeStyle";
1617
import { responsiveSize } from "styles/responsiveSize";
@@ -40,11 +41,15 @@ const StyledReactMarkdown = styled(ReactMarkdown)`
4041
a {
4142
font-size: 16px;
4243
}
44+
code {
45+
color: ${({ theme }) => theme.secondaryText};
46+
}
4347
`;
4448

4549
const BottomShade = styled.div`
4650
background-color: ${({ theme }) => theme.lightBlue};
4751
display: flex;
52+
flex-wrap: wrap;
4853
align-items: center;
4954
gap: 16px;
5055
padding: 12px ${responsiveSize(8, 24)};
@@ -60,13 +65,13 @@ const StyledA = styled.a`
6065
margin-left: auto;
6166
gap: ${responsiveSize(5, 6)};
6267
${landscapeStyle(
63-
() => css`
68+
() => css`
6469
> svg {
6570
width: 16px;
6671
fill: ${({ theme }) => theme.primaryBlue};
6772
}
6873
`
69-
)}
74+
)}
7075
`;
7176

7277
const AccountContainer = styled.div`
@@ -90,18 +95,22 @@ const AccountContainer = styled.div`
9095
const DesktopText = styled.span`
9196
display: none;
9297
${landscapeStyle(
93-
() => css`
98+
() => css`
9499
display: inline;
95100
`
96-
)}
101+
)}
102+
`;
103+
104+
const Timestamp = styled.p`
105+
color: ${({ theme }) => theme.secondaryText};
97106
`;
98107

99108
const MobileText = styled.span`
100109
${landscapeStyle(
101-
() => css`
110+
() => css`
102111
display: none;
103112
`
104-
)}
113+
)}
105114
`;
106115

107116
const AttachedFileText: React.FC = () => (
@@ -115,9 +124,10 @@ interface IEvidenceCard {
115124
evidence: string;
116125
sender: string;
117126
index: number;
127+
timestamp: string;
118128
}
119129

120-
const EvidenceCard: React.FC<IEvidenceCard> = ({ evidence, sender, index }) => {
130+
const EvidenceCard: React.FC<IEvidenceCard> = ({ evidence, sender, index, timestamp }) => {
121131
const { data } = useIPFSQuery(evidence);
122132
return (
123133
<StyledCard>
@@ -137,6 +147,7 @@ const EvidenceCard: React.FC<IEvidenceCard> = ({ evidence, sender, index }) => {
137147
<Identicon size="24" string={sender} />
138148
<p>{shortenAddress(sender)}</p>
139149
</AccountContainer>
150+
<Timestamp>{formatDate(Number(timestamp))}</Timestamp>
140151
{data && typeof data.fileURI !== "undefined" && (
141152
<StyledA href={getIpfsUrl(data.fileURI)} target="_blank" rel="noreferrer">
142153
<AttachmentIcon />

web/src/hooks/queries/useEvidences.ts

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const evidencesQuery = graphql(`
1414
sender {
1515
id
1616
}
17+
timestamp
1718
}
1819
}
1920
`);

web/src/pages/Cases/CaseDetails/Evidence/index.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ const Evidence: React.FC<{ arbitrable?: `0x${string}` }> = ({ arbitrable }) => {
6262
/>
6363
</EnsureChain>
6464
{data ? (
65-
data.evidences.map(({ key, evidence, sender }, i) => (
66-
<EvidenceCard key={key} index={i + 1} sender={sender?.id} {...{ evidence }} />
65+
data.evidences.map(({ key, evidence, sender, timestamp }, i) => (
66+
<EvidenceCard key={key} index={i + 1} sender={sender?.id} {...{ evidence, timestamp }} />
6767
))
6868
) : (
6969
<SkeletonEvidenceCard />

0 commit comments

Comments
 (0)