import { clsx } from 'clsx';
import { InputHTMLAttributes, forwardRef, useEffect, useImperativeHandle, useRef } from 'react';
import { useInputAttributes } from '../inputs/contexts';
export type CheckboxButtonProps = InputHTMLAttributes & {
/** @default false */
indeterminate?: boolean;
};
const CheckboxButton = forwardRef(function CheckboxButton(
{ checked, indeterminate = false, className, disabled, onChange, ...rest },
reference,
) {
const inputAttributes = useInputAttributes();
const internalRef = useRef(null);
useImperativeHandle(reference, () => internalRef.current ?? ({} as HTMLInputElement));
useEffect(() => {
if (internalRef.current) {
// eslint-disable-next-line functional/immutable-data
internalRef.current.indeterminate = indeterminate;
}
}, [indeterminate, reference]);
return (
);
});
export default CheckboxButton;