Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3719 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3719 stevensc 1
import React from 'react';
2
import { Controller } from 'react-hook-form';
3
import { InputLabel } from '@mui/material';
4
import Datetime from 'react-datetime';
5
 
6
import FormErrorFeedback from '@components/UI/form/FormErrorFeedback';
7
 
8
import 'react-datetime/css/react-datetime.css';
3748 stevensc 9
import Input from '@components/UI/inputs/Input';
3719 stevensc 10
 
11
export default function DatetimePicker({
12
  control,
13
  rules,
14
  name = '',
15
  label = '',
16
  displayTime = false,
17
  dateFormat = 'DD-MM-YYYY',
18
  parseFormat = 'YYYY-MM-DD',
3748 stevensc 19
  color = 'primary'
3719 stevensc 20
}) {
21
  return (
22
    <Controller
23
      name={name}
24
      control={control}
25
      rules={rules}
3748 stevensc 26
      render={({ field: { onChange, ref, name, value }, fieldState: { error } }) => {
27
        const handleChange = (e) => {
28
          onChange(e.format(parseFormat));
29
        };
30
 
31
        const parsedValue = value ? new Date(value) : null;
32
 
33
        return (
34
          <>
35
            {label && <InputLabel>{label}</InputLabel>}
36
            <Datetime
37
              dateFormat={dateFormat}
38
              onChange={handleChange}
39
              timeFormat={displayTime}
40
              renderInput={(props) => <Input {...props} color={color} />}
41
              inputProps={{
42
                className: 'form-control',
43
                ref,
44
                name,
45
                autoComplete: 'off'
46
              }}
47
              value={parsedValue}
48
              closeOnSelect
49
            />
50
            {error && <FormErrorFeedback>{error.message}</FormErrorFeedback>}
51
          </>
52
        );
53
      }}
3719 stevensc 54
    />
55
  );
56
}