@@ -8,17 +8,18 @@ import { Button } from "@kleros/ui-components-library";
8
8
9
9
import DownArrow from "svgs/icons/arrow-down.svg" ;
10
10
11
+ import { useSpamEvidence } from "hooks/useSpamEvidence" ;
12
+
11
13
import { useDisputeDetailsQuery } from "queries/useDisputeDetailsQuery" ;
12
14
import { useEvidences } from "queries/useEvidences" ;
13
15
14
16
import { responsiveSize } from "styles/responsiveSize" ;
15
17
18
+ import { Divider } from "components/Divider" ;
16
19
import EvidenceCard from "components/EvidenceCard" ;
17
20
import { SkeletonEvidenceCard } from "components/StyledSkeleton" ;
18
21
19
22
import EvidenceSearch from "./EvidenceSearch" ;
20
- import { Divider } from "components/Divider" ;
21
- import { spamEvidencesIds } from "src/consts" ;
22
23
23
24
const Container = styled . div `
24
25
width: 100%;
@@ -79,6 +80,7 @@ const Evidence: React.FC = () => {
79
80
const [ search , setSearch ] = useState < string > ( ) ;
80
81
const [ debouncedSearch , setDebouncedSearch ] = useState < string > ( ) ;
81
82
const [ showSpam , setShowSpam ] = useState ( false ) ;
83
+ const { data : spamEvidences } = useSpamEvidence ( ) ;
82
84
83
85
const { data } = useEvidences ( disputeData ?. dispute ?. externalDisputeId ?. toString ( ) , debouncedSearch ) ;
84
86
@@ -93,12 +95,30 @@ const Evidence: React.FC = () => {
93
95
latestEvidence . scrollIntoView ( { behavior : "smooth" } ) ;
94
96
} , [ ref ] ) ;
95
97
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
+
96
116
const evidences = useMemo ( ( ) => {
97
117
if ( ! data ?. evidences ) return ;
98
118
const spamEvidences = data . evidences . filter ( ( evidence ) => isSpam ( evidence . id ) ) ;
99
119
const realEvidences = data . evidences . filter ( ( evidence ) => ! isSpam ( evidence . id ) ) ;
100
120
return { realEvidences, spamEvidences } ;
101
- } , [ data ] ) ;
121
+ } , [ data , isSpam ] ) ;
102
122
103
123
return (
104
124
< Container ref = { ref } >
@@ -142,8 +162,4 @@ const Evidence: React.FC = () => {
142
162
) ;
143
163
} ;
144
164
145
- const isSpam = ( id : string ) => {
146
- return spamEvidencesIds . includes ( id ) ;
147
- } ;
148
-
149
165
export default Evidence ;
0 commit comments