import * as React from 'react'; import { useState, useEffect } from 'react'; import classnames from 'classnames'; import IReactComponentProps from '../../../common/structures/IReactComponentProps'; import styles from './Checkbox.scss'; import CheckmarkSVG from '../../../svg/checkmark--sm.svg'; import CheckMixedSVG from '../../../svg/checkmark--mixed.svg'; import { FunctionGeneric } from '../../../common/structures/Generics'; interface IProps extends IReactComponentProps { checked?: boolean | 'mixed'; disabled?: boolean; label?: string; name?: string; onChange?: FunctionGeneric; } const Checkbox: React.FC = ({ checked = false, disabled = false, label, name, onChange, className, id, style, }) => { const [isChecked, setIsChecked] = useState(checked); useEffect(() => { setIsChecked(checked); }, [checked]); const handleChange = () => { const newChecked: boolean = isChecked === 'mixed' ? true : !isChecked; setIsChecked(newChecked); if (onChange) { onChange(newChecked); } }; return (
); }; export default Checkbox;