Rev 6509 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useEffect, useState } from 'react'import styled from 'styled-components'const StyledSwitch = styled.label`position: relative;display: inline-block;width: 60px;height: 34px;input {opacity: 0;width: 0;height: 0;}.slider {position: absolute;cursor: pointer;top: 0;left: 0;right: 0;bottom: 0;background-color: #ccc;-webkit-transition: 0.4s;transition: 0.4s;}.slider:before {position: absolute;content: '';height: 26px;width: 26px;left: 4px;bottom: 4px;background-color: white;-webkit-transition: 0.4s;transition: 0.4s;}input.active + .slider {background-color: #2196f3;}input:focus + .slider {box-shadow: 0 0 1px #2196f3;}input.active + .slider:before {-webkit-transform: translateX(26px);-ms-transform: translateX(26px);transform: translateX(26px);}.slider.round {border-radius: 34px;}.slider.round:before {border-radius: 50%;}`const SwitchInput = ({ isChecked = false, setValue = () => null }) => {const [isActive, setIsActive] = useState(isChecked)useEffect(() => {setValue(isActive)}, [isActive])return (<StyledSwitch className="switch"><inputtype="checkbox"className={isActive && 'active'}onChange={() => setIsActive(!isActive)}/><span className="slider round"></span></StyledSwitch>)}export default SwitchInput