import React from 'react';
|
import { Box, Grid, TextField, Button } from '@mui/material';
|
import { useTranslate } from 'react-admin';
|
|
const AreaAdvancedTab = ({
|
areaCode,
|
setAreaCode,
|
maxQty,
|
setMaxQty,
|
speedLimit,
|
setSpeedLimit,
|
startPoint,
|
endPoint,
|
memo,
|
setMemo,
|
priority,
|
setPriority,
|
onSave,
|
}) => {
|
const translate = useTranslate();
|
const formatCoord = (value) => {
|
if (value === null || value === undefined || value === '') {
|
return '';
|
}
|
const num = Number(value);
|
if (Number.isNaN(num)) {
|
return String(value);
|
}
|
return num.toFixed(2);
|
};
|
|
const handleSubmit = (e) => {
|
e.preventDefault();
|
const confirmMsg = translate('page.map.area.confirm.save');
|
if (window.confirm(confirmMsg)) {
|
onSave?.();
|
}
|
};
|
|
return (
|
<Box component="form" onSubmit={handleSubmit}>
|
<Grid container spacing={2}>
|
<Grid item xs={12}>
|
<TextField
|
label={translate('page.map.area.form.code')}
|
fullWidth
|
value={areaCode}
|
onChange={(e) => setAreaCode(e.target.value)}
|
/>
|
</Grid>
|
<Grid item xs={6}>
|
<TextField
|
label={translate('page.map.area.form.maxQty')}
|
fullWidth
|
type="number"
|
value={maxQty}
|
onChange={(e) => setMaxQty(e.target.value)}
|
/>
|
</Grid>
|
<Grid item xs={6}>
|
<TextField
|
label={translate('page.map.area.form.speedLimit')}
|
fullWidth
|
type="number"
|
value={speedLimit}
|
onChange={(e) => setSpeedLimit(e.target.value)}
|
/>
|
</Grid>
|
<Grid item xs={12} sm={6}>
|
<TextField
|
label={translate('page.map.area.form.startX')}
|
fullWidth
|
value={formatCoord(startPoint?.x)}
|
InputProps={{ readOnly: true }}
|
/>
|
</Grid>
|
<Grid item xs={12} sm={6}>
|
<TextField
|
label={translate('page.map.area.form.startY')}
|
fullWidth
|
value={formatCoord(startPoint?.y)}
|
InputProps={{ readOnly: true }}
|
/>
|
</Grid>
|
<Grid item xs={12} sm={6}>
|
<TextField
|
label={translate('page.map.area.form.endX')}
|
fullWidth
|
value={formatCoord(endPoint?.x)}
|
InputProps={{ readOnly: true }}
|
/>
|
</Grid>
|
<Grid item xs={12} sm={6}>
|
<TextField
|
label={translate('page.map.area.form.endY')}
|
fullWidth
|
value={formatCoord(endPoint?.y)}
|
InputProps={{ readOnly: true }}
|
/>
|
</Grid>
|
<Grid item xs={12}>
|
<TextField
|
label={translate('page.map.area.form.priority')}
|
fullWidth
|
type="number"
|
value={priority}
|
onChange={(e) => setPriority(e.target.value)}
|
/>
|
</Grid>
|
<Grid item xs={12}>
|
<TextField
|
label={translate('page.map.area.form.memo')}
|
fullWidth
|
multiline
|
minRows={3}
|
value={memo}
|
onChange={(e) => setMemo(e.target.value)}
|
/>
|
</Grid>
|
<Grid item xs={12}>
|
<Button variant="contained" type="submit">
|
{translate('ra.action.save')}
|
</Button>
|
</Grid>
|
</Grid>
|
</Box>
|
);
|
};
|
|
export default AreaAdvancedTab;
|