Awesome
React Column Select
🚀 Features
- Easily customize colors
- Responsive Design
- Styled with emotion
- Built with Typescript
⚡ Installation
yarn add react-column-select
# or
npm i react-column-select
🏁 Getting Started
import React, { useState } from 'react'
import ColumnSelect from 'react-column-select'
const hobbies = [
{ value: '1', label: 'Hockey' },
{ value: '2', label: 'Painting' },
{ value: '3', label: 'Singing' },
]
const HobbiesSelect = () => {
const [selected, setSelected] = useState([])
const onChange = (values) => {
setSelected(values)
}
return (
<div>
<h2>Select Your Hobbies</h2>
<ColumnSelect
options={hobbies}
onChange={onChange}
labels={{
leftHeader: 'Available Hobbies',
rightHeader: 'Selected Hobbies',
}}
/>
</div>
)
}
⚙️ Props
name | type | isRequired | default | description |
---|---|---|---|---|
options | array | ✔ | N/A | available select options |
onChange | function | ✔ | N/A | function called when selected values change |
defaultValue | array | ✖ | [] | set the initial selected values |
max | number | ✖ | N/A | set the max number of options that can be selected |
labels | object | ✖ | see below | the labels for the headers, buttons & search input |
theme | object | ✖ | see below | the color theme |
isSearchable | boolean | ✖ | false | enables searching |
disableAllButtons | boolean | ✖ | false | disable the "Add All" and "Remove All" buttons |
disableDoubleClick | boolean | ✖ | false | disable double click to add/remove an option |
disableKeyboard | boolean | ✖ | false | disable navigation the select options with keyboard |
🎨 Theme Customization
Below is the default theme. Change the values that you want to customize:
{
headerBgColor: '#d1d5db',
columnBorderColor: '#9ca3af',
textColor: '#000000',
columnBgColor: '#CBD5E0',
buttonBgColor: '#CBD5E0',
optionSelectedBgColor: '#EDF2F7',
optionHoverBgColor: '#FAFBFC',
searchFocusBorderColor: '#06b6d4',
}
🏷️ Label Customization
Below are the default labels. Change the values that you want to customize:
{
leftHeader: 'Options',
rightHeader: 'Selected',
searchPlaceholder: 'Search ...',
add: 'Add',
addAll: 'Add All',
remove: 'Remove',
removeAll: 'Remove All',
}
License
Distributed under the MIT license. See LICENSE
for more information.