|
- import { TypeEnum } from "@/app/utils/typeEnum";
- import RoughSchedule from "@/components/RoughSchedule";
- import { getServerI18n, I18nProvider } from "@/i18n";
- import Add from "@mui/icons-material/Add";
- import Button from "@mui/material/Button";
- import Stack from "@mui/material/Stack";
- import Typography from "@mui/material/Typography";
- import { Metadata } from "next";
- import Link from "next/link";
- import { Suspense } from "react";
- import RoughScheduleDetailView from "@/components/RoughScheduleDetail";
- import { SearchParams, ServerFetchError } from "@/app/utils/fetchUtil";
- import { isArray, parseInt } from "lodash";
- import { notFound } from "next/navigation";
- import { fetchRoughProdScheduleDetail } from "@/app/api/scheduling";
-
- export const metadata: Metadata = {
- title: "Demand Forecast Detail",
- };
-
- type Props = SearchParams;
-
- const roughSchedulingDetail: React.FC<Props> = async ({ searchParams }) => {
- const { t } = await getServerI18n("schedule");
- const id = searchParams["id"];
- const type = "rough";
-
- if (!id || isArray(id) || !isFinite(parseInt(id))) {
- notFound();
- }
-
- try {
- await fetchRoughProdScheduleDetail(parseInt(id));
- } catch (e) {
- if (
- e instanceof ServerFetchError &&
- (e.response?.status === 404 || e.response?.status === 400)
- ) {
- console.log(e);
- notFound();
- }
- }
- // preloadClaims();
-
- return (
- <>
- <Stack
- direction="row"
- justifyContent="space-between"
- flexWrap="wrap"
- rowGap={2}
- >
- <Typography variant="h4" marginInlineEnd={2}>
- {t("FG & Material Demand Forecast Detail")}
- </Typography>
- {/* <Button
- variant="contained"
- startIcon={<Add />}
- LinkComponent={Link}
- href="product/create"
- >
- {t("Create product")}
- </Button> */}
- </Stack>
- <I18nProvider namespaces={["schedule","navigation","common"]}>
- <Suspense fallback={<RoughScheduleDetailView.Loading />}>
- <RoughScheduleDetailView type={type} id={parseInt(id)} />
- </Suspense>
- </I18nProvider>
- </>
- );
- };
-
- export default roughSchedulingDetail;
|