Home

Awesome

React Column Select

NPM CI react-column-select DeepScan grade SIZE Depfu GitHub

Example

🚀 Features

⚡ 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

nametypeisRequireddefaultdescription
optionsarrayN/Aavailable select options
onChangefunctionN/Afunction called when selected values change
defaultValuearray[]set the initial selected values
maxnumberN/Aset the max number of options that can be selected
labelsobjectsee belowthe labels for the headers, buttons & search input
themeobjectsee belowthe color theme
isSearchablebooleanfalseenables searching
disableAllButtonsbooleanfalsedisable the "Add All" and "Remove All" buttons
disableDoubleClickbooleanfalsedisable double click to add/remove an option
disableKeyboardbooleanfalsedisable 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.