cf-component-checkboxdeprecated

Cloudflare Checkbox Component

Usage no npm install needed!

<script type="module">
  import cfComponentCheckbox from 'https://cdn.skypack.dev/cf-component-checkbox';
</script>

README

cf-component-checkbox

Cloudflare Checkbox Component

Installation

Installation with yarn is recommended


$ yarn add cf-component-checkbox

Usage

import React from 'react';
import {
  Checkbox,
  CheckboxUnstyled,
  CheckboxTheme,
  CheckboxGroup
} from 'cf-component-checkbox';
import { applyTheme } from 'cf-style-container';

const CheckboxGroupItem = applyTheme(CheckboxUnstyled, CheckboxTheme, ({}) => ({
  marginTop: '1em',

  '&:first-child': {
    marginTop: 0
  }
}));

class CheckboxComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      checkbox1: true,
      checkbox2: false,
      checkboxValues: ['option1'],
      checkbox5: false
    };
    this.onCheckboxGroupChange = this.onCheckboxGroupChange.bind(this);
  }

  onCheckboxGroupChange(values) {
    this.setState({
      checkboxValues: values
    });
  }

  render() {
    return (
      <div>
        <p>
          You can create them individually with <code>Checkbox</code>
        </p>

        <Checkbox
          label="Checkbox 1"
          name="checkbox-1"
          value="checkbox1"
          checked={this.state.checkbox1}
          onChange={event => this.setState({ checkbox1: event.target.checked })}
        />

        <Checkbox
          label="Checkbox 2"
          name="checkbox-2"
          value="checkbox2"
          checked={this.state.checkbox2}
          onChange={event => this.setState({ checkbox2: event.target.checked })}
        />

        <p>
          Or as a group with <code>CheckboxGroup</code>
        </p>

        <CheckboxGroup
          values={this.state.checkboxValues}
          onChange={this.onCheckboxGroupChange}
        >
          <CheckboxGroupItem
            label="Checkbox 3"
            name="checkbox-3"
            value="checkbox3"
          />
          <CheckboxGroupItem
            label="Checkbox 4"
            name="checkbox-4"
            value="checkbox4"
          />
        </CheckboxGroup>

        <p>
          You can also disable a label by passing <code>false</code> explicitly
        </p>

        <Checkbox
          label={false}
          name="checkbox-5-no-label"
          value="checkbox5"
          checked={this.state.checkbox5}
          onChange={event => this.setState({ checkbox5: event.target.checked })}
        />
      </div>
    );
  }
}

export default CheckboxComponent;