@@ -16,6 +16,7 @@ export function ActionItemView({ item, number }: { item: ActionItem; number: str
1616 const [ deferOpen , setDeferOpen ] = useState ( ! ! item . defer ) ;
1717 const [ followOnOpen , setFollowOnOpen ] = useState ( ! ! item . followOn ) ;
1818 const [ timerOpen , setTimerOpen ] = useState ( item . timer !== undefined ) ;
19+ const [ commentOpen , setCommentOpen ] = useState ( item . comment !== undefined ) ;
1920
2021 const otherChecklists = db ? allChecklists ( db ) . filter ( ( cl ) => cl . id !== checklist ?. id ) : [ ] ;
2122 const nameOf = ( id : string ) => otherChecklists . find ( ( cl ) => cl . id === id ) ?. name ?? id ;
@@ -33,6 +34,7 @@ export function ActionItemView({ item, number }: { item: ActionItem; number: str
3334 const deferActive = ! ! item . defer || deferOpen ;
3435 const followOnActive = ! ! item . followOn || followOnOpen ;
3536 const timerActive = item . timer !== undefined || timerOpen ;
37+ const commentActive = item . comment !== undefined || commentOpen ;
3638
3739 const deferUnresolved = ! ! item . defer && ! isResolved ( item . defer ) ;
3840 const followOnUnresolved = ! ! item . followOn && ! isResolved ( item . followOn ) ;
@@ -64,6 +66,15 @@ export function ActionItemView({ item, number }: { item: ActionItem; number: str
6466 }
6567 }
6668
69+ function toggleComment ( ) {
70+ if ( item . comment !== undefined ) {
71+ update ( { comment : undefined } ) ;
72+ setCommentOpen ( false ) ;
73+ } else {
74+ setCommentOpen ( ! commentOpen ) ;
75+ }
76+ }
77+
6778 return (
6879 < RowFrame item = { item } number = { number } color = { color } >
6980 < div className = "vH-action" >
@@ -136,6 +147,13 @@ export function ActionItemView({ item, number }: { item: ActionItem; number: str
136147 >
137148 FOLLOW-ON{ followOnUnresolved && " ⚠" }
138149 </ button >
150+ < button
151+ className = { `vH-flag${ commentActive ? " active" : "" } ` }
152+ title = "Add a comment"
153+ onClick = { toggleComment }
154+ >
155+ COMMENT
156+ </ button >
139157 </ div >
140158 { item . sensed !== undefined && (
141159 < div className = "vH-meta" style = { { "--sensed" : color } as React . CSSProperties } >
@@ -211,6 +229,16 @@ export function ActionItemView({ item, number }: { item: ActionItem; number: str
211229 </ span >
212230 </ div >
213231 ) }
232+ { commentActive && (
233+ < EditableText
234+ value = { item . comment ?? "" }
235+ onCommit = { ( v ) => update ( { comment : v || undefined } ) }
236+ multiline
237+ autoSize
238+ placeholder = "Comment…"
239+ className = "vH-comment"
240+ />
241+ ) }
214242 </ RowFrame >
215243 ) ;
216244}
0 commit comments