dropdown.stories.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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={{ textAlign: '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={{ textAlign: '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
  68. pullRight={args.pullRight}
  69. defaultOpen={args.defaultOpen}
  70. id="dropdown-story"
  71. >
  72. <Dropdown.Toggle
  73. noCaret={args.noCaret}
  74. className={args.className}
  75. bsStyle={args.bsStyle}
  76. >
  77. {args.title}
  78. </Dropdown.Toggle>
  79. <Dropdown.Menu>
  80. <MenuItems />
  81. </Dropdown.Menu>
  82. </Dropdown>
  83. )
  84. }
  85. Customized.args = {
  86. ...defaultArgs,
  87. component: Dropdown,
  88. title: 'Toggle & Menu used separately',
  89. }
  90. export default {
  91. title: 'Dropdown',
  92. component: DropdownButton,
  93. }