Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

Checkbox.tsx 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { ReactComponent as Checked } from '../../assets/images/svg/checked.svg';
  4. import { ReactComponent as Unchecked } from '../../assets/images/svg/unchecked.svg';
  5. interface CheckboxProps {
  6. className: string;
  7. children: React.ReactNode;
  8. name: string;
  9. checked: boolean;
  10. field: {
  11. onChange: () => void;
  12. };
  13. onChange: () => void;
  14. }
  15. const Checkbox: React.FC<CheckboxProps> = ({ className, children, name, onChange, checked, field }) => (
  16. <label htmlFor={name} className={`c-checkbox ${className || ''}`}>
  17. <input
  18. name={name}
  19. id={name}
  20. className="c-checkbox__field"
  21. type="checkbox"
  22. checked={checked}
  23. {...field}
  24. onChange={onChange || field.onChange}
  25. />
  26. <div className="c-checkbox__indicator">
  27. {checked ? (
  28. <Checked className="c-checkbox__icon" />
  29. ) : (
  30. <Unchecked className="c-checkbox__icon" />
  31. )}
  32. </div>
  33. <div className="c-checkbox__text">{children}</div>
  34. </label>
  35. );
  36. export default Checkbox;