import { useMemo } from "react"; import { useTranslation } from "react-i18next"; import { TaskItem as TaskItemType } from "#/types/agent-server/core/base/common"; import CircleIcon from "#/icons/u-circle.svg?react"; import CheckCircleIcon from "#/icons/u-check-circle.svg?react"; import CheckCircleHalfIcon from "#/icons/u-check-circle-half.svg?react"; import { cn } from "#/utils/utils"; import { Typography } from "#/ui/typography"; import { I18nKey } from "#/i18n/declaration"; interface TaskItemProps { task: TaskItemType; } export function TaskItem({ task }: TaskItemProps) { const { t } = useTranslation("openhands"); const icon = useMemo(() => { switch (task.status) { case "todo": return ; case "in_progress": return ; case "done": return ; default: return ; } }, [task.status]); const isDoneStatus = task.status === "done"; return (
{icon}
{task.title} {task.notes && ( {t(I18nKey.TASK_TRACKING_OBSERVATION$TASK_NOTES)}: {task.notes} )}
); }