React Column Select

April 30, 2022 ยท View on GitHub

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

Example

๐Ÿš€ 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

nametypeisRequireddefaultdescription
optionsarrayโœ”N/Aavailable select options
onChangefunctionโœ”N/Afunction called when selected values change
defaultValuearrayโœ–[]set the initial selected values
maxnumberโœ–N/Aset the max number of options that can be selected
labelsobjectโœ–see belowthe labels for the headers, buttons & search input
themeobjectโœ–see belowthe color theme
isSearchablebooleanโœ–falseenables searching
disableAllButtonsbooleanโœ–falsedisable the "Add All" and "Remove All" buttons
disableDoubleClickbooleanโœ–falsedisable double click to add/remove an option
disableKeyboardbooleanโœ–falsedisable 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.