@@ -52,39 +52,42 @@ const Card = ({
52
52
}
53
53
}
54
54
55
- function handleOpen ( ) {
56
- const storedPapers = JSON . parse (
57
- localStorage . getItem ( "clickedPapers" ) ?? "[]" ,
58
- ) ;
59
- const paperExists = storedPapers . some (
60
- ( storedPaper : Paper ) => storedPaper . _id === paper . _id ,
61
- ) ;
55
+ function handleOpen ( event : React . MouseEvent ) {
56
+ event . stopPropagation ( ) ;
57
+
58
+ const storedPapers = JSON . parse ( localStorage . getItem ( "clickedPapers" ) ?? "[]" ) ;
59
+ const paperExists = storedPapers . some ( ( storedPaper : Paper ) => storedPaper . _id === paper . _id ) ;
60
+
62
61
if ( ! paperExists ) {
63
62
const updatedPapers = [ paper , ...storedPapers ] ;
64
63
const lastThreePapers = updatedPapers . slice ( 0 , 4 ) ;
65
64
localStorage . setItem ( "clickedPapers" , JSON . stringify ( lastThreePapers ) ) ;
66
65
}
67
- window . open ( paper . finalUrl , "_blank" ) ;
66
+
67
+ const link = document . createElement ( "a" ) ;
68
+ link . href = paper . finalUrl ;
69
+ link . target = "_blank" ;
70
+ link . rel = "noopener noreferrer" ;
71
+ document . body . appendChild ( link ) ;
72
+ link . click ( ) ;
73
+ document . body . removeChild ( link ) ;
68
74
}
75
+
69
76
70
77
return (
71
78
< div
72
79
key = { paper . _id }
73
80
className = { `w-56 space-y-1 rounded-xl border border-black dark:border-[#7480FF]/25 ${ checked ? "bg-[#EEF2FF] dark:bg-[#050b1f]" : "" } p-4 ` }
74
81
>
75
- < Link
76
- href = { paper . finalUrl }
77
- target = "_blank"
78
- rel = "noopener noreferrer"
79
- >
82
+ < button onClick = { handleOpen } className = "w-full" >
80
83
< Image
81
84
src = { paper . thumbnailUrl }
82
85
alt = { paper . subject }
83
86
width = { 320 }
84
87
height = { 180 }
85
88
className = "mb-2 h-[180px] w-full cursor-pointer object-cover"
86
89
/>
87
- </ Link >
90
+ </ button >
88
91
89
92
< div className = "text-sm font-medium" >
90
93
{ extractBracketContent ( paper . subject ) }
0 commit comments