update create & edit for /vehicle route
				
					
				
			This commit is contained in:
		| @@ -4,3 +4,8 @@ export const MEDIA_TYPES = [ | |||||||
|   {label: 'Фото', value: 1}, |   {label: 'Фото', value: 1}, | ||||||
|   {label: 'Видео', value: 2}, |   {label: 'Видео', value: 2}, | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  | export const VEHICLE_TYPES = [ | ||||||
|  |   {label: 'Трамвай', value: 1}, | ||||||
|  |   {label: 'Троллейбус', value: 2}, | ||||||
|  | ] | ||||||
|   | |||||||
| @@ -1,8 +1,10 @@ | |||||||
| import {Autocomplete, Box, TextField} from '@mui/material' | import {Autocomplete, Box, TextField, FormControl, InputLabel, Select, MenuItem, Typography} from '@mui/material' | ||||||
| import {Create, useAutocomplete} from '@refinedev/mui' | import {Create, useAutocomplete} from '@refinedev/mui' | ||||||
| import {useForm} from '@refinedev/react-hook-form' | import {useForm} from '@refinedev/react-hook-form' | ||||||
| import {Controller} from 'react-hook-form' | import {Controller} from 'react-hook-form' | ||||||
|  |  | ||||||
|  | import {VEHICLE_TYPES} from '../../lib/constants' | ||||||
|  |  | ||||||
| export const VehicleCreate = () => { | export const VehicleCreate = () => { | ||||||
|   const { |   const { | ||||||
|     saveButtonProps, |     saveButtonProps, | ||||||
| @@ -30,23 +32,33 @@ export const VehicleCreate = () => { | |||||||
|           fullWidth |           fullWidth | ||||||
|           InputLabelProps={{shrink: true}} |           InputLabelProps={{shrink: true}} | ||||||
|           type="number" |           type="number" | ||||||
|           label={'Номер рейса'} |           label="Номер рейса" | ||||||
|           name="tail_number" |           name="tail_number" | ||||||
|         /> |         /> | ||||||
|         <TextField |  | ||||||
|  |         <FormControl fullWidth margin="normal" error={!!errors.type}> | ||||||
|  |           <InputLabel id="vehicle-type-label">Выберите тип</InputLabel> | ||||||
|  |           <Select | ||||||
|  |             labelId="vehicle-type-label" | ||||||
|  |             label="Выберите тип" | ||||||
|             {...register('type', { |             {...register('type', { | ||||||
|               required: 'Это поле является обязательным', |               required: 'Это поле является обязательным', | ||||||
|               valueAsNumber: true, |               valueAsNumber: true, | ||||||
|             })} |             })} | ||||||
|           error={!!(errors as any)?.type} |             defaultValue="" | ||||||
|           helperText={(errors as any)?.type?.message} |           > | ||||||
|           margin="normal" |             {VEHICLE_TYPES.map((option) => ( | ||||||
|           fullWidth |               <MenuItem key={option.value} value={option.value}> | ||||||
|           InputLabelProps={{shrink: true}} |                 {option.label} | ||||||
|           type="number" |               </MenuItem> | ||||||
|           label={'Тип'} |             ))} | ||||||
|           name="type" |           </Select> | ||||||
|         /> |           {errors.type && ( | ||||||
|  |             <Typography variant="caption" color="error"> | ||||||
|  |               {!!(errors as any)?.message} | ||||||
|  |             </Typography> | ||||||
|  |           )} | ||||||
|  |         </FormControl> | ||||||
|  |  | ||||||
|         <Controller |         <Controller | ||||||
|           control={control} |           control={control} | ||||||
|   | |||||||
| @@ -1,8 +1,10 @@ | |||||||
| import {Autocomplete, Box, TextField} from '@mui/material' | import {Autocomplete, Box, TextField, FormControl, InputLabel, Select, MenuItem, Typography} from '@mui/material' | ||||||
| import {Edit, useAutocomplete} from '@refinedev/mui' | import {Edit, useAutocomplete} from '@refinedev/mui' | ||||||
| import {useForm} from '@refinedev/react-hook-form' | import {useForm} from '@refinedev/react-hook-form' | ||||||
| import {Controller} from 'react-hook-form' | import {Controller} from 'react-hook-form' | ||||||
|  |  | ||||||
|  | import {VEHICLE_TYPES} from '../../lib/constants' | ||||||
|  |  | ||||||
| export const VehicleEdit = () => { | export const VehicleEdit = () => { | ||||||
|   const { |   const { | ||||||
|     saveButtonProps, |     saveButtonProps, | ||||||
| @@ -29,28 +31,39 @@ export const VehicleEdit = () => { | |||||||
|           fullWidth |           fullWidth | ||||||
|           InputLabelProps={{shrink: true}} |           InputLabelProps={{shrink: true}} | ||||||
|           type="number" |           type="number" | ||||||
|           label={'Номер рейса'} |           label="Номер рейса" | ||||||
|           name="tail_number" |           name="tail_number" | ||||||
|         /> |         /> | ||||||
|         <TextField |  | ||||||
|  |         <FormControl fullWidth margin="normal" error={!!errors.type}> | ||||||
|  |           <InputLabel id="vehicle-type-label">Выберите тип</InputLabel> | ||||||
|  |           <Select | ||||||
|  |             labelId="vehicle-type-label" | ||||||
|  |             label="Выберите тип" | ||||||
|             {...register('type', { |             {...register('type', { | ||||||
|               required: 'Это поле является обязательным', |               required: 'Это поле является обязательным', | ||||||
|               valueAsNumber: true, |               valueAsNumber: true, | ||||||
|             })} |             })} | ||||||
|           error={!!(errors as any)?.type} |             defaultValue="" | ||||||
|           helperText={(errors as any)?.type?.message} |           > | ||||||
|           margin="normal" |             {VEHICLE_TYPES.map((option) => ( | ||||||
|           fullWidth |               <MenuItem key={option.value} value={option.value}> | ||||||
|           InputLabelProps={{shrink: true}} |                 {option.label} | ||||||
|           type="number" |               </MenuItem> | ||||||
|           label={'Тип'} |             ))} | ||||||
|           name="type" |           </Select> | ||||||
|         /> |           {errors.type && ( | ||||||
|  |             <Typography variant="caption" color="error"> | ||||||
|  |               {!!(errors as any)?.message} | ||||||
|  |             </Typography> | ||||||
|  |           )} | ||||||
|  |         </FormControl> | ||||||
|  |  | ||||||
|         <Controller |         <Controller | ||||||
|           control={control} |           control={control} | ||||||
|           name="city_id" |           name="city_id" | ||||||
|           rules={{required: 'Это поле является обязательным'}} |           rules={{required: 'Это поле является обязательным'}} | ||||||
|  |           defaultValue={null} | ||||||
|           render={({field}) => ( |           render={({field}) => ( | ||||||
|             <Autocomplete |             <Autocomplete | ||||||
|               {...cityAutocompleteProps} |               {...cityAutocompleteProps} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user