import { Link as RouterLink } from 'react-router-dom';
import Box from '@mui/material/Box';
import Link from '@mui/material/Link';
import TextField from '@mui/material/TextField';
import Typography from '@mui/material/Typography';
import { article } from '../../api';
import { EditablePanelTile, PanelTile, PanelTileGrid } from '../panels';
import { requireObject } from '../../utils/apiShape';
import { formatPrice } from '../../utils/price';
import { formatStock } from '../../pages/artikel/searchFormat';
function PanelValue({ label, children }) {
if (children == null || children === '') return null;
return (
{label ? (
{label}
) : null}
{children}
);
}
function ArticlePhoto() {
return (
);
}
const headerTileSx = {
p: 1.25,
minHeight: 0,
};
function CountLine({ label, count }) {
if (count == null) return null;
return (
{label}: {count}
);
}
function RelationLine({ label, active, children }) {
return (
{label}:{' '}
{active ? (
children ?? 'ja'
) : (
nein
)}
);
}
function articleBrutto(article) {
if (article.net == null || article.taxRate == null) return null;
return article.net * (1 + article.taxRate / 100);
}
function nameDraftDirty(draft, saved) {
return draft.name.trim() !== String(saved.name ?? '').trim();
}
function nameDraftValid(draft) {
return draft.name.trim().length > 0;
}
export default function ArticleView({ article: articleData, onArticleUpdated }) {
const brutto = articleBrutto(articleData);
const handleSaveName = async (draft) => {
const name = draft.name.trim();
const res = await article.update(articleData.sku, { name });
requireObject(res, 'PATCH /api/article/:sku');
requireObject(res.article, 'article');
onArticleUpdated?.(res.article);
};
return (
(
{name}
)}
renderEdit={(draft, onChange, inputRef) => (
onChange({ name: event.target.value })}
sx={{
'& .MuiInput-input': {
fontSize: '1.25rem',
fontWeight: 700,
lineHeight: 1.25,
},
}}
/>
)}
/>
{articleData.stock != null ? formatStock(articleData.stock) : null}
{articleData.brand}
{articleData.sku}
{articleData.ean}
{articleData.net != null ? formatPrice(articleData.net) : null}
{articleData.taxRate != null ? `${articleData.taxRate} %` : null}
{brutto != null ? formatPrice(brutto) : null}
{articleData.slug}
{articleData.seoTitle}
{articleData.seoDescription}
{articleData.description}
0}
>
{articleData.childCount}
{articleData.fatherSku ? (
{articleData.fatherSku}
) : null}
);
}