Skip to content

mukeshsoni/react-togglegroup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

react-togglegroup

This component abstracts maintaining boolean state for a list of items. One can then implement various components on top of react-togglegroup - like radiogroup, checkbox group, rich text editor toggles etc.

It's built as a render-prop component. The on/off state for each of the items can be asked using the isOn function passed as argument to children function prop.

Checkout some use cases here - https://codesandbox.io/s/24mv09yp90

E.g. This is how a Radiogroup can be implemented using react-togglegroup

class RadioGroup extends React.PureComponent {
  render() {
    const { items } = this.props;

    // P.S. - Radio implementation not shown here
    return (
      <ToggleGroup>
        {({ toggle, isOn }) => {
          return items.map((item, index) => {
            return (
              <div>
                <Radio
                  checked={isOn(index)}
                  onChange={() => toggle(index)}
                  {...item}
                />
              </div>
            );
          });
        }}
      </ToggleGroup>
    );
  }
}

How to install react-togglegroup?

On your command line, type

npm install react-togglegroup --save

or, if you use yarn for installing dependencies, type

yarn add react-togglegroup

And in your react component -

import ToggleGroup from 'react-togglegroup'

// in your jsx somewhere
<ToggleGroup>
  {({isOn, toggle}) => {
    // your components
  }}
</ToggleGroup>