UNPKG

bt-react-select

Version:
122 lines (92 loc) 4.46 kB
# Select Component ## Overview The `Select` component is a versatile dropdown component for React applications. It supports various features such as search, chip list selection, and custom icons. ![Select Component](./ss/ss1.png) ![Select Component](./ss/ss2.png) [Live Demo](https://react-select-omega.vercel.app/) ## Installation To use the `Select` component, ensure you have the necessary dependencies installed: ```bash npm install react react-dom react-icons ``` ## Usage ### Basic Usage ```typescript import Select from "./components/select"; import { DUMMY_OPTIONS } from "./data/dummy"; const handleSelectChange = (value: string) => { console.log("Selected value: ", value); }; <Select label="Team member" placeholder="Select team member" options={DUMMY_OPTIONS} onChange={handleSelectChange} />; ``` ### With Icons ```typescript import { FaRegUser } from "react-icons/fa6"; <Select showItemIcon label="Team member" placeholder="Select team member" options={DUMMY_OPTIONS} icon={<FaRegUser />} onChange={handleSelectChange} />; ``` ### Searchable Select ```typescript import { CiSearch } from "react-icons/ci"; <Select variant="search" label="Team member" placeholder="Select team member" options={DUMMY_OPTIONS} icon={<CiSearch />} onChange={handleSelectChange} />; ``` ### Chip List Select ```typescript <Select showItemIcon label="Team member" placeholder="Select team member" options={DUMMY_OPTIONS} onChange={handleSelectChange} variant="chipList" /> ``` ## Props ### SelectProps | Prop | Type | Default | Description | | -------------- | ------------------------------------------------ | ----------------------- | --------------------------------------------- | | `options` | `Option[]` | `[]` | Array of options to display in the dropdown. | | `placeholder` | `string` | `"Select an option"` | Placeholder text when no option is selected. | | `helperText` | `string` | `undefined` | Helper text displayed below the dropdown. | | `label` | `string` | `undefined` | Label text displayed above the dropdown. | | `icon` | `React.ReactNode` | `undefined` | Icon displayed inside the dropdown. | | `showItemIcon` | `boolean` | `false` | Whether to show icons for each item. | | `onChange` | `(value: string) => void` | `undefined` | Callback function when an option is selected. | | `selectedIcon` | `React.ReactNode` | `undefined` | Icon displayed for selected option. | | `variant` | `SelectVariant` | `SelectVariant.DEFAULT` | Variant of the select component. | | `disabled` | `boolean` | `false` | Whether the select component is disabled. | | `defaultValue` | `string` | `undefined` | Default value of the select component. | | `fieldNames` | `{ label: string; value: string; img?: string }` | `undefined` | Custom field names for the options. | | `filterSort` | `(optionA: Option, optionB: Option) => number` | `undefined` | Custom filter and sort function for options. | ### Option | Prop | Type | Description | | ------- | -------- | ---------------------------------- | | `value` | `string` | The value of the option. | | `label` | `string` | The label of the option. | | `img` | `string` | Optional image URL for the option. | ### SelectVariant | Variant | Description | | ----------- | -------------------------------------------------- | | `DEFAULT` | Default variant with basic dropdown functionality. | | `SEARCH` | Searchable dropdown variant. | | `CHIP_LIST` | Chip list variant allowing multiple selections. | ## License This project is licensed under the MIT License.