@@ -80,7 +80,19 @@ const Item: React.FC<Props> = ({ todo }) => {
80
80
setAppState ( { todoList : removed } )
81
81
}
82
82
83
- const handleTodoTextEdit = ( e : React . ChangeEvent < HTMLInputElement > , onEdit : Todo [ 'id' ] ) : void => { /* eslint-disable-line prettier/prettier */
83
+ const setInprogress = ( id : Todo [ 'id' ] ) => {
84
+ let temp : TodoListType = appState . todoList . map ( ( t ) =>
85
+ t . inProgress ? { ...t , inProgress : false } : t
86
+ )
87
+ temp = temp . map ( ( t ) => ( t . id === id ? { ...t , inProgress : true } : t ) )
88
+ setAppState ( { todoList : temp } )
89
+ }
90
+
91
+ const handleTodoTextEdit = (
92
+ e : React . ChangeEvent < HTMLInputElement > ,
93
+ onEdit : Todo [ 'id' ]
94
+ ) : void => {
95
+ /* eslint-disable-line prettier/prettier */
84
96
const edited = appState . todoList . map ( ( t : Todo ) : Todo => {
85
97
if ( t . id === onEdit ) {
86
98
return { ...t , bodyText : e . target . value }
@@ -112,13 +124,25 @@ const Item: React.FC<Props> = ({ todo }) => {
112
124
/>
113
125
114
126
{ /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */ }
127
+
115
128
< label
116
129
onClick = { onClick }
117
130
data-cy = "todo-body-text"
118
131
data-testid = "todo-body-text"
119
132
>
120
133
{ todo . bodyText }
121
134
</ label >
135
+ { ! todo . completed && todo . inProgress && (
136
+ < span className = "inProgressActiveBadeg" > In Progress</ span >
137
+ ) }
138
+ { ! todo . completed && ! todo . inProgress && (
139
+ < span
140
+ className = "inProgressBadeg"
141
+ onClick = { ( ) => setInprogress ( todo . id ) }
142
+ >
143
+ In Progress
144
+ </ span >
145
+ ) }
122
146
{ /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */ }
123
147
< button
124
148
className = "destroy"
@@ -132,8 +156,12 @@ const Item: React.FC<Props> = ({ todo }) => {
132
156
onBlur = { ( e : React . FocusEvent < HTMLInputElement > ) => onBlurEdit ( e ) }
133
157
className = "edit"
134
158
value = { todo . bodyText }
135
- onChange = { ( e : React . ChangeEvent < HTMLInputElement > ) => handleTodoTextEdit ( e , todo . id ) } /* eslint-disable-line prettier/prettier */
136
- onKeyDown = { ( e : React . KeyboardEvent < HTMLInputElement > ) => submitEditText ( e ) } /* eslint-disable-line prettier/prettier */
159
+ onChange = { ( e : React . ChangeEvent < HTMLInputElement > ) =>
160
+ handleTodoTextEdit ( e , todo . id )
161
+ } /* eslint-disable-line prettier/prettier */
162
+ onKeyDown = { ( e : React . KeyboardEvent < HTMLInputElement > ) =>
163
+ submitEditText ( e )
164
+ } /* eslint-disable-line prettier/prettier */
137
165
data-cy = "todo-edit-input"
138
166
data-testid = "todo-edit-input"
139
167
/>
0 commit comments