Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 

51 righe
1.3 KiB

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