fyndiq-component-dropdown
v2.9.1
Published
[Preview](http://developers.fyndiq.com/fyndiq-ui/?selectedKind=Dropdown&selectedStory=default)
Keywords
Readme
fyndiq-component-dropdown 
A dropdown component for Fyndiq
Installation
The component can be installed through NPM:
npm i -S fyndiq-component-dropdownUsage
import React from 'react'
import Dropdown from 'fyndiq-component-dropdown'
// Normal usage
<Dropdown button="Open dropdown">
Dropdown content
</Dropdown>
// No arrow pointing downwards
<Dropdown button="Open dropdown" noArrow>
Dropdown content
</Dropdown>
// Custom button
import Button from 'fyndiq-component-button'
<Dropdown button={(
<Button type="primary">
Open Dropdown
</Button>
)}>
Dropdown content
</Dropdown>
// Open dropdown on hover
<Dropdown button="Hover me" hoverMode>
Dropdown content
</Dropdown>
// Change the position of the dropdown
<Dropdown button="Top right" position="tr">
Dropdown content
</Dropdown>
// Custom class names
<Dropdown
button="Open"
className="className"
wrapperClassName="wrapperClassName"
>
Content
</Dropdown>
// Programatically close the dropdown from inside
<Dropdown button="button">
{({ onClose }) => (
<button onClick={onClose}>Click on me to close me</button>
)}
</Dropdown>
// Add handlers on dropdown open and close actions
<Dropdown
button="button"
onOpen={this.handleDropdownOpen}
onClose={this.handleDropdownClose}
>
Content
</Dropdown>See also : fyndiq-component-button
API
The component Dropdown has the following customizable props:
| Name | Type | Description | Default value |
|---|---|---|---|
| button | String or Component | The inside of the dropdown's button. If a String is passed, a <Button> will be shown. | (required) |
| children | Component or Function | Content of the dropdown. If a function is passed, it will be passed a onClose handler. | (required) |
| size | String | Size of the button if button is used in String mode. For values, see Button's API | Button's default |
| position | String | Position of the dropdown, relatively to the button. One of bl, bc, br, tl, tc, tr | bl |
| margin | Number | Distance from the dropdown to the button | 5 |
| className | String | Class name to give to the root element | |
| **wrapperClassName** | String | Class name to give to the wrapper | |
| disabled | Boolean | If true, disables the dropdown | false |
| noArrow | Boolean | If button is used in String mode, hides the downwards arrow | false |
| noWrapperStyle | Boolean | Remove cosmetic styles for the wrapper | false |
| opened | Boolean | Allows to externally control the dropdown | false |
| hoverMode | Boolean | Opens the dropdown on hover rather than on click | false |
| noPropagateClickEvent | Boolean | Stop the propagation of the click event | false |
| onOpen | Function | Handler method when the dropdown is opened | |
| onClose | Function | Handler method when the dropdown is closed | |
