umami/components/common/Checkbox.js

38 lines
903 B
JavaScript
Raw Normal View History

2020-08-15 10:17:15 +02:00
import React, { useRef } from 'react';
import PropTypes from 'prop-types';
2020-08-15 10:17:15 +02:00
import Icon from 'components/common/Icon';
import Check from 'assets/check.svg';
import styles from './Checkbox.module.css';
function Checkbox({ name, value, label, onChange }) {
2020-08-15 10:17:15 +02:00
const ref = useRef();
return (
<div className={styles.container}>
<div className={styles.checkbox} onClick={() => ref.current.click()}>
{value && <Icon icon={<Check />} size="small" />}
</div>
<label className={styles.label} htmlFor={name}>
{label}
</label>
<input
ref={ref}
className={styles.input}
type="checkbox"
name={name}
value={value}
onChange={onChange}
/>
</div>
);
}
Checkbox.propTypes = {
name: PropTypes.string,
value: PropTypes.any,
label: PropTypes.node,
onChange: PropTypes.func,
};
export default Checkbox;