@@ -10,53 +10,17 @@ import { StartTimeField } from "./StartTimeField";
1010import { EndTimeField } from "./EndTimeField" ;
1111import { TaskCategoryField } from "./TaskCategoryField" ;
1212import { TaskMetaInfo } from "./TaskMetaInfo" ;
13- import { Task , Category } from "@/types/task" ;
14- import { EditingField } from "./types" ;
15-
16- interface TaskEditActions {
17- editingField : EditingField | null ;
18- editValue : string ;
19- setEditingField : ( field : EditingField | null ) => void ;
20- setEditValue : ( value : string ) => void ;
21- handleEditStart : (
22- taskId : string ,
23- field :
24- | "title"
25- | "estimated_minute"
26- | "start_time"
27- | "end_time"
28- | "category_id" ,
29- value : string ,
30- ) => void ;
31- handleEditChange : ( e : React . ChangeEvent < HTMLInputElement > ) => void ;
32- handleEditSave : ( customValue ?: string ) => void ;
33- handleKeyDown : ( e : React . KeyboardEvent < HTMLInputElement > ) => void ;
34- }
35-
36- interface TaskActions {
37- handleDelete : ( taskId : string ) => void ;
38- handleTaskTimer : (
39- taskId : string ,
40- action : "start" | "stop" | "complete" ,
41- ) => void ;
42- handleRepeatTask : ( task : Task ) => void ;
43- }
13+ import { Task } from "@/types/task" ;
14+ import { useTaskContext } from "@/contexts/TaskContext" ;
4415
4516interface SortableTaskProps {
4617 task : Task ;
47- taskEdit : TaskEditActions ;
48- taskActions : TaskActions ;
49- lastTaskEndTime : string | null ;
50- categories : Category [ ] ;
5118}
5219
53- const SortableTask = ( {
54- task,
55- taskEdit,
56- taskActions,
57- lastTaskEndTime,
58- categories,
59- } : SortableTaskProps ) => {
20+ const SortableTask = ( { task } : SortableTaskProps ) => {
21+ // TaskContextから必要な値を取得
22+ const { taskEdit, taskActions, lastTaskEndTime, categories } =
23+ useTaskContext ( ) ;
6024 const { attributes, listeners, setNodeRef, transform, transition } =
6125 useSortable ( {
6226 id : task . id ,
@@ -132,18 +96,6 @@ const SortableTask = ({
13296 ) ;
13397 const categoryColor = selectedCategory ?. color || "#6b7280" ;
13498
135- const taskEditProps = {
136- task,
137- editingField : taskEdit . editingField ,
138- editValue : taskEdit . editValue ,
139- onEditStart : taskEdit . handleEditStart ,
140- handleEditChange : taskEdit . handleEditChange ,
141- handleEditSave : taskEdit . handleEditSave ,
142- handleKeyDown : taskEdit . handleKeyDown ,
143- setEditValue : taskEdit . setEditValue ,
144- setEditingField : taskEdit . setEditingField ,
145- } ;
146-
14799 return (
148100 < div
149101 ref = { setNodeRef }
@@ -162,31 +114,23 @@ const SortableTask = ({
162114 < GripVertical className = "h-4 w-4" style = { { color : categoryColor } } />
163115 </ div >
164116
165- < TaskTimerButton
166- task = { task }
167- onTaskTimer = { taskActions . handleTaskTimer }
168- onRepeatTask = { taskActions . handleRepeatTask }
169- categoryColor = { categoryColor }
170- />
117+ < TaskTimerButton task = { task } categoryColor = { categoryColor } />
171118
172119 < div className = "flex-grow" >
173- < TaskTitleField { ... taskEditProps } categoryColor = { categoryColor } />
120+ < TaskTitleField task = { task } categoryColor = { categoryColor } />
174121
175122 < div className = "flex gap-3 text-sm text-muted-foreground" >
176- < TaskEstimatedTimeField
177- { ...taskEditProps }
178- categoryColor = { categoryColor }
179- />
123+ < TaskEstimatedTimeField task = { task } categoryColor = { categoryColor } />
180124
181125 < StartTimeField
182- { ... taskEditProps }
126+ task = { task }
183127 lastTaskEndTime = { lastTaskEndTime }
184128 categoryColor = { categoryColor }
185129 />
186130
187- < EndTimeField { ... taskEditProps } categoryColor = { categoryColor } />
131+ < EndTimeField task = { task } categoryColor = { categoryColor } />
188132
189- < TaskCategoryField { ... taskEditProps } categories = { categories } />
133+ < TaskCategoryField task = { task } categories = { categories } />
190134
191135 < TaskMetaInfo task = { task } categoryColor = { categoryColor } />
192136 </ div >
0 commit comments