hc-oss / react-multi-select-component

Lightweight (~5KB gzipped) multiple selection dropdown component

Home Page:https://codesandbox.io/s/react-multi-select-example-uqtgs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

react-multi-select-component

Simple and lightweight multiple selection dropdown component with checkboxes, search and select-all

Storybook GitHub Actions Status NPM gzip

✨ Features

  • πŸ•Ά Zero Dependency
  • πŸƒ Lightweight (<5KB)
  • πŸ’… Themeable
  • ✌ Written w/ TypeScript

πŸ”§ Installation

npm i react-multi-select-component    # npm
yarn add react-multi-select-component # yarn

πŸ“¦ Example

Example

import React, { useState } from "react";
import { MultiSelect } from "react-multi-select-component";

const options = [
  { label: "Grapes πŸ‡", value: "grapes" },
  { label: "Mango πŸ₯­", value: "mango" },
  { label: "Strawberry πŸ“", value: "strawberry", disabled: true },
];

const Example = () => {
  const [selected, setSelected] = useState([]);

  return (
    <div>
      <h1>Select Fruits</h1>
      <pre>{JSON.stringify(selected)}</pre>
      <MultiSelect
        options={options}
        value={selected}
        onChange={setSelected}
        labelledBy="Select"
      />
    </div>
  );
};

export default Example;

More examples can be found here β†—

πŸ‘€ Props

Prop Description Type Default
labelledBy value for aria-labelledby string
options options for dropdown [{label, value, disabled}]
value pre-selected rows [{label, value}] []
hasSelectAll toggle 'Select All' option boolean true
isLoading show spinner on select boolean false
shouldToggleOnHover toggle dropdown on hover option boolean false
overrideStrings localization β†— object
onChange onChange callback function
disabled disable dropdown boolean false
disableSearch hide search textbox boolean false
filterOptions custom filter options (async supported) β†— function Fuzzy Search
className class name for parent component string multi-select
valueRenderer custom dropdown header β†— function
ItemRenderer custom dropdown option β†— function
ClearIcon Custom Clear Icon for Search ReactNode
ArrowRenderer Custom Arrow Icon for Dropdown ReactNode
debounceDuration debounce duration for Search number 300
ClearSelectedIcon Custom Clear Icon for Selected Items (Hint: Pass null to prevent it from rendering completely) ReactNode
isCreatable Allows user to create unavailable option(s) example β†— boolean false
onCreateOption allows to override newly created option example β†— function
closeOnChangedValue automatically closes dropdown when its value is changed boolean false

πŸ“ Changelog

For every release changelog/migration-guide will be available in releases

🀠 Credits

πŸ“œ License

MIT Β© harshzalavadiya

About

Lightweight (~5KB gzipped) multiple selection dropdown component

https://codesandbox.io/s/react-multi-select-example-uqtgs

License:MIT License


Languages

Language:TypeScript 86.1%Language:CSS 8.7%Language:JavaScript 4.8%Language:HTML 0.4%