@@ -105,10 +105,10 @@ export const NotificationRow: FC<IProps> = ({ notification, hostname }) => {
105
105
return (
106
106
< div
107
107
id = { notification . id }
108
- className = "flex space-x-3 py-2 px-3 bg-white dark:bg-gray-dark dark:text-white hover:bg-gray-100 dark:hover:bg-gray-darker border-b border-gray-100 dark:border-gray-darker group"
108
+ className = "flex py-2 px-3 bg-white dark:bg-gray-dark dark:text-white hover:bg-gray-100 dark:hover:bg-gray-darker border-b border-gray-100 dark:border-gray-darker group"
109
109
>
110
110
< div
111
- className = { `flex justify-center items-center w-5 ${ iconColor } ` }
111
+ className = { `flex justify-center items-center mr-3 w-5 ${ iconColor } ` }
112
112
title = { notificationTitle }
113
113
>
114
114
< NotificationIcon size = { 18 } aria-label = { notification . subject . type } />
@@ -120,122 +120,115 @@ export const NotificationRow: FC<IProps> = ({ notification, hostname }) => {
120
120
onKeyDown = { ( ) => openNotification ( ) }
121
121
>
122
122
< div
123
- className = "mb-1 text-sm whitespace-nowrap cursor-pointer"
123
+ className = "mb-1 text-sm truncate cursor-pointer"
124
124
role = "main"
125
125
title = { notification . subject . title }
126
126
>
127
127
{ notification . subject . title }
128
128
</ div >
129
129
130
- < div className = "text-xs text-capitalize" >
131
- < span title = { updatedLabel } className = "flex items-center gap-1" >
132
- { notification . subject . user ? (
133
- < span
134
- title = "View User Profile"
135
- onClick = { openUserProfile }
136
- onKeyDown = { openUserProfile }
137
- className = "flex-shrink-0"
138
- >
139
- < img
140
- className = "rounded-full w-4 h-4 object-cover cursor-pointer"
141
- src = { notification . subject . user . avatar_url }
142
- title = { notification . subject . user . login }
143
- alt = { `${ notification . subject . user . login } 's avatar` }
144
- />
145
- </ span >
146
- ) : (
147
- < span >
148
- < FeedPersonIcon
149
- size = { 16 }
150
- className = "text-gray-500 dark:text-gray-300"
151
- />
152
- </ span >
153
- ) }
154
- < span title = { reason . description } > { reason . title } </ span >
155
- < span > { updatedAt } </ span >
156
- { settings . showPills && (
157
- < span className = "hover:overflow-auto" >
158
- { notification . subject ?. linkedIssues ?. length > 0 && (
159
- < span title = { linkedIssuesPillDescription } >
160
- < button type = "button" className = { Constants . PILL_CLASS_NAME } >
161
- < IssueClosedIcon
162
- size = { 12 }
163
- className = { `mr-1 ${ IconColor . GREEN } ` }
164
- aria-label = { linkedIssuesPillDescription }
165
- />
166
- { notification . subject . linkedIssues . length }
167
- </ button >
168
- </ span >
169
- ) }
170
- { notification . subject . reviews
171
- ? notification . subject . reviews . map ( ( review ) => {
172
- const icon = getPullRequestReviewIcon ( review ) ;
173
- if ( ! icon ) {
174
- return null ;
175
- }
130
+ < div className = "flex flex-wrap items-center text-xs text-capitalize gap-1" >
131
+ { notification . subject . user ? (
132
+ < div
133
+ title = "View User Profile"
134
+ onClick = { openUserProfile }
135
+ onKeyDown = { openUserProfile }
136
+ className = "flex-shrink-0"
137
+ >
138
+ < img
139
+ className = "rounded-full w-4 h-4 object-cover cursor-pointer"
140
+ src = { notification . subject . user . avatar_url }
141
+ title = { notification . subject . user . login }
142
+ alt = { `${ notification . subject . user . login } 's avatar` }
143
+ />
144
+ </ div >
145
+ ) : (
146
+ < div >
147
+ < FeedPersonIcon
148
+ size = { 16 }
149
+ className = "text-gray-500 dark:text-gray-300"
150
+ />
151
+ </ div >
152
+ ) }
153
+ < div title = { reason . description } > { reason . title } </ div >
154
+ < div title = { updatedLabel } > { updatedAt } </ div >
155
+ { settings . showPills && (
156
+ < div >
157
+ { notification . subject ?. linkedIssues ?. length > 0 && (
158
+ < span title = { linkedIssuesPillDescription } >
159
+ < button type = "button" className = { Constants . PILL_CLASS_NAME } >
160
+ < IssueClosedIcon
161
+ size = { 12 }
162
+ className = { `mr-1 ${ IconColor . GREEN } ` }
163
+ aria-label = { linkedIssuesPillDescription }
164
+ />
165
+ { notification . subject . linkedIssues . length }
166
+ </ button >
167
+ </ span >
168
+ ) }
169
+ { notification . subject . reviews ?. map ( ( review ) => {
170
+ const icon = getPullRequestReviewIcon ( review ) ;
171
+ if ( ! icon ) {
172
+ return null ;
173
+ }
176
174
177
- return (
178
- < span key = { review . state } title = { icon . description } >
179
- < button
180
- type = "button"
181
- className = { Constants . PILL_CLASS_NAME }
182
- >
183
- < icon . type
184
- size = { 12 }
185
- className = { `mr-1 ${ icon . color } ` }
186
- aria-label = { icon . description }
187
- />
188
- { review . users . length }
189
- </ button >
190
- </ span >
191
- ) ;
192
- } )
193
- : null }
194
- { notification . subject ?. comments > 0 && (
195
- < span title = { commentsPillDescription } >
175
+ return (
176
+ < span key = { review . state } title = { icon . description } >
196
177
< button type = "button" className = { Constants . PILL_CLASS_NAME } >
197
- < CommentIcon
178
+ < icon . type
198
179
size = { 12 }
199
- className = { `mr-1 ${ IconColor . GRAY } ` }
200
- aria-label = { commentsPillDescription }
180
+ className = { `mr-1 ${ icon . color } ` }
181
+ aria-label = { icon . description }
201
182
/>
202
- { notification . subject . comments }
183
+ { review . users . length }
203
184
</ button >
204
185
</ span >
205
- ) }
206
- { notification . subject ?. labels ?. length > 0 && (
207
- < span title = { labelsPillDescription } >
208
- < button type = "button" className = { Constants . PILL_CLASS_NAME } >
209
- < TagIcon
210
- size = { 12 }
211
- className = { `mr-1 ${ IconColor . GRAY } ` }
212
- aria-label = { labelsPillDescription }
213
- />
214
- { notification . subject . labels . length }
215
- </ button >
216
- </ span >
217
- ) }
218
- { notification . subject . milestone && (
219
- < span
220
- className = "ml-1"
221
- title = { notification . subject . milestone . title }
222
- >
223
- < button type = "button" className = { Constants . PILL_CLASS_NAME } >
224
- < MilestoneIcon
225
- size = { 12 }
226
- className = {
227
- notification . subject . milestone . state === 'open'
228
- ? IconColor . GREEN
229
- : IconColor . RED
230
- }
231
- aria-label = { notification . subject . milestone . title }
232
- />
233
- </ button >
234
- </ span >
235
- ) }
236
- </ span >
237
- ) }
238
- </ span >
186
+ ) ;
187
+ } ) }
188
+ { notification . subject ?. comments > 0 && (
189
+ < span title = { commentsPillDescription } >
190
+ < button type = "button" className = { Constants . PILL_CLASS_NAME } >
191
+ < CommentIcon
192
+ size = { 12 }
193
+ className = { `mr-1 ${ IconColor . GRAY } ` }
194
+ aria-label = { commentsPillDescription }
195
+ />
196
+ { notification . subject . comments }
197
+ </ button >
198
+ </ span >
199
+ ) }
200
+ { notification . subject ?. labels ?. length > 0 && (
201
+ < span title = { labelsPillDescription } >
202
+ < button type = "button" className = { Constants . PILL_CLASS_NAME } >
203
+ < TagIcon
204
+ size = { 12 }
205
+ className = { `mr-1 ${ IconColor . GRAY } ` }
206
+ aria-label = { labelsPillDescription }
207
+ />
208
+ { notification . subject . labels . length }
209
+ </ button >
210
+ </ span >
211
+ ) }
212
+ { notification . subject . milestone && (
213
+ < span
214
+ className = "ml-1"
215
+ title = { notification . subject . milestone . title }
216
+ >
217
+ < button type = "button" className = { Constants . PILL_CLASS_NAME } >
218
+ < MilestoneIcon
219
+ size = { 12 }
220
+ className = {
221
+ notification . subject . milestone . state === 'open'
222
+ ? IconColor . GREEN
223
+ : IconColor . RED
224
+ }
225
+ aria-label = { notification . subject . milestone . title }
226
+ />
227
+ </ button >
228
+ </ span >
229
+ ) }
230
+ </ div >
231
+ ) }
239
232
</ div >
240
233
</ div >
241
234
0 commit comments