選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

39 行
1.5 KiB

  1. import React from "react";
  2. import GenerateProjectMonthlyReportLoading from "./GenerateProjectMonthlyReportLoading";
  3. import GenerateProjectMonthlyReport from "./GenerateProjectMonthlyReport";
  4. import { fetchStaff } from "@/app/api/staff";
  5. import { getServerSession } from "next-auth";
  6. import { authOptions } from "@/config/authConfig";
  7. import { TEAM_LEAD } from "@/middleware";
  8. import { fetchHolidays } from "@/app/api/holidays";
  9. import { convertDateArrayToString } from "@/app/utils/formatUtil";
  10. import { fetchProjects } from "@/app/api/projects";
  11. interface SubComponents {
  12. Loading: typeof GenerateProjectMonthlyReportLoading;
  13. }
  14. const GenerateProjectMonthlyReportWrapper: React.FC &
  15. SubComponents = async () => {
  16. const session: any = await getServerSession(authOptions);
  17. const teamId = session.staff?.teamId;
  18. const role = session.role;
  19. const companyHolidays = await fetchHolidays()
  20. let companyHolidaysList: String[] = []
  21. if (companyHolidays.length > 0) {
  22. companyHolidaysList = companyHolidays.map(item => convertDateArrayToString(item.date, "DD/MM/YYYY")) as String[]
  23. }
  24. console.log(companyHolidaysList)
  25. let projects = await fetchProjects();
  26. if (role.includes(TEAM_LEAD)) {
  27. projects = projects.filter((project) => project.teamId === teamId);
  28. }
  29. return <GenerateProjectMonthlyReport projects={projects} companyHolidays={companyHolidaysList} />;
  30. };
  31. GenerateProjectMonthlyReportWrapper.Loading = GenerateProjectMonthlyReportLoading;
  32. export default GenerateProjectMonthlyReportWrapper;