Skip to content

Commit 35f71fb

Browse files
committed
clean up task list
1 parent b4dd540 commit 35f71fb

File tree

3 files changed

+70
-63
lines changed

3 files changed

+70
-63
lines changed

src/frontend_react/src/components/content/TaskList.tsx

Lines changed: 25 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,11 @@ import {
1414
import { MoreHorizontal20Regular } from "@fluentui/react-icons";
1515
import React from "react";
1616
import "../../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

3323
const 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>

src/frontend_react/src/models/taskList.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,6 @@ export interface TaskListProps {
99
inProgressTasks: Task[];
1010
completedTasks: Task[];
1111
onTaskSelect: (taskId: string) => void;
12+
loading?: boolean;
13+
selectedTaskId?: string;
1214
}

src/frontend_react/src/styles/TaskList.css

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,46 @@
103103
opacity: 1;
104104
}
105105

106+
/* New styles for migrated inline styles */
107+
.task-skeleton-container {
108+
padding: 8px;
109+
border-radius: 6px;
110+
pointer-events: none;
111+
cursor: default;
112+
background-color: transparent;
113+
}
114+
115+
.task-skeleton-content {
116+
display: flex;
117+
align-items: center;
118+
gap: 12px;
119+
}
120+
121+
.task-skeleton-item {
122+
width: 100%;
123+
height: 24px;
124+
border-radius: 4px;
125+
}
126+
127+
.task-accordion-header-in-progress {
128+
color: var(--colorNeutralForeground3);
129+
padding: 0px 16px 0px 0;
130+
background-color: transparent;
131+
cursor: pointer;
132+
justify-content: space-between;
133+
height: 40px;
134+
}
135+
136+
.task-accordion-header-completed {
137+
color: var(--colorNeutralForeground3);
138+
padding: 0px 16px 0px 0;
139+
background-color: transparent;
140+
cursor: pointer;
141+
justify-content: space-between;
142+
height: 32px;
143+
}
144+
145+
.task-accordion-panel {
146+
margin: 8px;
147+
}
148+

0 commit comments

Comments
 (0)