1.11.0 • Published 2 years ago

react-dropdown v1.11.0

Weekly downloads
91,323
License
MIT
Repository
github
Last release
2 years ago

react-dropdown

NPM version Downloads

Simple Dropdown component for React, inspired by react-select

Why

  • The default HTML select element is hard to style
  • And sometime we also want grouped menus
  • if you want more advanced select, check react-select

Installation

// with npm
$ npm install react-dropdown  --save

// with yarn
$ yarn add react-dropdown

Changelog

If you want to support React version under v0.13, use react-dropdown@v0.6.1

Usage

This is the basic usage of react-dropdown

import Dropdown from 'react-dropdown';
import 'react-dropdown/style.css';

const options = [
  'one', 'two', 'three'
];
const defaultOption = options[0];
<Dropdown options={options} onChange={this._onSelect} value={defaultOption} placeholder="Select an option" />;

Options

Flat Array options

const options = [
  'one', 'two', 'three'
];

Object Array options

const options = [
  { value: 'one', label: 'One' },
  { value: 'two', label: 'Two', className: 'myOptionClassName' },
  {
   type: 'group', name: 'group1', items: [
     { value: 'three', label: 'Three', className: 'myOptionClassName' },
     { value: 'four', label: 'Four' }
   ]
  },
  {
   type: 'group', name: 'group2', items: [
     { value: 'five', label: 'Five' },
     { value: 'six', label: 'Six' }
   ]
  }
];

When using Object options you can add to each option a className string to further customize the dropdown, e.g. adding icons to options

Disabling the Dropdown

Just pass a disabled boolean value to the Dropdown to disable it. This will also give you a .Dropdown-disabled class on the element, so you can style it yourself.

<Dropdown disabled onChange={this._onSelect} value={defaultOption} placeholder="Select an option" />;

Customizing the dropdown

className

The className prop is passed down to the wrapper div, which also has the Dropdown-root class.

<Dropdown className='myClassName' />;

controlClassName

The controlClassName prop is passed down to the control div, which also has the Dropdown-control class.

<Dropdown controlClassName='myControlClassName' />;

placeholderClassName

The placeholderClassName prop is passed down to the placeholder div, which also has the Dropdown-placeholder class.

<Dropdown placeholderClassName='myPlaceholderClassName' />;

menuClassName

The menuClassName prop is passed down to the menu div (the one that opens and closes and holds the options), which also has the Dropdown-menu class.

<Dropdown menuClassName='myMenuClassName' />;

arrowClassName

The arrowClassName prop is passed down to the arrow span , which also has the Dropdown-arrow class.

<Dropdown arrowClassName='myArrowClassName' />;

arrowClosed, arrowOpen

The arrowClosed & arrowOpen props enable passing in custom elements for the open/closed state arrows.

<Dropdown
  arrowClosed={<span className="arrow-closed" />}
  arrowOpen={<span className="arrow-open" />}
/>;

Check more examples in the example folder.

Run example

$ npm start

License

MIT | Build for CSViz project @Wiredcraft

@yelloan/redoc@alyz.tech/alyz_js_sdkfrinx-workflow-ui2oncoview@axa/aletheia@adaliszk/redoc-extendedanm.pa.search.widgetreact-webphone@infinitebrahmanuniverse/nolb-react-dr@everything-registry/sub-chunk-2552akellohypaiq-rcgray-reactinteractive_sortinghere-we-gofrinx-workflow-uifractals-visualizer-reactfractals-reacthomeflowjskaya-ui-design-system-pbjsx-ws-bskentico-cloud-docs-redockentico-kontent-docs-redocformwiz-publicweb-controlsfindify-ui-componentsgenerate-ui-testslbs-react-tablemyhealthcaremyhealthcarehisngs-dashboardotx-redocpi-shared-clientpipesort-admin-templatereact-notifications-simplereact-tabtab-laidbackreact-logic-formredoc-extendedreact-accessibilityreact-eulexiatest-workflow-ui@ecollect/redoctool-dapper-reacttribes-media-uitest-form-check@escolalms/components@m-fe/mesh-space@m-fe/react-model-viewer@unionfab/polyviewer@storaensods/se-design-system@storaensods/seeds-react@wavo-cloud/auth-header-componentrykan-web-framework@neolefty/hexeralswp-services@proa-data/b2brac-components@peaze-labs/ui@packdigital/gatsby-theme-ripperoni-account@saasify/redoc@zalastax/nolb-react-dr@yoctottalib/react-js-chart@xyo-network/tool-dapper-reactapibook-generic@tokend/redocaltos-text-editor@xumm_12/geekie-symbol@terraeclipse/crs-formswax-prose-mirrorwax-prosemirror-componentswax-prosemirror-services@leoendless/redocwalletscore-report@modelo.io/apiui@whitepages/redoc@chwzr/jupyter-vje-extension@codedrift/common-ui@appkit/dek-ui@appbaseio/reactive-manual-vue@appbaseio/reactive-manual-v3b2s-feriencamp-widget@canner/slate-icon-fontsize@canner/slate-icon-letterspacing@canner/slate-select-fontsize@businessandemotions/lemonade-core@bounties-network/components@axa-ch/pod-eliah-vorsorgeportal@crystaldesign/diva-web-planner-react@crystaldesign/diva-navigation-bar@crystaldesign/diva-navigatorshui-components-bhabani@findify/ui-components@fortemtech/olympian-react-libraryvizg@djennadar/hrnetbs-react-dropdown@geekie/geekie-symbol@dowelllabs/dowell-living-lab-maps@deuex-solutions/redoccloudtutorialscheckout-loadz@henry_sue/react-rule-builder
1.11.0

2 years ago

1.10.0

2 years ago

1.9.2

3 years ago

1.9.1

3 years ago

1.9.0

4 years ago

1.8.0

4 years ago

1.7.0

4 years ago

1.6.4

5 years ago

1.6.3

5 years ago

1.6.2

6 years ago

1.6.1

6 years ago

1.5.0

6 years ago

1.4.2

6 years ago

1.4.0

6 years ago

1.3.6

6 years ago

1.3.5

6 years ago

1.3.4

6 years ago

1.3.3

6 years ago

1.3.2

7 years ago

1.3.1

7 years ago

1.3.0

7 years ago

1.2.5

7 years ago

1.2.4

7 years ago

1.2.3

7 years ago

1.2.1

7 years ago

1.2.0

7 years ago

1.1.0

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago

0.7.2

9 years ago

0.7.1

9 years ago

0.7.0

9 years ago

0.6.1

9 years ago

0.5.1

9 years ago

0.5.0

9 years ago

0.4.1

9 years ago

0.4.0

9 years ago

0.3.2

9 years ago

0.3.1

9 years ago

0.2.1

9 years ago

0.2.0

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago