woocommerce/plugins/woocommerce-admin/client/components/ellipsis-menu
Kelly Dwan 7711da472a Docs Project: Component cleanup (https://github.com/woocommerce/woocommerce-admin/pull/334)
* Validate component with helper function

Fixes compat issue with react-docgen

* Switch all components to default exports

This ensures we can read all components for documentation generation (plus, standardizing is good)

* inValidDays -> invalidDays

Invalid is a single word, so by capitalization rules the V should be lowercase

* Export child-components of Chart

* Fix table exports
2018-08-31 13:19:13 -04:00
..
README.md Docs Project: Component cleanup (https://github.com/woocommerce/woocommerce-admin/pull/334) 2018-08-31 13:19:13 -04:00
index.js Docs Project: Component cleanup (https://github.com/woocommerce/woocommerce-admin/pull/334) 2018-08-31 13:19:13 -04:00
menu-item.js Update to Gutenberg 3.3 (https://github.com/woocommerce/woocommerce-admin/pull/234) 2018-07-23 16:14:40 -04:00
menu-title.js Add CSS naming conventions following Gutenberg’s standards (https://github.com/woocommerce/woocommerce-admin/pull/99) 2018-06-01 10:35:18 -04:00
style.scss Add CSS naming conventions following Gutenberg’s standards (https://github.com/woocommerce/woocommerce-admin/pull/99) 2018-06-01 10:35:18 -04:00

README.md

EllipsisMenu

This is a dropdown menu hidden behind a vertical ellipsis icon. When clicked, the inner MenuItems are displayed. MenuItem is used to give the item an accessible wrapper, with the menuitem role and added keyboard functionality (onInvoke). MenuItems can also be deemed "clickable", though this is disabled by default because generally the inner component handles the click event.

The last component in this set is MenuTitle, which is another valid Menu child but this does not have any accessibility attributes associated (so this should not be used in place of the EllipsisMenu prop label).

How to use:

import { EllipsisMenu, MenuItem, MenuTitle } from '@woocommerce/components';

render: function() {
  return (
    <EllipsisMenu label="Choose which analytics to display">
      <MenuTitle>Display Stats</MenuTitle>
      <MenuItem onInvoke={ this.toggle }>
        <ToggleControl
          label="Show Customers"
          checked={ this.state.showCustomers }
          onChange={ this.toggle }
        />
      </MenuItem>
      
    </EllipsisMenu>
  );
}

EllipsisMenu Props

  • label (required): The label shown when hovering/focusing on the icon button.
  • children: A list of MenuTitle/MenuItem components

MenuItem Props

  • onInvoke (required): A function called when this item is activated via keyboard ENTER or SPACE; or when the item is clicked (only if isClickable is set).
  • children: A renderable component (or string) which will be displayed as the content of this item. Generally a ToggleControl.
  • isClickable: Boolean to control whether the MenuItem should handle the click event. Defaults to false, assuming your child component handles the click event.

MenuTitle Props

  • children: A renderable component (or string) which will be displayed as the content of this item.