
Security News
Deno 2.6 + Socket: Supply Chain Defense In Your CLI
Deno 2.6 introduces deno audit with a new --socket flag that plugs directly into Socket to bring supply chain security checks into the Deno CLI.
@zilahir/react-multi-select-component
Advanced tools
Simple and lightweight multiple selection dropdown component with checkboxes, search and select-all
Simple and lightweight multiple selection dropdown component with checkboxes, search and select-all
npm i react-multi-select-component # npm
yarn add react-multi-select-component # yarn

import React, { useState } from "react";
import MultiSelect from "react-multi-select-component";
const Example: React.FC = () => {
const options = [
{ label: "Grapes π", value: "grapes" },
{ label: "Mango π₯", value: "mango" },
{ label: "Strawberry π", value: "strawberry", disabled: true },
{ label: "Watermelon π", value: "watermelon" },
{ label: "Pear π", value: "pear" },
{ label: "Apple π", value: "apple" },
{ label: "Tangerine π", value: "tangerine" },
{ label: "Pineapple π", value: "pineapple" },
{ label: "Peach π", value: "peach" },
];
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;
| Prop | Description | Type | Default |
|---|---|---|---|
labelledBy | value for aria-labelledby | string | |
options | options for dropdown | [{label, value, disabled}] | |
value | pre-selected rows | [{label, value}] | [] |
focusSearchOnOpen | focus on search input when opening | boolean | true |
hasSelectAll | toggle 'Select All' option | boolean | true |
isLoading | show spinner on select | boolean | false |
shouldToggleOnHover | toggle dropdown on hover option | boolean | false |
overrideStrings | i18n docs | object | |
onChange | onChange callback | function | |
disabled | disable dropdown | boolean | false |
selectAllLabel | select all label | string | |
disableSearch | hide search textbox | boolean | false |
filterOptions | custom filter options | function | Fuzzy Search |
className | class name for parent component | string | multi-select |
valueRenderer | custom dropdown header docs | function | |
ItemRenderer | custom dropdown option docs | function | |
ClearIcon | Custom Clear Icon for Search | `string | function` |
debounceDuration | debounce duraion for Search | number | 300 |
ClearSelectedIcon | Custom Clear Icon for Selected Items | `string | function` |
By default this component uses a fuzzy search algorithm to filter options but also allows you to opt-out and use your custom logic if you want to below is the example doing just case insensitive search
export function filterOptions(options, filter) {
if (!filter) {
return options;
}
const re = new RegExp(filter, "i");
return options.filter(({ value }) => value && value.match(re));
}
You can easily Internationalize this component by passing prop overrideStrings so that UI strings can be presented in a different language
default values for overrideStrings are as below
{
"selectSomeItems": "Select...",
"allItemsAreSelected": "All items are selected.",
"selectAll": "Select All",
"search": "Search",
"clearSearch": "Clear Search"
}
Optionally customise value renderer view by passing valueRenderer prop
const customValueRenderer = (selected, _options) => {
return selected.length
? selected.map(({ label }) => "βοΈ " + label)
: "πΆ No Items Selected";
};
Optionally customise dropdown item by passing ItemRenderer prop
You can override CSS variables to customize the appearance
.multi-select {
--rmsc-main: #4285f4;
--rmsc-hover: #f1f3f5;
--rmsc-selected: #e2e6ea;
--rmsc-border: #ccc;
--rmsc-gray: #aaa;
--rmsc-bg: #fff;
--rmsc-p: 10px; /* Spacing */
--rmsc-radius: 4px; /* Radius */
--rmsc-h: 38px; /* Height */
}
use
!importantif CSS variables are not getting applied
MIT Β© harshzalavadiya
FAQs
Simple and lightweight multiple selection dropdown component with checkboxes, search and select-all
The npm package @zilahir/react-multi-select-component receives a total of 8 weekly downloads. As such, @zilahir/react-multi-select-component popularity was classified as not popular.
We found that @zilahir/react-multi-select-component demonstrated a not healthy version release cadence and project activity because the last version was released a year ago.Β It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Deno 2.6 introduces deno audit with a new --socket flag that plugs directly into Socket to bring supply chain security checks into the Deno CLI.

Security News
New DoS and source code exposure bugs in React Server Components and Next.js: whatβs affected and how to update safely.

Security News
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.