@@ -8,17 +8,18 @@ import { Button } from "@kleros/ui-components-library";
88
99import DownArrow from "svgs/icons/arrow-down.svg" ;
1010
11+ import { useSpamEvidence } from "hooks/useSpamEvidence" ;
12+
1113import { useDisputeDetailsQuery } from "queries/useDisputeDetailsQuery" ;
1214import { useEvidences } from "queries/useEvidences" ;
1315
1416import { responsiveSize } from "styles/responsiveSize" ;
1517
18+ import { Divider } from "components/Divider" ;
1619import EvidenceCard from "components/EvidenceCard" ;
1720import { SkeletonEvidenceCard } from "components/StyledSkeleton" ;
1821
1922import EvidenceSearch from "./EvidenceSearch" ;
20- import { Divider } from "components/Divider" ;
21- import { spamEvidencesIds } from "src/consts" ;
2223
2324const Container = styled . div `
2425 width: 100%;
@@ -79,6 +80,7 @@ const Evidence: React.FC = () => {
7980 const [ search , setSearch ] = useState < string > ( ) ;
8081 const [ debouncedSearch , setDebouncedSearch ] = useState < string > ( ) ;
8182 const [ showSpam , setShowSpam ] = useState ( false ) ;
83+ const { data : spamEvidences } = useSpamEvidence ( ) ;
8284
8385 const { data } = useEvidences ( disputeData ?. dispute ?. externalDisputeId ?. toString ( ) , debouncedSearch ) ;
8486
@@ -93,12 +95,30 @@ const Evidence: React.FC = () => {
9395 latestEvidence . scrollIntoView ( { behavior : "smooth" } ) ;
9496 } , [ ref ] ) ;
9597
98+ const flattenedSpamEvidences = useMemo (
99+ ( ) =>
100+ spamEvidences ?. courtv2EvidenceSpamsByDeployment . reduce < string [ ] > ( ( acc , current ) => {
101+ if ( current . dispute === id ) {
102+ return [ ...acc , current . disputeEvidenceIndex ] ;
103+ }
104+ return acc ;
105+ } , [ ] ) ,
106+ [ id , spamEvidences ]
107+ ) ;
108+
109+ const isSpam = useCallback (
110+ ( evidenceId : string ) => {
111+ return Boolean ( flattenedSpamEvidences ?. includes ( evidenceId ) ) ;
112+ } ,
113+ [ flattenedSpamEvidences ]
114+ ) ;
115+
96116 const evidences = useMemo ( ( ) => {
97117 if ( ! data ?. evidences ) return ;
98118 const spamEvidences = data . evidences . filter ( ( evidence ) => isSpam ( evidence . id ) ) ;
99119 const realEvidences = data . evidences . filter ( ( evidence ) => ! isSpam ( evidence . id ) ) ;
100120 return { realEvidences, spamEvidences } ;
101- } , [ data ] ) ;
121+ } , [ data , isSpam ] ) ;
102122
103123 return (
104124 < Container ref = { ref } >
@@ -142,8 +162,4 @@ const Evidence: React.FC = () => {
142162 ) ;
143163} ;
144164
145- const isSpam = ( id : string ) => {
146- return spamEvidencesIds . includes ( id ) ;
147- } ;
148-
149165export default Evidence ;
0 commit comments