import React, { useState } from "react"; import CategoryOutlinedIcon from "@mui/icons-material/CategoryOutlined"; import NavigateNextIcon from "@mui/icons-material/NavigateNext"; import { TableBody, TableRow } from "@mui/material"; import Typography from "@mui/material/Typography"; import Card from "../../../../components/Card"; import CardContent from "../../../../components/Card/CardContent"; import CardHeader from "../../../../components/Card/CardHeader"; import { ContribInlines } from "../../../../components/ContribInlines"; import { Header } from "../../../../components/Header"; import { Page } from "../../../../components/Page"; import { Tab } from "../../../../components/Tab"; import Table from "../../../../components/Table"; import { TableCell } from "../../../../components/Table/TableCell"; import { TabPanel } from "../../../../components/TabPanel"; import { TabPanels } from "../../../../components/TabPanels"; import { Tabs } from "../../../../components/Tabs"; import { TitleBar } from "../../../../components/TitleBar"; import Content, { LeftColumn, RightColumn } from "../../../../containers/Content"; import { useI18n } from "../../../../contexts/I18nContext"; import { useRouter } from "../../../../contexts/RouterContext"; import { PageComponent } from "../../../../types"; import { ArticleCard } from "../../components/ArticleCard"; import { MeasurementsCard } from "../../components/MeasurementsCard"; import { ArticleDetail } from "../../types/article"; import { PHYSICAL_ITEM_TYPES } from "../../utils"; const ArticleDetailPage: PageComponent = ({ data }) => { const [article, setArticle] = useState(data); const { t } = useI18n(); const { navigate } = useRouter(); const hasOtherVariants = article.variants.some((variant) => variant.id !== article.id); return (
{data.name} {data.code} } /> } label="Article" value="default" />
{PHYSICAL_ITEM_TYPES.includes(article.item_type) && ( setArticle((previous) => ({ ...previous, measurements })) } /> )} {hasOtherVariants && ( ({ borderTop: `1px solid ${theme.palette.divider}`, px: 0, }), }} > ({ borderTop: `1px solid ${theme.palette.divider}`, }), "& .MuiTableRow-root:last-of-type .MuiTableCell-root": { borderBottom: "none", }, }} > {article.variants.map((variant) => { const isCurrent = variant.id === article.id; return ( ({ cursor: "pointer", ...(isCurrent ? { backgroundColor: theme.palette.action.hover, "& .MuiTableCell-root": { fontWeight: 600, }, } : undefined), })} onClick={() => navigate("catalog.article:detail", { params: { id: variant.id } }) } > {variant.variant} {variant.code} ); })}
)}
); }; export default ArticleDetailPage;