# @auraxy/react-radio-checkbox
[![NPM Version](http://img.shields.io/npm/v/@auraxy/react-radio-checkbox.svg?style=flat-square)](https://www.npmjs.com/package/@auraxy/react-radio-checkbox)
[![Download Month](http://img.shields.io/npm/dm/@auraxy/react-radio-checkbox.svg?style=flat-square)](https://www.npmjs.com/package/@auraxy/react-radio-checkbox)
![gzip with dependencies: kb](https://img.shields.io/badge/gzip--with--dependencies-kb-brightgreen.svg "gzip with dependencies: kb")
![typescript](https://img.shields.io/badge/typescript-supported-blue.svg "typescript")
![pkg.module](https://img.shields.io/badge/pkg.module-supported-blue.svg "pkg.module")

> `pkg.module supported`, which means that you can apply tree-shaking in you project

[中文文档](./README-CN.md)

react radio checkbox component

## Installation
```bash
npm i -S @auraxy/react-radio-checkbox
```

## Global name - The variable the module exported in `umd` bundle
`ReactRadioCheckbox`

## Interface
See what method or params you can use in [index.d.ts](./index.d.ts)

## Usage
```typescript jsx
import React, { useState } from 'react'
import { Radio, Checkbox } from '@auraxy/react-radio-checkbox'

const items = [
  { label: 'male', value: 1 },
  { label: (item, isChecked) => isChecked ? <span style={{color: 'red'}}>female</span> : 'female', value: 2 },
]

const App = () => {
  const [gender, setGender] = useState()
  const [multiGender, setMultiGender] = useState([])
  
  return (
    <>
      <Radio value={gender} items={items} onChange={(val, item) => setGender(val)} />
      <Checkbox value={multiGender} items={items} onChange={(val, currItem) => setMultiGender(val)} />
      gender: {gender}
      multi gender: {multiGender.join(',')}
    </>
  )
}
```

Use in html, see what your can use in [CDN: unpkg](https://unpkg.com/@auraxy/react-radio-checkbox/lib/umd/)
```html
<-- use what you want -->
<script src="https://unpkg.com/@auraxy/react-radio-checkbox/lib/umd/<--module-->.js"></script>
```

## style
For building style, you may need to import the css or scss file:
```js
// scss
import '@auraxy/react-radio-checkbox/lib/css/index.scss'

// css
import '@auraxy/react-radio-checkbox/lib/css/index.css'
```
Or
```scss
// scss
@import 'node_modules/@auraxy/react-radio-checkbox/lib/css/index.scss'

// css
@import 'node_modules/@auraxy/react-radio-checkbox/lib/css/index.css'
```

Or, you can build your custom style by copying, editing and importing `node_modules/@auraxy/react-radio-checkbox/lib/css/index.scss`

## QA

1. Error `Error: spawn node-sass ENOENT`

> You may need install node-sass globally, `npm i -g node-sass`
