@@ -57,8 +57,8 @@ function formatRelativeTime(timestamp: number): string {
5757
5858interface TaskHoverToolbarProps {
5959 isPinned : boolean ;
60- onTogglePin : ( ) => void ;
61- onDelete : ( ) => void ;
60+ onTogglePin ? : ( ) => void ;
61+ onDelete ? : ( ) => void ;
6262}
6363
6464function TaskHoverToolbar ( {
@@ -68,44 +68,50 @@ function TaskHoverToolbar({
6868} : TaskHoverToolbarProps ) {
6969 return (
7070 < span className = "hidden shrink-0 items-center gap-0.5 group-hover:flex" >
71- { /* biome-ignore lint/a11y/useSemanticElements: Cannot use button inside parent button (SidebarItem) */ }
72- < span
73- role = "button"
74- tabIndex = { 0 }
75- className = "flex h-5 w-5 cursor-pointer items-center justify-center rounded text-gray-10 transition-colors hover:bg-gray-4 hover:text-gray-12"
76- onClick = { ( e ) => {
77- e . stopPropagation ( ) ;
78- onTogglePin ( ) ;
79- } }
80- onKeyDown = { ( e ) => {
81- if ( e . key === "Enter" || e . key === " " ) {
71+ { onTogglePin && (
72+ // biome-ignore lint/a11y/useSemanticElements: Cannot use button inside parent button (SidebarItem)
73+ < span
74+ role = "button"
75+ tabIndex = { 0 }
76+ className = "flex h-5 w-5 cursor-pointer items-center justify-center rounded text-gray-10 transition-colors hover:bg-gray-4 hover:text-gray-12"
77+ onClick = { ( e ) => {
8278 e . stopPropagation ( ) ;
8379 onTogglePin ( ) ;
84- }
85- } }
86- title = { isPinned ? "Unpin task" : "Pin task" }
87- >
88- < PushPin size = { 12 } weight = { isPinned ? "fill" : "regular" } />
89- </ span >
90- { /* biome-ignore lint/a11y/useSemanticElements: Cannot use button inside parent button (SidebarItem) */ }
91- < span
92- role = "button"
93- tabIndex = { 0 }
94- className = "flex h-5 w-5 cursor-pointer items-center justify-center rounded text-gray-10 transition-colors hover:bg-red-4 hover:text-red-11"
95- onClick = { ( e ) => {
96- e . stopPropagation ( ) ;
97- onDelete ( ) ;
98- } }
99- onKeyDown = { ( e ) => {
100- if ( e . key === "Enter" || e . key === " " ) {
80+ } }
81+ onKeyDown = { ( e ) => {
82+ if ( e . key === "Enter" || e . key === " " ) {
83+ e . preventDefault ( ) ;
84+ e . stopPropagation ( ) ;
85+ onTogglePin ( ) ;
86+ }
87+ } }
88+ title = { isPinned ? "Unpin task" : "Pin task" }
89+ >
90+ < PushPin size = { 12 } weight = { isPinned ? "fill" : "regular" } />
91+ </ span >
92+ ) }
93+ { onDelete && (
94+ // biome-ignore lint/a11y/useSemanticElements: Cannot use button inside parent button (SidebarItem)
95+ < span
96+ role = "button"
97+ tabIndex = { 0 }
98+ className = "flex h-5 w-5 cursor-pointer items-center justify-center rounded text-gray-10 transition-colors hover:bg-red-4 hover:text-red-11"
99+ onClick = { ( e ) => {
101100 e . stopPropagation ( ) ;
102101 onDelete ( ) ;
103- }
104- } }
105- title = "Delete task"
106- >
107- < Trash size = { 12 } />
108- </ span >
102+ } }
103+ onKeyDown = { ( e ) => {
104+ if ( e . key === "Enter" || e . key === " " ) {
105+ e . preventDefault ( ) ;
106+ e . stopPropagation ( ) ;
107+ onDelete ( ) ;
108+ }
109+ } }
110+ title = "Delete task"
111+ >
112+ < Trash size = { 12 } />
113+ </ span >
114+ ) }
109115 </ span >
110116 ) ;
111117}
@@ -189,7 +195,7 @@ export function TaskItem({
189195 ) : null ;
190196
191197 const toolbar =
192- onDelete && onTogglePin ? (
198+ onDelete || onTogglePin ? (
193199 < TaskHoverToolbar
194200 isPinned = { isPinned }
195201 onTogglePin = { onTogglePin }
0 commit comments