FPSMS-frontend
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 

53 řádky
1.4 KiB

  1. // import { preloadProjects } from "@/app/api/projects";
  2. // import ProjectSearch from "@/components/ProjectSearch";
  3. // import { getServerI18n } from "@/i18n";
  4. import { preloadProjects } from "../../../app/api/projects";
  5. import ProjectSearch from "../../../components/ProjectSearch";
  6. import { getServerI18n } from "../../../i18n";
  7. import Add from "@mui/icons-material/Add";
  8. import Button from "@mui/material/Button";
  9. import Stack from "@mui/material/Stack";
  10. import Typography from "@mui/material/Typography";
  11. import { Metadata } from "next";
  12. import Link from "next/link";
  13. import { Suspense } from "react";
  14. export const metadata: Metadata = {
  15. title: "Projects",
  16. };
  17. const Projects: React.FC = async () => {
  18. const { t } = await getServerI18n("projects");
  19. preloadProjects();
  20. return (
  21. <>
  22. <Stack
  23. direction="row"
  24. justifyContent="space-between"
  25. flexWrap="wrap"
  26. rowGap={2}
  27. >
  28. <Typography variant="h4" marginInlineEnd={2}>
  29. {t("Projects")}
  30. </Typography>
  31. <Button
  32. variant="contained"
  33. startIcon={<Add />}
  34. LinkComponent={Link}
  35. href="/projects/create"
  36. >
  37. {t("Create Project")}
  38. </Button>
  39. </Stack>
  40. <Suspense fallback={<ProjectSearch.Loading />}>
  41. <ProjectSearch />
  42. </Suspense>
  43. </>
  44. );
  45. };
  46. export default Projects;