1+ import { GitPullRequestIcon , IssueOpenedIcon } from '@primer/octicons-react'
12import {
23 ArrowDown ,
34 ArrowUp ,
4- Image ,
55 Code ,
66 ExternalLink ,
77 Filter ,
8+ Image ,
89 Link ,
910 Search ,
1011 TextSelect ,
1112 Trash2 ,
1213} from 'lucide-react'
13- import { IssueOpenedIcon , GitPullRequestIcon } from '@primer/octicons-react'
1414import { useMemo , useState } from 'react'
1515
1616// Mock data generator
1717const generateMockDrafts = ( ) => [
1818 {
1919 charCount : 245 ,
20+ codeCount : 3 ,
2021 content :
2122 'This PR addresses the memory leak issue reported in #1233. The problem was caused by event listeners not being properly disposed...' ,
22- codeCount : 3 ,
23- imageCount : 2 ,
2423 id : '1' ,
24+ imageCount : 2 ,
2525 kind : 'PR' ,
2626 lastEdit : Date . now ( ) - 1000 * 60 * 30 ,
2727 linkCount : 2 ,
@@ -35,11 +35,11 @@ const generateMockDrafts = () => [
3535 } ,
3636 {
3737 charCount : 180 ,
38+ codeCount : 0 ,
3839 content :
3940 "I've been using GitLens for years and it's absolutely essential for my workflow. The inline blame annotations are incredibly helpful when..." ,
40- codeCount : 0 ,
41- imageCount : 0 ,
4241 id : '2' ,
42+ imageCount : 0 ,
4343 kind : 'Comment' ,
4444 lastEdit : Date . now ( ) - 1000 * 60 * 60 * 2 ,
4545 linkCount : 1 ,
@@ -51,11 +51,11 @@ const generateMockDrafts = () => [
5151 } ,
5252 {
5353 charCount : 456 ,
54+ codeCount : 1 ,
5455 content :
5556 "When using useEffect with async functions, the cleanup function doesn't seem to be called correctly in certain edge cases..." ,
56- codeCount : 1 ,
57- imageCount : 0 ,
5857 id : '3' ,
58+ imageCount : 0 ,
5959 kind : 'Issue' ,
6060 lastEdit : Date . now ( ) - 1000 * 60 * 60 * 5 ,
6161 linkCount : 0 ,
@@ -69,11 +69,11 @@ const generateMockDrafts = () => [
6969 } ,
7070 {
7171 charCount : 322 ,
72+ codeCount : 0 ,
7273 content :
7374 'LGTM! Just a few minor suggestions about the examples in the routing section. Consider adding more context about...' ,
74- codeCount : 0 ,
75- imageCount : 4 ,
7675 id : '4' ,
76+ imageCount : 4 ,
7777 kind : 'PR' ,
7878 lastEdit : Date . now ( ) - 1000 * 60 * 60 * 24 ,
7979 linkCount : 3 ,
@@ -87,11 +87,11 @@ const generateMockDrafts = () => [
8787 } ,
8888 {
8989 charCount : 678 ,
90+ codeCount : 7 ,
9091 content :
9192 'This PR implements ESM support in worker threads as discussed in the last TSC meeting. The implementation follows...' ,
92- codeCount : 7 ,
93- imageCount : 1 ,
9493 id : '5' ,
94+ imageCount : 1 ,
9595 kind : 'PR' ,
9696 lastEdit : Date . now ( ) - 1000 * 60 * 60 * 48 ,
9797 linkCount : 5 ,
@@ -226,10 +226,7 @@ export const ClaudePrototype = () => {
226226
227227 if (
228228 filteredDrafts . length === 0 &&
229- ( searchQuery ||
230- hasCodeFilter ||
231- hasImageFilter ||
232- hasLinkFilter )
229+ ( searchQuery || hasCodeFilter || hasImageFilter || hasLinkFilter )
233230 ) {
234231 return (
235232 < div className = 'min-h-screen bg-white' >
@@ -273,8 +270,7 @@ export const ClaudePrototype = () => {
273270 < div className = 'min-h-screen bg-white' >
274271 { /* Header controls */ }
275272 < div className = 'p-3 border-b' >
276- < div className = 'flex flex-wrap gap-3 items-center' >
277- </ div >
273+ < div className = 'flex flex-wrap gap-3 items-center' > </ div >
278274
279275 { /* Bulk actions bar */ }
280276 { selectedIds . size > 0 && (
@@ -390,7 +386,9 @@ export const ClaudePrototype = () => {
390386 >
391387 < button
392388 type = 'button'
393- onClick = { ( ) => setSortBy ( sortBy === 'edited-newest' ? 'edited-oldest' : 'edited-newest' ) }
389+ onClick = { ( ) =>
390+ setSortBy ( sortBy === 'edited-newest' ? 'edited-oldest' : 'edited-newest' )
391+ }
394392 className = 'flex items-center gap-1 hover:text-gray-700'
395393 >
396394 EDITED
@@ -425,16 +423,21 @@ export const ClaudePrototype = () => {
425423 < GitPullRequestIcon size = { 16 } />
426424 ) : draft . kind === 'Issue' ? (
427425 < IssueOpenedIcon size = { 16 } />
428- ) : '🐙'
429- ) : '🔗' }
426+ ) : (
427+ '🐙'
428+ )
429+ ) : (
430+ < img
431+ src = 'https://styles.redditmedia.com/t5_2fwo/styles/communityIcon_1bqa1ibfp8q11.png?width=128& frame = 1 & auto = webp & s = 400 b33e7080aa4996c405a96b3872a12f0e3b68d '
432+ alt = 'Reddit'
433+ className = 'w-4 h-4 rounded-full'
434+ />
435+ ) }
430436 </ span >
431- < a
432- href = { draft . url }
433- className = 'hover:underline truncate'
434- >
435- { draft . repoSlug . startsWith ( 'r/' ) ? draft . repoSlug :
436- `#${ draft . number } ${ draft . repoSlug } `
437- }
437+ < a href = { draft . url } className = 'hover:underline truncate' >
438+ { draft . repoSlug . startsWith ( 'r/' )
439+ ? draft . repoSlug
440+ : `#${ draft . number } ${ draft . repoSlug } ` }
438441 </ a >
439442 </ div >
440443 < div className = 'flex items-center gap-1 flex-shrink-0' >
@@ -475,7 +478,10 @@ export const ClaudePrototype = () => {
475478 </ td >
476479 < td className = 'px-3 py-3 text-sm text-gray-500' >
477480 < div className = 'flex flex-col items-center gap-1' >
478- < span title = { new Date ( draft . lastEdit ) . toLocaleString ( ) } className = 'whitespace-nowrap' >
481+ < span
482+ title = { new Date ( draft . lastEdit ) . toLocaleString ( ) }
483+ className = 'whitespace-nowrap'
484+ >
479485 { timeAgo ( new Date ( draft . lastEdit ) ) }
480486 </ span >
481487 < div className = 'flex items-center gap-1' >
0 commit comments