All files / packages/design-system/ui/components/checkbox index.jsx

100% Statements 6/6
100% Branches 4/4
100% Functions 0/0
100% Lines 6/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62              23x   23x                           2x                     16x   16x                               2x                  
// Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
// Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license
 
import React from 'react';
import PropTypes from 'prop-types';
 
export const CheckboxPrimitive = props => {
  const { id, name, value, isDisabled, isChecked, isRequired, errorId } = props;
 
  return (
    <input
      type="checkbox"
      id={id}
      name={name || 'label'}
      value={value || 'option'}
      disabled={isDisabled}
      defaultChecked={isChecked}
      required={isRequired}
      aria-describedby={errorId}
    />
  );
};
 
CheckboxPrimitive.propTypes = {
  id: PropTypes.string,
  name: PropTypes.string,
  value: PropTypes.string,
  isDisabled: PropTypes.bool,
  isChecked: PropTypes.bool,
  isRequired: PropTypes.bool,
  errorId: PropTypes.string
};
 
export const CheckboxStandalone = props => {
  const { id, name, value, isDisabled, isChecked, isRequired, errorId } = props;
 
  return (
    <span className="slds-checkbox slds-checkbox_standalone">
      <CheckboxPrimitive
        id={id}
        name={name}
        value={value}
        isDisabled={isDisabled}
        isChecked={isChecked}
        isRequired={isRequired}
        errorId={errorId}
      />
      <span className="slds-checkbox_faux" />
    </span>
  );
};
 
CheckboxStandalone.propTypes = {
  id: PropTypes.string,
  name: PropTypes.string,
  value: PropTypes.string,
  isDisabled: PropTypes.bool,
  isChecked: PropTypes.bool,
  isRequired: PropTypes.bool,
  errorId: PropTypes.string
};