dropdown.stories.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import React from 'react'
  2. import { Dropdown, DropdownButton, MenuItem } from 'react-bootstrap'
  3. import Icon from '../js/shared/components/icon'
  4. const MenuItems = () => (
  5. <>
  6. <MenuItem eventKey="1">Action</MenuItem>
  7. <MenuItem eventKey="2">Another action</MenuItem>
  8. <MenuItem eventKey="3" active>
  9. Active Item
  10. </MenuItem>
  11. <MenuItem divider />
  12. <MenuItem eventKey="4">Separated link</MenuItem>
  13. </>
  14. )
  15. const defaultArgs = {
  16. bsStyle: 'default',
  17. title: 'Dropdown',
  18. pullRight: false,
  19. noCaret: false,
  20. className: '',
  21. defaultOpen: true
  22. }
  23. export const Default = args => {
  24. return (
  25. <DropdownButton {...args}>
  26. <MenuItems />
  27. </DropdownButton>
  28. )
  29. }
  30. Default.args = { ...defaultArgs }
  31. export const Primary = args => {
  32. return (
  33. <DropdownButton {...args}>
  34. <MenuItems />
  35. </DropdownButton>
  36. )
  37. }
  38. Primary.args = { ...defaultArgs, bsStyle: 'primary' }
  39. export const RightAligned = args => {
  40. return (
  41. <div style={{ 'text-align': 'right' }}>
  42. <DropdownButton {...args}>
  43. <MenuItems />
  44. </DropdownButton>
  45. </div>
  46. )
  47. }
  48. RightAligned.args = { ...defaultArgs, pullRight: true }
  49. export const SingleIconTransparent = args => {
  50. return (
  51. <div style={{ 'text-align': 'right' }}>
  52. <DropdownButton {...args}>
  53. <MenuItems />
  54. </DropdownButton>
  55. </div>
  56. )
  57. }
  58. SingleIconTransparent.args = {
  59. ...defaultArgs,
  60. pullRight: true,
  61. title: <Icon type="ellipsis-v" />,
  62. noCaret: true,
  63. className: 'dropdown-toggle-no-background'
  64. }
  65. export const Customized = args => {
  66. return (
  67. <Dropdown pullRight={args.pullRight} defaultOpen={args.defaultOpen}>
  68. <Dropdown.Toggle
  69. noCaret={args.noCaret}
  70. className={args.className}
  71. bsStyle={args.bsStyle}
  72. >
  73. {args.title}
  74. </Dropdown.Toggle>
  75. <Dropdown.Menu>
  76. <MenuItems />
  77. </Dropdown.Menu>
  78. </Dropdown>
  79. )
  80. }
  81. Customized.args = {
  82. ...defaultArgs,
  83. component: Dropdown,
  84. title: 'Toggle & Menu used separately'
  85. }
  86. export default {
  87. title: 'Dropdown',
  88. component: DropdownButton
  89. }