Skip to content

GrimonprezAlexis/react-custom-dropdown

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A simple and customizable dropdown component built with React and TypeScript.

Features

  • Searchable dropdown list with the input field
  • Select an option with a click
  • On change event
  • Keyboard navigation using the arrow keys to move up and down the options
  • Required field validation optionnel
  • Required message optionnel
  • Customizable styles

Installation

You can install the CustomDropdown component using npm: npm install agr-custom-dropdown or yarn add agr-custom-dropdown

Usage

Here is a basic example of how to use the CustomDropdown component:

import React from "react";
import CustomDropdown from "./CustomDropdown";

const options = [
  { label: "Option 1", value: 1 },
  { label: "Option 2", value: 2 },
  { label: "Option 3", value: 3 }
];

const handleChange = (selectedOption) => {
  console.log(selectedOption);
};

function App() {
  return (
    <div>
      <CustomDropdown
        options={options}
        onChange={handleChange}
        required={true}
        requiredMessage="A option must be selected."
        forceRequired={false}
        placeholder="Select an option"
      />
    </div>
  );
}

export default App;

Keyboard Actions

  • Use the up and down arrow keys to navigate the options.
  • Press Enter to select the currently highlighted option.
  • Press Esc to close the options dropdown.

Props

The CustomDropdown component takes the following props:

Prop Type Required Description
options Option[] Yes An array of objects representing the options in the dropdown list. Each object should have a label and a value property.
onChange (selectedOption: Option) => void Yes A callback function that is called when an option is selected. The selected option is passed as a parameter to the callback function.
required boolean No Indicates if the dropdown is required or not. If the property is present and is set to true, the dropdown will have a required class.
requiredMessage string No Message, if the property required is set to true (default 'this field is required')
forceRequired boolean No A flag indicating if the dropdown should always display the requiredMessage, even if an option has been selected.
placeholder string No The placeholder text to display in the input field (default 'Search or select options...')

Contributing

If you find any bugs or have any suggestions for improvements, feel free to open an issue or submit a pull request on the GitHub repository.

License

This component is open-source software licensed under the MIT License.

About

A custom and modern dropdown list with a search bar, built in React

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages