dropdownControl.stories.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. import React from 'react';
  2. import DropdownControl, {DropdownItem} from 'app/components/dropdownControl';
  3. import MenuItem from 'app/components/menuItem';
  4. export default {
  5. title: 'Core/Buttons/Dropdowns/DropdownControl',
  6. };
  7. export const BasicLabelKnobs = ({
  8. menuWidth,
  9. alwaysRenderMenu,
  10. alignRight,
  11. blendWithActor,
  12. }) => {
  13. return (
  14. <div className="clearfix">
  15. <DropdownControl
  16. label="Open Me"
  17. menuWidth={menuWidth}
  18. alwaysRenderMenu={alwaysRenderMenu}
  19. alignRight={alignRight}
  20. blendWithActor={blendWithActor}
  21. >
  22. <DropdownItem href="">Href Item</DropdownItem>
  23. <DropdownItem to="">Router Item</DropdownItem>
  24. <DropdownItem disabled>Disabled Item</DropdownItem>
  25. <DropdownItem divider />
  26. <DropdownItem isActive href="">
  27. Active Item
  28. </DropdownItem>
  29. </DropdownControl>
  30. </div>
  31. );
  32. };
  33. BasicLabelKnobs.storyName = 'basic label + knobs';
  34. BasicLabelKnobs.args = {
  35. menuWidth: '',
  36. alwaysRenderMenu: true,
  37. alignRight: false,
  38. blendWithActor: false,
  39. };
  40. BasicLabelKnobs.parameters = {
  41. docs: {
  42. description: {
  43. story: 'Using a string value for the button label',
  44. },
  45. },
  46. };
  47. export const BasicMenuItem = () => (
  48. <div className="clearfix">
  49. <DropdownControl label={<em>Slanty</em>}>
  50. <MenuItem href="">Item</MenuItem>
  51. <MenuItem href="">Item</MenuItem>
  52. </DropdownControl>
  53. </div>
  54. );
  55. BasicMenuItem.storyName = 'basic menu item';
  56. BasicMenuItem.parameters = {
  57. docs: {
  58. description: {
  59. story: 'Element labels replace the button contents',
  60. },
  61. },
  62. };
  63. export const ElementLabel = () => (
  64. <div className="clearfix">
  65. <DropdownControl label="Created Date">
  66. <MenuItem href="">Item</MenuItem>
  67. <MenuItem href="">Item</MenuItem>
  68. </DropdownControl>
  69. </div>
  70. );
  71. ElementLabel.storyName = 'element label';
  72. ElementLabel.parameters = {
  73. docs: {
  74. description: {
  75. story: 'Element labels replace the button contents',
  76. },
  77. },
  78. };
  79. export const PrefixedLabel = () => (
  80. <div className="clearfix">
  81. <DropdownControl buttonProps={{prefix: 'Sort By'}} label="Created Date">
  82. <MenuItem href="">Item</MenuItem>
  83. <MenuItem href="">Item</MenuItem>
  84. </DropdownControl>
  85. </div>
  86. );
  87. PrefixedLabel.storyName = 'prefixed label';
  88. PrefixedLabel.parameters = {
  89. docs: {
  90. description: {
  91. story: 'Element labels replace the button contents',
  92. },
  93. },
  94. };
  95. export const CustomButton = () => (
  96. <div className="clearfix">
  97. <DropdownControl
  98. button={({getActorProps}) => <button {...getActorProps()}>click me</button>}
  99. >
  100. <MenuItem href="">Item</MenuItem>
  101. <MenuItem href="">Item</MenuItem>
  102. </DropdownControl>
  103. </div>
  104. );
  105. CustomButton.storyName = 'custom button';
  106. CustomButton.parameters = {
  107. docs: {
  108. description: {
  109. story: 'button prop lets you replace the entire button.',
  110. },
  111. },
  112. };