import * as React from "react"; import * as ReactDOM from "react-dom"; import { closeMenu, openMenu, Wrapper, Button, Menu, MenuItem } from "react-aria-menubutton"; const menuItemWords = ["foo", "bar", "baz"]; class MyMenuButton extends React.Component { render() { const menuItems = menuItemWords.map((word, i) => { return (
  • {word}
  • ); }); return ( console.log(value, event)} > ); } } ReactDOM.render(, document.body); const words = [ "pectinate", "borborygmus", "anisodactylous", "barbar", "pilcrow", "destroy" ]; interface DemoOneState { selected: string; noMenu: boolean; } class DemoOne extends React.Component<{}, DemoOneState> { state = { selected: "", noMenu: false }; handleSelection(value: string) { if (value === "destroy") { this.setState({ noMenu: true }); } else { this.setState({ selected: value }); } } render() { const { selected, noMenu } = this.state; if (noMenu) { return (
    [You decided to "destroy this menu," so the menu has been destroyed, according to your wishes. Refresh the page to see it again.]
    ); } const menuItemElements = words.map((word, i) => { let itemClass = "AriaMenuButton-menuItem"; if (selected === word) { itemClass += " is-selected"; } const display = word === "destroy" ? "destroy this menu" : word; return (
  • {display}
  • ); }); return (
      {menuItemElements}
    Your last selection was: {selected}
    ); } } ReactDOM.render(, document.getElementById("demo-one")); closeMenu(""); closeMenu("", { focusButton: true }); openMenu(""); openMenu("", { focusMenu: true }); class ObjectMenuItem extends React.Component { render() { const itemValue = { name: "Test name", label: "Only item to select" }; return ( console.log(value.name)}>
  • {itemValue.label}
  • ); } } ReactDOM.render(, document.body);