Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@trendmicro/react-checkbox

Package Overview
Dependencies
Maintainers
4
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@trendmicro/react-checkbox

React Checkbox component

  • 3.4.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
4
Created
Source

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
  1. 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

Keywords

FAQs

Package last updated on 10 Aug 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc