woocommerce/plugins/woocommerce-admin/client/components/split-button/README.md

2.0 KiB

SplitButton

A component for displaying a button with a main action plus a secondary set of actions behind a menu toggle.

How to use:

import SplitButton from 'components/split-button';

render: function() {
  return (
	<div>
		<SplitButton
			isPrimary
			mainLabel="Primary Button"
			menuLabel="Select an action"
			onClick={ () => alert( 'Primary Main Action clicked' ) }
			controls={ [
				{
					label: 'Up',
					onClick: () => alert( 'Primary Up clicked' ),
				},
				{
					label: 'Right',
					onClick: () => alert( 'Primary Right clicked' ),
				},
				{
					label: 'Down',
					icon: <Gridicon icon="arrow-down" />,
					onClick: () => alert( 'Primary Down clicked' ),
				},
				{
					label: 'Left',
					icon: <Gridicon icon="arrow-left" />,
					onClick: () => alert( 'Primary Left clicked' ),
				},
			] }
				/>
		<SplitButton
			mainIcon={ <Gridicon icon="pencil" /> }
			menuLabel="Select an action"
			onClick={ () => alert( 'Icon Only Action clicked' ) }
			controls={ [
				{
					label: 'Up',
					icon: <Gridicon icon="arrow-up" />,
					onClick: () => alert( 'Icon Only Up clicked' ),
				},
				{
					label: 'Right',
					onClick: () => alert( 'Icon Only Right clicked' ),
				},
				{
					label: 'Down',
					icon: <Gridicon icon="arrow-down" />,
					onClick: () => alert( 'Icon Only Down clicked' ),
				},
				{
					icon: <Gridicon icon="arrow-left" />,
					onClick: () => alert( 'Icon Only Left clicked' ),
				},
			] }
		/>
	</div>
  );
}

Props

  • isPrimary: Default false. Whether the button is styled as a primary button.
  • mainIcon: Icon for the main button.
  • mainLabel: Label for the main button.
  • onClick: Function to activate when the the main button is clicked.
  • menuLabel: Label to display for the menu of actions, used as a heading on the mobile popover and for accessible text.
  • controls: An array of additional actions. Accepts additional icon, label, and onClick props.
  • className: Additional CSS classes.