79 lines
2.6 KiB
TypeScript
79 lines
2.6 KiB
TypeScript
import {Box, TextField, FormControlLabel, Checkbox, Typography} from '@mui/material'
|
||
import {Create} from '@refinedev/mui'
|
||
import {useForm} from '@refinedev/react-hook-form'
|
||
import {Controller} from 'react-hook-form'
|
||
|
||
export const RouteCreate = () => {
|
||
const {
|
||
saveButtonProps,
|
||
refineCore: {formLoading},
|
||
register,
|
||
control,
|
||
formState: {errors},
|
||
} = useForm({
|
||
refineCoreProps: {
|
||
resource: 'route/',
|
||
},
|
||
})
|
||
|
||
return (
|
||
<Create isLoading={formLoading} saveButtonProps={saveButtonProps}>
|
||
<Box component="form" sx={{display: 'flex', flexDirection: 'column'}} autoComplete="off">
|
||
<TextField
|
||
{...register('carrier_id', {
|
||
required: 'Это поле является обязательным',
|
||
valueAsNumber: true,
|
||
})}
|
||
error={!!(errors as any)?.carrier_id}
|
||
helperText={(errors as any)?.carrier_id?.message}
|
||
margin="normal"
|
||
fullWidth
|
||
InputLabelProps={{shrink: true}}
|
||
type="number"
|
||
label={'ID перевозчика'}
|
||
name="carrier_id"
|
||
/>
|
||
<TextField
|
||
{...register('route_number', {
|
||
required: 'Это поле является обязательным',
|
||
setValueAs: (value) => String(value),
|
||
})}
|
||
error={!!(errors as any)?.route_number}
|
||
helperText={(errors as any)?.route_number?.message}
|
||
margin="normal"
|
||
fullWidth
|
||
InputLabelProps={{shrink: true}}
|
||
type="text"
|
||
label={'Номер маршрута'}
|
||
name="route_number"
|
||
/>
|
||
<Controller
|
||
name="route_direction" // boolean
|
||
control={control}
|
||
defaultValue={false}
|
||
render={({field}: {field: any}) => <FormControlLabel label="Прямой маршрут?" control={<Checkbox {...field} checked={field.value} onChange={(e) => field.onChange(e.target.checked)} />} />}
|
||
/>
|
||
|
||
<Typography variant="caption" color="textSecondary" sx={{mt: 0, mb: 1}}>
|
||
(Прямой / Обратный)
|
||
</Typography>
|
||
|
||
<TextField
|
||
{...register('path', {
|
||
required: 'Это поле является обязательным',
|
||
setValueAs: (value) => String(value),
|
||
})}
|
||
error={!!(errors as any)?.path}
|
||
helperText={(errors as any)?.path?.message}
|
||
margin="normal"
|
||
fullWidth
|
||
InputLabelProps={{shrink: true}}
|
||
type="text"
|
||
label={'Путь'}
|
||
name="path"
|
||
/>
|
||
</Box>
|
||
</Create>
|
||
)
|
||
}
|