From d31e7006b81b05881bfb082fb8b5f81700111d1e Mon Sep 17 00:00:00 2001 From: Shubham Parkhi Date: Thu, 13 Jun 2024 23:43:36 +0530 Subject: [PATCH 1/7] feat(web): Evidence: display submission timestamp --- subgraph/core/schema.graphql | 2 ++ subgraph/core/src/EvidenceModule.ts | 1 + web/src/components/EvidenceCard.tsx | 4 +++- web/src/hooks/queries/useEvidences.ts | 1 + web/src/pages/Cases/CaseDetails/Evidence/index.tsx | 4 ++-- 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/subgraph/core/schema.graphql b/subgraph/core/schema.graphql index 8b601f091..f1fac66ea 100644 --- a/subgraph/core/schema.graphql +++ b/subgraph/core/schema.graphql @@ -53,6 +53,7 @@ interface Evidence { evidence: String! evidenceGroup: EvidenceGroup! sender: User! + timestamp: BigInt! } ############ @@ -296,6 +297,7 @@ type ClassicEvidence implements Evidence @entity { evidence: String! evidenceGroup: EvidenceGroup! sender: User! + timestamp: BigInt! } type ClassicContribution implements Contribution @entity { diff --git a/subgraph/core/src/EvidenceModule.ts b/subgraph/core/src/EvidenceModule.ts index 008ed92f1..bd844f032 100644 --- a/subgraph/core/src/EvidenceModule.ts +++ b/subgraph/core/src/EvidenceModule.ts @@ -12,6 +12,7 @@ export function handleEvidenceEvent(event: EvidenceEvent): void { evidenceGroup.save(); const evidence = new ClassicEvidence(`${evidenceGroupID}-${evidenceIndex.toString()}`); const userId = event.params._party.toHexString(); + evidence.timestamp = event.block.timestamp; evidence.evidence = event.params._evidence; evidence.evidenceGroup = evidenceGroupID.toString(); evidence.sender = userId; diff --git a/web/src/components/EvidenceCard.tsx b/web/src/components/EvidenceCard.tsx index 50cccdbe2..8c1449553 100644 --- a/web/src/components/EvidenceCard.tsx +++ b/web/src/components/EvidenceCard.tsx @@ -115,9 +115,10 @@ interface IEvidenceCard { evidence: string; sender: string; index: number; + timestamp: BigInt; } -const EvidenceCard: React.FC = ({ evidence, sender, index }) => { +const EvidenceCard: React.FC = ({ evidence, sender, index, timestamp }) => { const { data } = useIPFSQuery(evidence); return ( @@ -137,6 +138,7 @@ const EvidenceCard: React.FC = ({ evidence, sender, index }) => {

{shortenAddress(sender)}

+

{new Date(timestamp).toLocaleString()}

