@@ -37,6 +37,7 @@ import {
3737import { useMemo , useState , useRef , useEffect } from "react" ;
3838import { TaskState , TaskStateType } from "@/components/TaskState" ;
3939import useChatStoreAdapter from "@/hooks/useChatStoreAdapter" ;
40+ import { TaskStatus , ChatTaskStatus } from "@/types/constants" ;
4041
4142interface TaskCardProps {
4243 taskInfo : any [ ] ;
@@ -87,24 +88,24 @@ export function TaskCard({
8788 const newFiltered = tasks . filter ( ( task ) => {
8889 switch ( selectedState ) {
8990 case "done" :
90- return task . status === "completed" && ! task . reAssignTo ;
91+ return task . status === TaskStatus . COMPLETED && ! task . reAssignTo ;
9192 case "ongoing" :
9293 return (
93- task . status !== "failed" &&
94- task . status !== "completed" &&
95- task . status !== "skipped" &&
96- task . status !== "waiting" &&
97- task . status !== ""
94+ task . status !== TaskStatus . FAILED &&
95+ task . status !== TaskStatus . COMPLETED &&
96+ task . status !== TaskStatus . SKIPPED &&
97+ task . status !== TaskStatus . WAITING &&
98+ task . status !== TaskStatus . EMPTY
9899 ) ;
99100 case "pending" :
100101 return (
101- ( task . status === "skipped" ||
102- task . status === "waiting" ||
103- task . status === "" ) &&
102+ ( task . status === TaskStatus . SKIPPED ||
103+ task . status === TaskStatus . WAITING ||
104+ task . status === TaskStatus . EMPTY ) &&
104105 ! task . reAssignTo
105106 ) ;
106107 case "failed" :
107- return task . status === "failed" ;
108+ return task . status === TaskStatus . FAILED ;
108109 default :
109110 return false ;
110111 }
@@ -115,7 +116,7 @@ export function TaskCard({
115116
116117 const isAllTaskFinished = useMemo ( ( ) => {
117118 return (
118- chatStore . tasks [ chatStore . activeTaskId as string ] . status === "finished"
119+ chatStore . tasks [ chatStore . activeTaskId as string ] . status === ChatTaskStatus . FINISHED
119120 ) ;
120121 } , [ chatStore . tasks [ chatStore . activeTaskId as string ] . status ] ) ;
121122
@@ -207,32 +208,32 @@ export function TaskCard({
207208 done = {
208209 taskInfo . filter (
209210 ( task ) =>
210- task . content !== "" && task . status === "completed"
211+ task . content !== "" && task . status === TaskStatus . COMPLETED
211212 ) . length || 0
212213 }
213214 progress = {
214215 taskInfo . filter (
215216 ( task ) =>
216217 task . content !== "" &&
217- task . status !== "completed" &&
218- task . status !== "failed" &&
219- task . status !== "skipped" &&
220- task . status !== "waiting" &&
221- task . status !== ""
218+ task . status !== TaskStatus . COMPLETED &&
219+ task . status !== TaskStatus . FAILED &&
220+ task . status !== TaskStatus . SKIPPED &&
221+ task . status !== TaskStatus . WAITING &&
222+ task . status !== TaskStatus . EMPTY
222223 ) . length || 0
223224 }
224225 skipped = {
225226 taskInfo . filter (
226227 ( task ) =>
227228 task . content !== "" &&
228- ( task . status === "skipped" ||
229- task . status === "waiting" ||
230- task . status === "" )
229+ ( task . status === TaskStatus . SKIPPED ||
230+ task . status === TaskStatus . WAITING ||
231+ task . status === TaskStatus . EMPTY )
231232 ) . length || 0
232233 }
233234 failed = {
234235 taskInfo . filter (
235- ( task ) => task . content !== "" && task . status === "failed"
236+ ( task ) => task . content !== "" && task . status === TaskStatus . FAILED
236237 ) . length || 0
237238 }
238239 forceVisible = { true }
@@ -243,29 +244,29 @@ export function TaskCard({
243244 < TaskState
244245 all = { taskRunning ?. length || 0 }
245246 done = {
246- taskRunning ?. filter ( ( task ) => task . status === "completed" )
247+ taskRunning ?. filter ( ( task ) => task . status === TaskStatus . COMPLETED )
247248 . length || 0
248249 }
249250 progress = {
250251 taskRunning ?. filter (
251252 ( task ) =>
252- task . status !== "completed" &&
253- task . status !== "failed" &&
254- task . status !== "skipped" &&
255- task . status !== "waiting" &&
256- task . status !== ""
253+ task . status !== TaskStatus . COMPLETED &&
254+ task . status !== TaskStatus . FAILED &&
255+ task . status !== TaskStatus . SKIPPED &&
256+ task . status !== TaskStatus . WAITING &&
257+ task . status !== TaskStatus . EMPTY
257258 ) . length || 0
258259 }
259260 skipped = {
260261 taskRunning ?. filter (
261262 ( task ) =>
262- task . status === "skipped" ||
263- task . status === "waiting" ||
264- task . status === ""
263+ task . status === TaskStatus . SKIPPED ||
264+ task . status === TaskStatus . WAITING ||
265+ task . status === TaskStatus . EMPTY
265266 ) . length || 0
266267 }
267268 failed = {
268- taskRunning ?. filter ( ( task ) => task . status === "failed" )
269+ taskRunning ?. filter ( ( task ) => task . status === TaskStatus . FAILED )
269270 . length || 0
270271 }
271272 forceVisible = { true }
@@ -288,8 +289,8 @@ export function TaskCard({
288289 < div className = "text-text-tertiary text-xs font-medium leading-17" >
289290 { taskRunning ?. filter (
290291 ( task ) =>
291- task . status === "completed" ||
292- task . status === "failed"
292+ task . status === TaskStatus . COMPLETED ||
293+ task . status === TaskStatus . FAILED
293294 ) . length || 0 }
294295 /{ taskRunning ?. length || 0 }
295296 </ div >
@@ -371,70 +372,70 @@ export function TaskCard({
371372 }
372373 } }
373374 key = { `taskList-${ task . id } ` }
374- className = { `rounded-lg flex gap-2 py-sm px-sm transition-all duration-300 ease-in-out animate-in fade-in-0 slide-in-from-left-2 ${ task . status === "completed"
375+ className = { `rounded-lg flex gap-2 py-sm px-sm transition-all duration-300 ease-in-out animate-in fade-in-0 slide-in-from-left-2 ${ task . status === TaskStatus . COMPLETED
375376 ? "bg-task-fill-success"
376- : task . status === "failed"
377+ : task . status === TaskStatus . FAILED
377378 ? "bg-task-fill-error"
378- : task . status === "running"
379+ : task . status === TaskStatus . RUNNING
379380 ? "bg-task-fill-running"
380- : task . status === "blocked"
381+ : task . status === TaskStatus . BLOCKED
381382 ? "bg-task-fill-warning"
382383 : "bg-task-fill-running"
383- } border border-solid border-transparent cursor-pointer ${ task . status === "completed"
384+ } border border-solid border-transparent cursor-pointer ${ task . status === TaskStatus . COMPLETED
384385 ? "hover:border-bg-fill-success-primary"
385- : task . status === "failed"
386+ : task . status === TaskStatus . FAILED
386387 ? "hover:border-task-border-focus-error"
387- : task . status === "running"
388+ : task . status === TaskStatus . RUNNING
388389 ? "hover:border-border-primary"
389- : task . status === "blocked"
390+ : task . status === TaskStatus . BLOCKED
390391 ? "hover:border-task-border-focus-warning"
391392 : "border-transparent"
392393 }
393394 ` }
394395 >
395396 < div className = "pt-0.5" >
396- { task . status === "running" && (
397+ { task . status === TaskStatus . RUNNING && (
397398 < LoaderCircle
398399 size = { 16 }
399400 className = { `text-icon-information ${ chatStore . tasks [
400401 chatStore . activeTaskId as string
401- ] . status === "running" && "animate-spin"
402+ ] . status === ChatTaskStatus . RUNNING && "animate-spin"
402403 } `}
403404 />
404405 ) }
405- { task . status === "skipped" && (
406+ { task . status === TaskStatus . SKIPPED && (
406407 < LoaderCircle
407408 size = { 16 }
408409 className = { `text-icon-secondary ` }
409410 />
410411 ) }
411- { task . status === "completed" && (
412+ { task . status === TaskStatus . COMPLETED && (
412413 < CircleCheckBig
413414 size = { 16 }
414415 className = "text-icon-success"
415416 />
416417 ) }
417- { task . status === "failed" && (
418+ { task . status === TaskStatus . FAILED && (
418419 < CircleSlash
419420 size = { 16 }
420421 className = "text-icon-cuation"
421422 />
422423 ) }
423- { task . status === "blocked" && (
424+ { task . status === TaskStatus . BLOCKED && (
424425 < TriangleAlert
425426 size = { 16 }
426427 className = "text-icon-warning"
427428 />
428429 ) }
429- { task . status === "" && (
430+ { task . status === TaskStatus . EMPTY && (
430431 < Circle size = { 16 } className = "text-icon-secondary" />
431432 ) }
432433 </ div >
433434 < div className = "flex-1 flex flex-col items-start justify-center" >
434435 < div
435- className = { ` w-full break-words whitespace-pre-line ${ task . status === "failed"
436+ className = { ` w-full break-words whitespace-pre-line ${ task . status === TaskStatus . FAILED
436437 ? "text-text-cuation-default"
437- : task . status === "blocked"
438+ : task . status === TaskStatus . BLOCKED
438439 ? "text-text-body"
439440 : "text-text-primary"
440441 } text-sm font-medium leading-13 `}
0 commit comments