"use client"; import Card from "@mui/material/Card"; import CardContent from "@mui/material/CardContent"; import Typography from "@mui/material/Typography"; import { useTranslation } from "react-i18next"; import Button from "@mui/material/Button"; import React, { useCallback, useMemo, useState } from "react"; import CardActions from "@mui/material/CardActions"; import RestartAlt from "@mui/icons-material/RestartAlt"; import { Alert, FormControl, Grid, InputLabel, MenuItem, Select, SelectChangeEvent, Stack, } from "@mui/material"; import { Task, TaskGroup } from "@/app/api/tasks"; import uniqBy from "lodash/uniqBy"; import { moneyFormatter } from "@/app/utils/formatUtil"; import { DatePicker, LocalizationProvider } from "@mui/x-date-pickers"; import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs"; import dayjs from "dayjs"; interface Props { tasks: Task[]; } const ResourceMilestone: React.FC = ({ tasks }) => { const { t } = useTranslation(); const taskGroups = useMemo(() => { return uniqBy( tasks.map((task) => task.taskGroup), "id", ); }, [tasks]); const [currentTaskGroupId, setCurrentTaskGroupId] = useState( taskGroups[0].id, ); const onSelectTaskGroup = useCallback( (event: SelectChangeEvent) => { const id = event.target.value; setCurrentTaskGroupId(typeof id === "string" ? parseInt(id) : id); }, [], ); return ( <> {t("Task Stage")} {t("Resource")} {t("Milestone")} {t("Project Total Fee")} {moneyFormatter.format(80000)} ); }; const NoTaskState: React.FC = () => { const { t } = useTranslation(); return ( {t('Please add some tasks in "Project Task Setup" first!')} ); }; const ResourceMilestoneWrapper: React.FC = (props) => { if (props.tasks.length === 0) { return ; } return ; }; export default ResourceMilestoneWrapper;