{data && typeof data.fileURI !== "undefined" && ( diff --git a/web/src/hooks/queries/useEvidences.ts b/web/src/hooks/queries/useEvidences.ts index 30daba1a9..e82ecebae 100644 --- a/web/src/hooks/queries/useEvidences.ts +++ b/web/src/hooks/queries/useEvidences.ts @@ -14,6 +14,7 @@ const evidencesQuery = graphql(` sender { id } + timestamp } } `); diff --git a/web/src/pages/Cases/CaseDetails/Evidence/index.tsx b/web/src/pages/Cases/CaseDetails/Evidence/index.tsx index 3d75eada8..13184f920 100644 --- a/web/src/pages/Cases/CaseDetails/Evidence/index.tsx +++ b/web/src/pages/Cases/CaseDetails/Evidence/index.tsx @@ -62,8 +62,8 @@ const Evidence: React.FC<{ arbitrable?: `0x${string}` }> = ({ arbitrable }) => { /> {data ? ( - data.evidences.map(({ key, evidence, sender }, i) => ( - + data.evidences.map(({ key, evidence, sender, timestamp }, i) => ( + )) ) : ( From 75d501914e31cf103d26a7f1dcf6e74de344c048 Mon Sep 17 00:00:00 2001 From: Shubham Parkhi Date: Fri, 14 Jun 2024 18:29:13 +0530 Subject: [PATCH 2/7] Fix(web): Display of timestamp --- web/src/components/EvidenceCard.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/web/src/components/EvidenceCard.tsx b/web/src/components/EvidenceCard.tsx index 8c1449553..d1999bc5d 100644 --- a/web/src/components/EvidenceCard.tsx +++ b/web/src/components/EvidenceCard.tsx @@ -115,7 +115,7 @@ interface IEvidenceCard { evidence: string; sender: string; index: number; - timestamp: BigInt; + timestamp: string; } const EvidenceCard: React.FC = ({ evidence, sender, index, timestamp }) => { @@ -138,7 +138,11 @@ const EvidenceCard: React.FC = ({ evidence, sender, index, timest

{shortenAddress(sender)}

-

{new Date(timestamp).toLocaleString()}

+

{new Date(parseInt(timestamp) * 1000).toLocaleDateString(undefined, { + year: 'numeric', + month: 'long', + day: 'numeric', + })}

{data && typeof data.fileURI !== "undefined" && ( From 5229e390e6321ce08dd74b0ef78de1fd4bd1019c Mon Sep 17 00:00:00 2001 From: Shubham Parkhi Date: Fri, 14 Jun 2024 22:08:05 +0530 Subject: [PATCH 3/7] Fix(web): Updated styling for timestamp --- web/src/components/EvidenceCard.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/web/src/components/EvidenceCard.tsx b/web/src/components/EvidenceCard.tsx index d1999bc5d..a9e8f0ac0 100644 --- a/web/src/components/EvidenceCard.tsx +++ b/web/src/components/EvidenceCard.tsx @@ -96,6 +96,10 @@ const DesktopText = styled.span` )} `; +const Timestamp = styled.p` + color: #BECCE5; +`; + const MobileText = styled.span` ${landscapeStyle( () => css` @@ -138,11 +142,11 @@ const EvidenceCard: React.FC = ({ evidence, sender, index, timest

{shortenAddress(sender)}

-

{new Date(parseInt(timestamp) * 1000).toLocaleDateString(undefined, { + {new Date(parseInt(timestamp) * 1000).toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric', - })}

+ })} {data && typeof data.fileURI !== "undefined" && ( From d35fe084993ba673749de06f5b44d86adcac09d3 Mon Sep 17 00:00:00 2001 From: Shubham Parkhi Date: Fri, 14 Jun 2024 22:25:31 +0530 Subject: [PATCH 4/7] fix(web): Improved code quality and responsive --- web/src/components/EvidenceCard.tsx | 1 + web/src/pages/Cases/CaseDetails/Evidence/index.tsx | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/web/src/components/EvidenceCard.tsx b/web/src/components/EvidenceCard.tsx index a9e8f0ac0..d8a658e48 100644 --- a/web/src/components/EvidenceCard.tsx +++ b/web/src/components/EvidenceCard.tsx @@ -45,6 +45,7 @@ const StyledReactMarkdown = styled(ReactMarkdown)` const BottomShade = styled.div` background-color: ${({ theme }) => theme.lightBlue}; display: flex; + flex-wrap: wrap; align-items: center; gap: 16px; padding: 12px ${responsiveSize(8, 24)}; diff --git a/web/src/pages/Cases/CaseDetails/Evidence/index.tsx b/web/src/pages/Cases/CaseDetails/Evidence/index.tsx index 13184f920..896d937e5 100644 --- a/web/src/pages/Cases/CaseDetails/Evidence/index.tsx +++ b/web/src/pages/Cases/CaseDetails/Evidence/index.tsx @@ -63,7 +63,7 @@ const Evidence: React.FC<{ arbitrable?: `0x${string}` }> = ({ arbitrable }) => { {data ? ( data.evidences.map(({ key, evidence, sender, timestamp }, i) => ( - + )) ) : ( From e786ddae46a1b9ebe87c97a2d530f12752c9a057 Mon Sep 17 00:00:00 2001 From: Shubham Parkhi Date: Mon, 17 Jun 2024 15:35:11 +0530 Subject: [PATCH 5/7] fix(web): Font colour change, used function already defined --- web/src/components/EvidenceCard.tsx | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/web/src/components/EvidenceCard.tsx b/web/src/components/EvidenceCard.tsx index d8a658e48..a346fa92c 100644 --- a/web/src/components/EvidenceCard.tsx +++ b/web/src/components/EvidenceCard.tsx @@ -11,6 +11,7 @@ import AttachmentIcon from "svgs/icons/attachment.svg"; import { useIPFSQuery } from "hooks/useIPFSQuery"; import { getIpfsUrl } from "utils/getIpfsUrl"; import { shortenAddress } from "utils/shortenAddress"; +import { formatDate } from "~src/utils/date"; import { landscapeStyle } from "styles/landscapeStyle"; import { responsiveSize } from "styles/responsiveSize"; @@ -40,6 +41,9 @@ const StyledReactMarkdown = styled(ReactMarkdown)` a { font-size: 16px; } + code { + color: ${({ theme }) => theme.secondaryText}; + } `; const BottomShade = styled.div` @@ -61,13 +65,13 @@ const StyledA = styled.a` margin-left: auto; gap: ${responsiveSize(5, 6)}; ${landscapeStyle( - () => css` + () => css` > svg { width: 16px; fill: ${({ theme }) => theme.primaryBlue}; } ` - )} +)} `; const AccountContainer = styled.div` @@ -91,22 +95,22 @@ const AccountContainer = styled.div` const DesktopText = styled.span` display: none; ${landscapeStyle( - () => css` + () => css` display: inline; ` - )} +)} `; const Timestamp = styled.p` - color: #BECCE5; +color: ${({ theme }) => theme.secondaryText}; `; const MobileText = styled.span` ${landscapeStyle( - () => css` + () => css` display: none; ` - )} +)} `; const AttachedFileText: React.FC = () => ( @@ -143,11 +147,7 @@ const EvidenceCard: React.FC = ({ evidence, sender, index, timest

{shortenAddress(sender)}

- {new Date(parseInt(timestamp) * 1000).toLocaleDateString('en-US', { - year: 'numeric', - month: 'long', - day: 'numeric', - })} + {formatDate(Number(timestamp))} {data && typeof data.fileURI !== "undefined" && ( From afc8f04d850029895deb1cd446693a6c4041576e Mon Sep 17 00:00:00 2001 From: Shubham Parkhi Date: Mon, 17 Jun 2024 15:37:51 +0530 Subject: [PATCH 6/7] fix(web): cleaner code --- web/src/components/EvidenceCard.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/components/EvidenceCard.tsx b/web/src/components/EvidenceCard.tsx index a346fa92c..e03d259a9 100644 --- a/web/src/components/EvidenceCard.tsx +++ b/web/src/components/EvidenceCard.tsx @@ -11,7 +11,7 @@ import AttachmentIcon from "svgs/icons/attachment.svg"; import { useIPFSQuery } from "hooks/useIPFSQuery"; import { getIpfsUrl } from "utils/getIpfsUrl"; import { shortenAddress } from "utils/shortenAddress"; -import { formatDate } from "~src/utils/date"; +import { formatDate } from "utils/date"; import { landscapeStyle } from "styles/landscapeStyle"; import { responsiveSize } from "styles/responsiveSize"; From 3f2934c43034fa3f6beff4b53c75203826e77eb8 Mon Sep 17 00:00:00 2001 From: kemuru <102478601+kemuru@users.noreply.github.com> Date: Mon, 17 Jun 2024 12:37:22 +0200 Subject: [PATCH 7/7] chore: updated package json version for subgraph --- subgraph/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subgraph/package.json b/subgraph/package.json index dc8db49a5..529b39724 100644 --- a/subgraph/package.json +++ b/subgraph/package.json @@ -1,6 +1,6 @@ { "name": "@kleros/kleros-v2-subgraph", - "version": "0.5.0", + "version": "0.5.1", "license": "MIT", "scripts": { "update:core:arbitrum-sepolia-devnet": "./scripts/update.sh arbitrumSepoliaDevnet arbitrum-sepolia core/subgraph.yaml",