import { PureComponent } from 'react'; import Box from '@mui/material/Box'; import Button from '@mui/material/Button'; import Stack from '@mui/material/Stack'; import Table from '@mui/material/Table'; import TableBody from '@mui/material/TableBody'; import TableCell from '@mui/material/TableCell'; import TableContainer from '@mui/material/TableContainer'; import TableHead from '@mui/material/TableHead'; import TableRow from '@mui/material/TableRow'; import AddIcon from '@mui/icons-material/Add'; import { PanelTile } from 'dashgui/panels'; import { LINE_COLUMNS } from './manifestConfig'; import ManifestFormLine from './ManifestFormLine'; class ManifestLines extends PureComponent { render() { const { lines, saving, linesColor, onLineChange, onAddLine, onRemoveLine, onSave, columns = LINE_COLUMNS, supplierArticlesMap = {}, supplierArticlesByLineKey = {}, supplierArticlesLoading = false, loadingLineKeys = {}, onSkuBlur, onCreateArticle, } = this.props; return ( {columns.map((col) => ( {col.label} ))} {lines.map((line, index) => { const lineKey = line.key ?? index; const rawSku = line.sku != null ? String(line.sku).trim() : ''; const matched = supplierArticlesByLineKey[lineKey] || (rawSku ? supplierArticlesMap[rawSku.toLowerCase()] || supplierArticlesMap[rawSku] : null); const isLineLoading = loadingLineKeys[lineKey] || (supplierArticlesLoading && !matched); return ( ); })}
); } } export default ManifestLines;