3.4.1 • Published 6 years ago

@trendmicro/react-checkbox v3.4.1

Weekly downloads
730
License
MIT
Repository
github
Last release
6 years ago

react-checkbox build status Coverage Status

NPM

React Checkbox

Demo: https://trendmicro-frontend.github.io/react-checkbox

Installation

  1. Install the latest version of react and react-checkbox:

    npm install --save react @trendmicro/react-checkbox
  2. At this point you can import @trendmicro/react-checkbox and its styles in your application as follows:

    import { Checkbox, CheckboxGroup } from '@trendmicro/react-checkbox';
    
    // Be sure to include styles at some point, probably during your bootstraping
    import '@trendmicro/react-checkbox/dist/react-checkbox.css';

Usage

<Checkbox label="Checkbox label" />

The label prop is optional, you can use children to pass through the component.

<Checkbox label="Checkbox label">
    <p style={{ marginLeft: 24 }}>
        Lorem ipsum dolor sit amet...
    </p>
</Checkbox>

<Checkbox>
    <span style={{ verticalAlign: 'middle', marginLeft: 8 }}>
        Lorem ipsum dolor sit amet...
    </span>
</Checkbox>

Uncontrolled Checkbox

// Default checked
<Checkbox defaultChecked />

// Default partially checked
<Checkbox defaultChecked defaultIndeterminate />

Controlled Checkbox

// Checked
<Checkbox checked />

// Partially checked
<Checkbox checked indeterminate />

CheckboxGroup

When rendering checkboxes deeply nested inside the checkbox group, you need to pass a depth prop to limit the recursion depth.

<CheckboxGroup
    name="comic"
    value={this.state.value}
    depth={3} // This is needed to minimize the recursion overhead
    onChange={(value, event) => {
        this.setState({ value: value });
    }}
>
    <div className="row">
        <div className="col-xs-12 col-sm-6">
            <Checkbox label="Batman (DC)" value="dc:batman" />
            <Checkbox label="Hulk (Marvel)" value="marvel:hulk" />
        </div>
        <div className="col-xs-12 col-sm-6">
            <Checkbox label="Superman (DC)" value="dc:superman" />
            <Checkbox label="Spider-Man (Marvel)" value="marvel:spiderman" disabled />
        </div>
    </div>
</CheckboxGroup>

Prevent onChange Propagation

You may need to use event.stopPropagation() to stop onChange propagation when wrapping an input element inside the CheckboxGroup or Checkbox component.

<CheckboxGroup
    name="checkboxgroup"
    value={this.state.value}
    onChange={(value, event) => {
        this.setState({ value: value });
    }}
>
    <Checkbox label="First option" value="one">
        <div style={{ marginLeft: 22 }}>
            <input
                type="text"
                onChange={(event) => {
                    // Prevent onChange propagation
                    event.stopPropagation();
                }}
            />
        </div>
    </Checkbox>
    <Checkbox label="Second option" value="two">
        <div style={{ marginLeft: 22 }}>
            <input
                type="text"
                onChange={(event) => {
                    // Prevent onChange propagation
                    event.stopPropagation();
                }}
            />
        </div>
    </Checkbox>
</CheckboxGroup>

API

Properties

Checkbox

NameTypeDefaultDescription
childrenanyChildren to pass through the component.
classNameObjectCustomized class name for the component.
styleObjectCustomized style for the component.
labelNode or StringText label to attach next to the checkbox element.
inputClassNameObjectCustomized class name for the checkbox element.
inputStyleObjectCustomized style for the checkbox element.
disabledBooleanfalseIf true, the checkbox shown as disabled and cannot be modified.
checkedBooleanThe checked state of the checkbox element.
defaultCheckedBooleanThe default checked state of the checkbox element.
indeterminateBooleanThe indeterminate state of the checkbox element.
defaultIndeterminateBooleanfalseThe default indeterminate state of the checkbox element.
onChangeFunction(event)The callback function that is triggered when the state changes.
onClickFunction(event)The callback function that is triggered when the checkbox is clicked.

CheckboxGroup

NameTypeDefaultDescription
childrenanyChildren to pass through the component.
disabledBooleanfalseIf true, the checkbox group will be displayed as disabled.
nameStringName for the input element group.
valueanyThe value of the checkbox group.
defaultValueanyThe default value of the checkbox group.
onChangeFunction(value, event)The callback function that is triggered when the value changes.
depthNumber1Limits the recursion depth when rendering checkboxes deeply inside a checkbox group.

Class Properties

Use the ref property to get a reference to the component:

<Checkbox
    ref={node => {
        if (node) {
            this.checkbox = node;
            console.log(this.checkbox.checked);
            console.log(this.checkbox.indeterminate);
        }
    }}
/>
NameTypeDescription
checkedBooleanGet the checked state.
indeterminateBooleanGet the indeterminate state.

CheckboxGroup

Use the ref property to get a reference to this component:

<CheckboxGroup
    ref={node => {
        if (node) {
            this.checkboxGroup = node;
            console.log(this.checkboxGroup.value);
        }
    }}
/>
NameTypeDescription
valueanyGet the value of the checkbox group.

License

MIT

3.4.1

6 years ago

3.4.0

7 years ago

3.3.1

7 years ago

3.3.0

7 years ago

3.2.0

7 years ago

3.1.0

7 years ago

3.0.0

7 years ago

2.1.1

7 years ago

2.1.0

7 years ago

2.0.0

7 years ago

1.0.2

7 years ago

1.0.1

8 years ago

1.0.0

8 years ago