Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2109 | Rev 2114 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1459 stevensc 1
import React from 'react'
2109 stevensc 2
import { Controller } from 'react-hook-form'
1785 stevensc 3
import {
4
  FormControl,
5
  InputLabel,
6
  MenuItem,
7
  Select as MuiSelect
8
} from '@mui/material'
1459 stevensc 9
 
1781 stevensc 10
import FormErrorFeedback from '../form/FormErrorFeedback'
1459 stevensc 11
 
1781 stevensc 12
const Select = ({
2104 stevensc 13
  label,
14
  name,
2109 stevensc 15
  control,
2110 stevensc 16
  placeholder = 'Seleccione una opción',
2104 stevensc 17
  defaultValue,
1459 stevensc 18
  options = [],
2109 stevensc 19
  rules,
20
  error = null
1459 stevensc 21
}) => {
22
  return (
1782 stevensc 23
    <FormControl fullWidth>
1785 stevensc 24
      {label ? (
25
        <InputLabel shrink htmlFor={name}>
26
          {label}
27
        </InputLabel>
28
      ) : null}
2104 stevensc 29
 
2109 stevensc 30
      <Controller
31
        name={name}
32
        control={control}
33
        rules={rules}
2104 stevensc 34
        defaultValue={defaultValue}
2109 stevensc 35
        render={(field) => (
36
          <MuiSelect
37
            {...field}
38
            fullWidth
39
            displayEmpty
40
            sx={{
41
              borderRadius: '4px'
42
            }}
43
          >
44
            <MenuItem value=''>{placeholder}</MenuItem>
2104 stevensc 45
 
2109 stevensc 46
            {options.map(({ name, value }) => (
47
              <MenuItem key={value} value={value}>
48
                {name}
49
              </MenuItem>
50
            ))}
51
          </MuiSelect>
52
        )}
53
      />
54
 
1781 stevensc 55
      {error ? <FormErrorFeedback>{error}</FormErrorFeedback> : null}
56
    </FormControl>
1459 stevensc 57
  )
58
}
59
 
1781 stevensc 60
export default Select