import React from 'react';
import FormControl from '@mui/material/FormControl';
import FormControlLabel from '@mui/material/FormControlLabel';
import FormGroup from '@mui/material/FormGroup';
import FormHelperText from '@mui/material/FormHelperText';
import FormLabel from '@mui/material/FormLabel';
import Radio from '@mui/material/Radio';
import RadioGroup from '@mui/material/RadioGroup';
import Switch from '@mui/material/Switch';

const BooleanPicker = ({
  label,
  value,
  onChange,
  error,
  helperText,
  type = 'radio',
  lang
}) => {
  if (type === 'switch') {
    return (
      <FormGroup row>
        <FormControlLabel
          control={
            <Switch
              color="primary"
              checked={value}
              onChange={e => onChange(e.target.checked)}
            />
          }
          label={label}
        />
      </FormGroup>
    );
  }

  return (
    <FormControl error={!!error}>
      <FormLabel id="demo-radio-buttons-group-label">{label}</FormLabel>
      <RadioGroup
        row
        aria-labelledby="demo-radio-buttons-group-label"
        name="radio-buttons-group"
        value={
          typeof value !== 'boolean'
            ? ''
            : !value
              ? 'false'
              : 'true'
        }
        onChange={(ev) => onChange(ev.target.value === 'true')}
      >
        <FormControlLabel value="true" control={<Radio />} label={lang === 'pt' ? "Sim" : "Si"} />
        <FormControlLabel value="false" control={<Radio />} label={lang === 'pt' ? "Não" : "No"} />
      </RadioGroup>
      <FormHelperText>{helperText}</FormHelperText>
    </FormControl>
  );
};

export default BooleanPicker;
