import React, { useEffect, useState } from 'react'; import { BaseComponentProps, CheckedChangedCallback } from '..'; import './DxCheckbox.scss'; interface IProps extends BaseComponentProps { label: string; itemValue: string; description?: string; checked?: boolean; initiallyChecked?: boolean; name?: string; className?: string; onCheckChanged?: CheckedChangedCallback; useRadioType?: boolean; disabled?: boolean; } export default function DxCheckbox(props: IProps) { let initialValue: boolean = props.checked !== undefined ? props.checked : props.initiallyChecked || false; const [checked, setChecked] = useState(initialValue); useEffect(() => { if (props.checked === undefined || props.checked === checked) return; setChecked(props.checked); }, [props.checked]); useEffect(() => { if (props.onCheckChanged) props.onCheckChanged(checked); }, [checked]); return ( ); }