32 lines
		
	
	
		
			773 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			773 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import PropTypes from 'prop-types';
 | 
						|
import { useCallback } from 'react';
 | 
						|
 | 
						|
import Toggle from 'react-toggle';
 | 
						|
 | 
						|
export const CheckboxWithLabel = ({ checked, disabled, children, onChange }) => {
 | 
						|
  const handleChange = useCallback(({ target }) => {
 | 
						|
    onChange(target.checked);
 | 
						|
  }, [onChange]);
 | 
						|
 | 
						|
  return (
 | 
						|
    <label className='app-form__toggle'>
 | 
						|
      <div className='app-form__toggle__label'>
 | 
						|
        {children}
 | 
						|
      </div>
 | 
						|
 | 
						|
      <div className='app-form__toggle__toggle'>
 | 
						|
        <div>
 | 
						|
          <Toggle checked={checked} onChange={handleChange} disabled={disabled} />
 | 
						|
        </div>
 | 
						|
      </div>
 | 
						|
    </label>
 | 
						|
  );
 | 
						|
};
 | 
						|
 | 
						|
CheckboxWithLabel.propTypes = {
 | 
						|
  checked: PropTypes.bool,
 | 
						|
  disabled: PropTypes.bool,
 | 
						|
  children: PropTypes.children,
 | 
						|
  onChange: PropTypes.func,
 | 
						|
};
 |