@diagramers/admin
Version:
Diagramers Admin Template - React starter for admin dashboards.
24 lines (20 loc) • 853 B
JavaScript
import React, { useEffect, useRef } from 'react';
import { Form } from 'react-bootstrap';
const CheckAll = ({ allItems = [], selectedItems = [], onToggle = () => {}, inputClassName = 'form-check', className = '' }) => {
const checkAllRef = useRef(null);
useEffect(() => {
if (checkAllRef.current) {
checkAllRef.current.indeterminate = selectedItems.length > 0 && selectedItems.length < allItems.length;
}
return () => {};
}, [selectedItems, allItems]);
const onClick = () => {
onToggle(selectedItems.length === 0 || selectedItems.length < allItems.length);
};
return (
<div className={className} onClick={onClick}>
<Form.Check ref={checkAllRef} className={inputClassName} type="checkbox" checked={allItems.length === selectedItems.length} onChange={() => {}} />
</div>
);
};
export default CheckAll;