Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 1x 1x 1x 1x 1x 52x 52x 52x 52x 52x 52x 52x 7x 7x 52x 52x 52x 52x 52x 52x 52x 52x 52x 52x 52x 52x 52x 52x 52x | // Utils
import { combineClasses } from '@shared/utils';
// Components
import { CheckIcon } from '@/components/icons/reacts';
import { CommentSelectCheckboxLoader } from '@/components/CommentSelectCheckboxLoader';
// Styles
import './styles/comment-select-checkbox.css';
export interface CommentSelectCheckboxProps {
isSelected?: boolean;
isLoading?: boolean;
onToggleSelect?: () => void;
className?: string;
}
export const CommentSelectCheckbox = ({
isSelected = false,
isLoading = false,
onToggleSelect,
className = '',
}: CommentSelectCheckboxProps) => {
if (isLoading) {
return <CommentSelectCheckboxLoader className={className} />;
}
const handleClick = () => {
if (!isSelected) onToggleSelect?.();
};
return (
<button
type="button"
role="checkbox"
aria-checked={isSelected}
aria-label="Select comment"
onClick={handleClick}
className={combineClasses(
'comment-select-checkbox',
isSelected && 'comment-select-checkbox-checked',
className,
)}
>
{isSelected && <CheckIcon className="comment-select-checkbox-icon" />}
</button>
);
};
|