Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
1257 stevensc 1
import React from 'react'
2
import { useController } from 'react-hook-form'
1261 stevensc 3
import styled, { css } from 'styled-components'
1257 stevensc 4
 
5
import FormErrorFeedback from '../FormErrorFeedback'
6
 
7
const CheckboxContainer = styled.div`
8
  display: inline-flex;
9
  align-items: center;
10
  * {
11
    cursor: pointer;
12
  }
13
 
1258 stevensc 14
  span {
15
    display: inline-block;
16
    width: 15px;
17
    height: 15px;
18
    position: relative;
19
    border: 1px solid #d2d2d2;
20
    border-radius: 100px;
21
    &::before {
22
      content: '';
1257 stevensc 23
      border-radius: 100px;
1258 stevensc 24
      background-color: #e44d3a;
25
      width: 8px;
26
      height: 8px;
27
      inset: 0;
28
      margin: auto;
29
      position: absolute;
30
      opacity: 0;
31
      visibility: hidden;
1257 stevensc 32
    }
33
  }
1258 stevensc 34
 
35
  input {
1261 stevensc 36
    display: none;
1258 stevensc 37
  }
38
 
1257 stevensc 39
  label {
40
    font-size: 14px;
41
    margin-left: 10px;
1260 stevensc 42
    line-height: 1;
1257 stevensc 43
  }
1261 stevensc 44
 
45
  ${(props) =>
46
    props.isChecked &&
47
    css`
1266 stevensc 48
      margin-bottom: 0.5rem;
1261 stevensc 49
      span::before {
1263 stevensc 50
        visibility: visible;
1261 stevensc 51
        opacity: 1;
52
      }
53
    `}
1257 stevensc 54
`
55
 
56
const Checkbox = ({ name, control, rules = {}, label = '', error = '' }) => {
57
  const { field } = useController({
58
    name,
59
    control,
60
    rules
61
  })
62
 
1266 stevensc 63
  console.log(field.value)
64
 
1257 stevensc 65
  return (
66
    <>
1266 stevensc 67
      <CheckboxContainer isChecked={field.value}>
1257 stevensc 68
        <span></span>
1266 stevensc 69
        <label htmlFor={name}>
70
          <input
71
            type='checkbox'
72
            name={field.name}
73
            id={field.name}
74
            ref={field.ref}
75
          />
76
          {label}
77
        </label>
1257 stevensc 78
      </CheckboxContainer>
79
      {error ? <FormErrorFeedback>{error}</FormErrorFeedback> : null}
80
    </>
81
  )
82
}
83
 
84
export default Checkbox