import React from "react"; import styled from "styled-components"; import { Alignment, Checkbox, Classes } from "@blueprintjs/core"; import { ComponentProps } from "components/designSystems/appsmith/BaseComponent"; import { AlignWidget } from "widgets/SwitchWidget"; type StyledCheckboxProps = { rowSpace: number; }; type StyledCheckboxContainerProps = { isValid: boolean; }; const CheckboxContainer = styled.div` && { align-items: center; display: flex; height: 100%; justify-content: flex-start; width: 100%; &.${Alignment.RIGHT} { justify-content: flex-end; } & .bp3-control-indicator { border: ${(props) => !props.isValid && `1px solid ${props.theme.colors.error} !important`}; } } `; export const StyledCheckbox = styled(Checkbox)` height: ${({ rowSpace }) => rowSpace}px; &.bp3-control input:checked ~ .bp3-control-indicator { background-color: #03b365; background-image: none; box-shadow: none; } &.bp3-control input:disabled ~ .bp3-control-indicator { opacity: 0.5; } &.bp3-control.bp3-checkbox .bp3-control-indicator { border-radius: 0; } `; class CheckboxComponent extends React.Component { render() { const checkboxAlignClass = this.props.alignWidget === "RIGHT" ? Alignment.RIGHT : Alignment.LEFT; return ( ); } onCheckChange = () => { this.props.onCheckChange(!this.props.isChecked); }; } export interface CheckboxComponentProps extends ComponentProps { alignWidget?: AlignWidget; isChecked: boolean; isLoading: boolean; isRequired?: boolean; label: string; onCheckChange: (isChecked: boolean) => void; rowSpace: number; } export default CheckboxComponent;