You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

66 lines
1.9 KiB

  1. import { fetchAllCustomers, fetchAllSubsidiaries } from "@/app/api/customer";
  2. import { fetchGrades } from "@/app/api/grades";
  3. import {
  4. fetchMainProjects,
  5. fetchProjectBuildingTypes,
  6. fetchProjectCategories,
  7. fetchProjectContractTypes,
  8. fetchProjectFundingTypes,
  9. fetchProjectLocationTypes,
  10. fetchProjectServiceTypes,
  11. fetchProjectWorkNatures,
  12. fetchProjects,
  13. } from "@/app/api/projects";
  14. import { preloadStaff, preloadTeamLeads } from "@/app/api/staff";
  15. import { fetchAllTasks, fetchTaskTemplates } from "@/app/api/tasks";
  16. import { ServerFetchError } from "@/app/utils/fetchUtil";
  17. import CreateProject from "@/components/CreateProject";
  18. import { I18nProvider, getServerI18n } from "@/i18n";
  19. import Typography from "@mui/material/Typography";
  20. import { Metadata } from "next";
  21. import { notFound } from "next/navigation";
  22. export const metadata: Metadata = {
  23. title: "Create Sub Project",
  24. };
  25. const Projects: React.FC = async () => {
  26. const { t } = await getServerI18n("projects");
  27. // Preload necessary dependencies
  28. fetchAllTasks();
  29. fetchTaskTemplates();
  30. fetchProjectCategories();
  31. fetchProjectContractTypes();
  32. fetchProjectFundingTypes();
  33. fetchProjectLocationTypes();
  34. fetchProjectServiceTypes();
  35. fetchProjectBuildingTypes();
  36. fetchProjectWorkNatures();
  37. fetchAllCustomers();
  38. fetchAllSubsidiaries();
  39. fetchGrades();
  40. preloadTeamLeads();
  41. preloadStaff();
  42. try {
  43. const data = await fetchMainProjects();
  44. if (!Boolean(data) || data.length === 0) {
  45. notFound();
  46. }
  47. } catch (e) {
  48. notFound();
  49. }
  50. return (
  51. <>
  52. <Typography variant="h4">{t("Create Sub Project")}</Typography>
  53. <I18nProvider namespaces={["projects"]}>
  54. <CreateProject isEditMode={false} isSubProject={true} />
  55. </I18nProvider>
  56. </>
  57. );
  58. };
  59. export default Projects;