@@ -14,21 +14,11 @@ import {
1414import { MoreHorizontal20Regular } from "@fluentui/react-icons" ;
1515import React from "react" ;
1616import "../../styles/TaskList.css" ;
17+ import { Task , TaskListProps } from "@/models" ;
18+
19+
1720
18- interface Task {
19- id : string ;
20- name : string ;
21- status : "inprogress" | "completed" ;
22- date ?: string ;
23- }
2421
25- interface TaskListProps {
26- inProgressTasks : Task [ ] ;
27- completedTasks : Task [ ] ;
28- onTaskSelect : ( taskId : string ) => void ;
29- loading ?: boolean ;
30- selectedTaskId ?: string ;
31- }
3222
3323const TaskList : React . FC < TaskListProps > = ( {
3424 inProgressTasks,
@@ -66,82 +56,54 @@ const TaskList: React.FC<TaskListProps> = ({
6656 </ div >
6757 ) ;
6858 } ;
69-
7059 const renderSkeleton = ( key : string ) => (
7160 < div
7261 key = { key }
73- style = { {
74- padding : "8px" ,
75- borderRadius : 6 ,
76- pointerEvents : "none" ,
77- cursor : "default" ,
78- backgroundColor : "transparent" ,
79- } }
62+ className = "task-skeleton-container"
8063 >
8164 < Skeleton aria-label = "Loading task" >
8265 < div
83- style = { {
84- display : "flex" ,
85- alignItems : "center" ,
86- gap : "12px" ,
87- } }
66+ className = "task-skeleton-content"
8867 >
8968 < SkeletonItem
9069 shape = "rectangle"
9170 animation = "wave"
92- style = { { width : "100%" , height : 24 , borderRadius : 4 } }
71+ className = "task-skeleton-item"
9372 />
9473 </ div >
9574 </ Skeleton >
9675 </ div >
9776 ) ;
9877
9978 return (
100- < Accordion defaultOpenItems = { [ "inprogress" ] } collapsible >
101- < AccordionItem value = "inprogress" >
102- < AccordionHeader
103- expandIconPosition = "end"
104- style = { {
105- color : "var(--colorNeutralForeground3)" ,
106- padding : "0px 16px 0px 0" ,
107- backgroundColor : "transparent" ,
108- cursor : "pointer" ,
109- justifyContent : "space-between" ,
110- height : "40px" ,
111- } }
112- >
113- < Body1 > In progress</ Body1 >
114- </ AccordionHeader >
115-
116- < AccordionPanel style = { { margin : "8px" } } >
117- { loading && inProgressTasks . length === 0
118- ? [ ...Array ( 3 ) ] . map ( ( _ , i ) =>
119- renderSkeleton ( `inprogress-skel-${ i } ` )
120- )
121- : inProgressTasks . map ( renderTaskItem ) }
122- </ AccordionPanel >
123- </ AccordionItem >
79+ < Accordion defaultOpenItems = { [ "inprogress" ] } collapsible > < AccordionItem value = "inprogress" >
80+ < AccordionHeader
81+ expandIconPosition = "end"
82+ className = "task-accordion-header-in-progress"
83+ >
84+ < Body1 > In progress</ Body1 >
85+ </ AccordionHeader >
12486
125- < AccordionItem value = "completed" >
87+ < AccordionPanel className = "task-accordion-panel" >
88+ { loading && inProgressTasks . length === 0
89+ ? [ ...Array ( 3 ) ] . map ( ( _ , i ) =>
90+ renderSkeleton ( `inprogress-skel-${ i } ` )
91+ )
92+ : inProgressTasks . map ( renderTaskItem ) }
93+ </ AccordionPanel >
94+ </ AccordionItem > < AccordionItem value = "completed" >
12695 < AccordionHeader
12796 expandIconPosition = "end"
128- style = { {
129- color : "var(--colorNeutralForeground3)" ,
130- padding : "0px 16px 0px 0" ,
131- backgroundColor : "transparent" ,
132- cursor : "pointer" ,
133- justifyContent : "space-between" ,
134- height : "32px" ,
135- } }
97+ className = "task-accordion-header-completed"
13698 >
13799 < Body1 > Completed</ Body1 >
138100 </ AccordionHeader >
139101
140- < AccordionPanel style = { { margin : "8px" } } >
102+ < AccordionPanel className = "task-accordion-panel" >
141103 { loading && completedTasks . length === 0
142104 ? [ ...Array ( 2 ) ] . map ( ( _ , i ) =>
143- renderSkeleton ( `completed-skel-${ i } ` )
144- )
105+ renderSkeleton ( `completed-skel-${ i } ` )
106+ )
145107 : completedTasks . map ( renderTaskItem ) }
146108 </ AccordionPanel >
147109 </ AccordionItem >
0 commit comments