@@ -25,7 +25,6 @@ const ListItem = ({ list }: ListItemProps) => {
2525 const [ countTasks , setCountTasks ] = useState ( 0 ) ;
2626 const [ isFocused , setIsFocused ] = useState ( false ) ;
2727 const { setOpen, setHandleDelete, setListTitle } = useAlertDialogStore ( ) ;
28- const [ clickTimeout , setClickTimeout ] = useState < NodeJS . Timeout | null > ( null ) ;
2928 const [ listName , setListName ] = useState ( list . name ) ;
3029 const [ previousName , setPreviousName ] = useState ( list . name ) ;
3130 const listNameDebounced = useDebounce ( listName , 200 ) ;
@@ -84,28 +83,14 @@ const ListItem = ({ list }: ListItemProps) => {
8483 navigate ( `/b/` + list . listId ) ;
8584 } ;
8685
87- const handleDoubleClick = ( ) => {
86+ const handleContextMenu = ( e : React . MouseEvent ) => {
87+ e . preventDefault ( ) ;
8888 if ( isFocused ) return ;
8989 inputRef . current ?. focus ( ) ;
9090 inputRef . current ?. setSelectionRange ( - 1 , - 1 ) ;
9191 setIsFocused ( true ) ;
9292 } ;
9393
94- const handleClicks = ( ) => {
95- if ( clickTimeout ) {
96- clearTimeout ( clickTimeout ) ;
97- setClickTimeout ( null ) ;
98- handleDoubleClick ( ) ;
99- } else {
100- handleClick ( ) ;
101- setClickTimeout (
102- setTimeout ( ( ) => {
103- setClickTimeout ( null ) ;
104- } , 200 )
105- ) ;
106- }
107- } ;
108-
10994 useEffect ( ( ) => {
11095 setCountTasks ( getTaskCount ( list , tasks , listId ) ) ;
11196 } , [ list , listId , tasks ] ) ;
@@ -118,8 +103,9 @@ const ListItem = ({ list }: ListItemProps) => {
118103 return (
119104 < li
120105 tabIndex = { 0 }
121- onClick = { handleClicks }
122- onKeyDown = { ( e ) => e . key === 'Enter' && handleClicks ( ) }
106+ onClick = { handleClick }
107+ onContextMenu = { handleContextMenu }
108+ onKeyDown = { ( e ) => e . key === 'Enter' && handleClick ( ) }
123109 className = { `relative w-full h-12 mx-auto mt-1 flex items-center justify-between text-neutral-500 dark:text-neutral-100
124110 bg-neutral-50 dark:bg-neutral-900 rounded-md hover:bg-black/10 dark:hover:bg-white/20
125111 transition-colors duration-200 select-none group
0 commit comments