Files
danak-admin/src/pages/taskmanager/components/task-detail/time/List.tsx
T
hamid zarghami 443d97f898 track time
2026-07-15 10:24:05 +03:30

32 lines
979 B
TypeScript

import { type FC, useMemo } from "react";
import { useTranslation } from "react-i18next";
import type { TaskTimeEntryType } from "../../../task/types/TaskTimeTypes";
import TimeListItem from "./TimeListItem";
import { getActiveTimeEntry, sortTaskTimes } from "./utils";
type Props = {
times?: TaskTimeEntryType[];
};
const TimeList: FC<Props> = ({ times = [] }) => {
const { t } = useTranslation("global");
const sortedTimes = useMemo(() => sortTaskTimes(times), [times]);
const activeEntry = useMemo(() => getActiveTimeEntry(times), [times]);
if (times.length === 0) return null;
return (
<div className="mt-6">
<div className="text-sm font-bold">{t("taskmanager.task_detail.time_tracking")}</div>
<div className="mt-4 flex flex-col gap-2">
{sortedTimes.map((entry) => (
<TimeListItem key={entry.id} entry={entry} isActive={activeEntry?.id === entry.id} />
))}
</div>
</div>
);
};
export default TimeList;