@@ -3,6 +3,7 @@ import { isSafeGitHubUrl } from "../../lib/url";
33import { relativeTime , shortRelativeTime , formatCount } from "../../lib/format" ;
44import { expandEmoji } from "../../lib/emoji" ;
55import { labelColorClass } from "../../lib/label-colors" ;
6+ import { Tooltip } from "../shared/Tooltip" ;
67
78export interface ItemRowProps {
89 repo : string ;
@@ -78,14 +79,15 @@ export default function ItemRow(props: ItemRowProps) {
7879
7980 { /* Repo badge */ }
8081 < Show when = { ! props . hideRepo } >
81- < span
82- class = { `shrink-0 inline-flex items-center rounded-full font-mono font-medium
83- bg-primary/10 text-primary
84- ${ isCompact ( ) ? "text-xs px-2 py-0.5" : "text-xs px-2.5 py-1" } ` }
85- title = { props . repo }
86- >
87- { props . repo }
88- </ span >
82+ < Tooltip content = { props . repo } class = "relative z-10" >
83+ < span
84+ class = { `shrink-0 inline-flex items-center rounded-full font-mono font-medium
85+ bg-primary/10 text-primary
86+ ${ isCompact ( ) ? "text-xs px-2 py-0.5" : "text-xs px-2.5 py-1" } ` }
87+ >
88+ { props . repo }
89+ </ span >
90+ </ Tooltip >
8991 </ Show >
9092
9193 { /* Main content */ }
@@ -127,22 +129,24 @@ export default function ItemRow(props: ItemRowProps) {
127129 < div class = "relative z-10" > { props . surfacedByBadge } </ div >
128130 </ Show >
129131 < span class = "inline-flex items-center gap-1 whitespace-nowrap" >
130- < time
131- datetime = { props . createdAt }
132- title = { staticDateInfo ( ) . createdTitle }
133- aria-label = { dateDisplay ( ) . createdLabel }
134- >
135- { dateDisplay ( ) . created }
136- </ time >
137- < Show when = { shouldShowUpdated ( ) } >
138- < span aria-hidden = "true" > { "\u00B7" } </ span >
132+ < Tooltip content = { staticDateInfo ( ) . createdTitle } class = "relative z-10" >
139133 < time
140- datetime = { props . updatedAt }
141- title = { staticDateInfo ( ) . updatedTitle }
142- aria-label = { dateDisplay ( ) . updatedLabel }
134+ datetime = { props . createdAt }
135+ aria-label = { dateDisplay ( ) . createdLabel }
143136 >
144- { dateDisplay ( ) . updated }
137+ { dateDisplay ( ) . created }
145138 </ time >
139+ </ Tooltip >
140+ < Show when = { shouldShowUpdated ( ) } >
141+ < span aria-hidden = "true" > { "\u00B7" } </ span >
142+ < Tooltip content = { staticDateInfo ( ) . updatedTitle } class = "relative z-10" >
143+ < time
144+ datetime = { props . updatedAt }
145+ aria-label = { dateDisplay ( ) . updatedLabel }
146+ >
147+ { dateDisplay ( ) . updated }
148+ </ time >
149+ </ Tooltip >
146150 </ Show >
147151 </ span >
148152 < Show when = { props . isPolling } >
@@ -169,33 +173,34 @@ export default function ItemRow(props: ItemRowProps) {
169173 </ div >
170174
171175 { /* Ignore button — visible on hover */ }
172- < button
173- data-ignore-btn
174- onClick = { ( ) => props . onIgnore ( ) }
175- class = { `relative z-10 shrink-0 self-center rounded p-1
176- text-base-content/30
177- hover:text-error
178- opacity-0 group-hover:opacity-100 focus:opacity-100
179- transition-opacity focus:outline-none focus:ring-2 focus:ring-error` }
180- title = "Ignore this item"
181- aria-label = { `Ignore #${ props . number } ${ props . title } ` }
182- >
183- { /* Eye-slash icon */ }
184- < svg
185- xmlns = "http://www.w3.org/2000/svg"
186- class = { isCompact ( ) ? "h-3.5 w-3.5" : "h-4 w-4" }
187- viewBox = "0 0 20 20"
188- fill = "currentColor"
189- aria-hidden = "true"
176+ < Tooltip content = "Ignore" class = "relative z-10" >
177+ < button
178+ data-ignore-btn
179+ onClick = { ( ) => props . onIgnore ( ) }
180+ class = { `shrink-0 self-center rounded p-1
181+ text-base-content/30
182+ hover:text-error
183+ opacity-0 group-hover:opacity-100 focus:opacity-100
184+ transition-opacity focus:outline-none focus:ring-2 focus:ring-error` }
185+ aria-label = { `Ignore #${ props . number } ${ props . title } ` }
190186 >
191- < path
192- fill-rule = "evenodd"
193- d = "M3.707 2.293a1 1 0 00-1.414 1.414l14 14a1 1 0 001.414-1.414l-1.473-1.473A10.014 10.014 0 0019.542 10C18.268 5.943 14.478 3 10 3a9.958 9.958 0 00-4.512 1.074l-1.78-1.781zm4.261 4.26l1.514 1.515a2.003 2.003 0 012.45 2.45l1.514 1.514a4 4 0 00-5.478-5.478z"
194- clip-rule = "evenodd"
195- />
196- < path d = "M12.454 16.697L9.75 13.992a4 4 0 01-3.742-3.741L2.335 6.578A9.98 9.98 0 00.458 10c1.274 4.057 5.065 7 9.542 7 .847 0 1.669-.105 2.454-.303z" />
197- </ svg >
198- </ button >
187+ { /* Eye-slash icon */ }
188+ < svg
189+ xmlns = "http://www.w3.org/2000/svg"
190+ class = { isCompact ( ) ? "h-3.5 w-3.5" : "h-4 w-4" }
191+ viewBox = "0 0 20 20"
192+ fill = "currentColor"
193+ aria-hidden = "true"
194+ >
195+ < path
196+ fill-rule = "evenodd"
197+ d = "M3.707 2.293a1 1 0 00-1.414 1.414l14 14a1 1 0 001.414-1.414l-1.473-1.473A10.014 10.014 0 0019.542 10C18.268 5.943 14.478 3 10 3a9.958 9.958 0 00-4.512 1.074l-1.78-1.781zm4.261 4.26l1.514 1.515a2.003 2.003 0 012.45 2.45l1.514 1.514a4 4 0 00-5.478-5.478z"
198+ clip-rule = "evenodd"
199+ />
200+ < path d = "M12.454 16.697L9.75 13.992a4 4 0 01-3.742-3.741L2.335 6.578A9.98 9.98 0 00.458 10c1.274 4.057 5.065 7 9.542 7 .847 0 1.669-.105 2.454-.303z" />
201+ </ svg >
202+ </ button >
203+ </ Tooltip >
199204 </ div >
200205 ) ;
201206}
0 commit comments