1
1
import React , { ChangeEvent , useRef } from 'react' ;
2
+ import { useTaskManager } from "@/store/useTaskManager" ;
2
3
3
4
interface Task {
4
5
id : number ,
@@ -7,68 +8,69 @@ interface Task {
7
8
}
8
9
9
10
const TaskManager = ( ) => {
10
- // const createTaskRef = ...:
11
- // const {
12
- // tasks,
13
- // searchTask,
14
- // addTask,
15
- // updateTask,
16
- // deleteTask,
17
- // setSearchTask,
18
- // } = useTaskManager();
11
+ const createTaskRef = useRef < HTMLInputElement > ( null ) ;
12
+ const {
13
+ tasks,
14
+ searchTask,
15
+ addTask,
16
+ updateTask,
17
+ deleteTask,
18
+ setSearchTask,
19
+ } = useTaskManager ( ) ;
19
20
20
21
const handleAddTask = ( ) => {
21
- const title = "" ; // Replace with the value in the createTaskRef
22
+ const title = createTaskRef . current ! . value ; // Replace with the value in the createTaskRef
22
23
const newTask = {
23
24
id : Date . now ( ) ,
24
25
title,
25
26
completed : false ,
26
27
} ;
27
- // addTask(newTask);
28
+ addTask ( newTask ) ;
28
29
} ;
29
30
30
31
const handleUpdateTask = ( taskId : number , updatedTask : Task ) => {
31
- // updateTask(taskId, updatedTask);
32
+ updateTask ( taskId , updatedTask ) ;
32
33
} ;
33
34
34
35
const handleDeleteTask = ( taskId : number ) => {
35
- // deleteTask(taskId);
36
+ deleteTask ( taskId ) ;
36
37
} ;
37
38
38
39
const handleSearch = ( e : ChangeEvent < HTMLInputElement > ) => {
39
- // setSearchTask(e.target.value);
40
+ setSearchTask ( e . target . value ) ;
40
41
} ;
41
42
42
- // See! I already give you everything!
43
- // const filteredTasks = tasks.filter((task) =>
44
- // task.title.toLowerCase().includes(searchTask.toLowerCase())
45
- // );
43
+ const filteredTasks = tasks . filter ( ( task ) =>
44
+ task . title . toLowerCase ( ) . includes ( searchTask . toLowerCase ( ) )
45
+ ) ;
46
46
47
47
return (
48
48
< div >
49
49
< h1 > Task Manager</ h1 >
50
50
51
- < input type = "text" /* ref={}*/ />
51
+ < input type = "text" ref = { createTaskRef } />
52
52
53
53
< button onClick = { handleAddTask } > Add Task</ button >
54
54
55
55
< input type = "text" onChange = { handleSearch } placeholder = "Search Task" />
56
56
57
57
< ul >
58
- { /*
59
58
{ filteredTasks . map ( ( task ) => (
60
59
< li key = { task . id } >
61
60
< input
62
61
type = "text"
63
62
value = { task . title }
64
63
onChange = { ( e ) =>
65
- handleUpdateTask(task.id, { title: e.target.value })
64
+ handleUpdateTask ( task . id , {
65
+ title : e . target . value ,
66
+ id : task . id ,
67
+ completed : task . completed
68
+ } )
66
69
}
67
70
/>
68
71
< button onClick = { ( ) => handleDeleteTask ( task . id ) } > Delete</ button >
69
72
</ li >
70
73
) ) }
71
- */ }
72
74
</ ul >
73
75
</ div >
74
76
) ;
0 commit comments