Ariakit
/
/
This site is under construction Subscribe to updates

MenuItemCheckbox

Rendering Menu using MenuItemCheckbox as children and the values prop from useMenuState to control the checked items.

import {
  Menu,
  MenuArrow,
  MenuButton,
  MenuButtonArrow,
  MenuItemCheck,
  MenuItemCheckbox,
  useMenuState,
} from "ariakit/menu";
import "./style.css";

export default function Example() {
  const menu = useMenuState({
    defaultValues: { watching: ["issues"] },
  });
  return (
    <>
      <MenuButton state={menu} className="button">
        {!!menu.values.watching.length ? "Unwatch" : "Watch"}
        <MenuButtonArrow />
      </MenuButton>
      <Menu state={menu} className="menu">
        <MenuArrow className="menu-arrow" />
        <MenuItemCheckbox name="watching" value="issues" className="menu-item">
          <MenuItemCheck />
          Issues
        </MenuItemCheckbox>
        <MenuItemCheckbox
          name="watching"
          value="pull-requests"
          className="menu-item"
        >
          <MenuItemCheck />
          Pull requests
        </MenuItemCheckbox>
        <MenuItemCheckbox
          name="watching"
          value="releases"
          className="menu-item"
        >
          <MenuItemCheck />
          Releases
        </MenuItemCheckbox>
        <MenuItemCheckbox
          name="watching"
          value="discussions"
          className="menu-item"
        >
          <MenuItemCheck />
          Discussions
        </MenuItemCheckbox>
        <MenuItemCheckbox
          name="watching"
          value="security-alerts"
          className="menu-item"
        >
          <MenuItemCheck />
          Security alerts
        </MenuItemCheckbox>
      </Menu>
    </>
  );
}