Skip to main content

Menu

Overlay & Menus

Menu

Context menu built on Popover + Dropdown primitives with keyboard support.

Usage

Attach contextual actions to buttons, chips, or icon triggers.

Highlights

  • MenuItem subcomponent
  • Close-on-select and focus restore behaviors

When to use it

  • User needs a small list of contextual actions.
  • You require cascading operations without navigation.

Examples

Default

Preview (Web)
import { useRef, useState } from 'react';
import { StyleSheet } from 'react-native';
import { Button } from 'react-native-molecules/components/Button';
import { Icon } from 'react-native-molecules/components/Icon';
import { Menu } from 'react-native-molecules/components/Menu';
import { Text } from 'react-native-molecules/components/Text';

const styles = StyleSheet.create({
  menu: {
      width: 280,
  },
});

export default function Example() {
  const triggerRef = useRef(null);
  const [open, setOpen] = useState(false);

  return (
      <>
          <Button ref={triggerRef} onPress={() => setOpen(o => !o)}>
              Toggle
          </Button>
          <Menu style={styles.menu} isOpen={open} onClose={() => setOpen(false)} triggerRef={triggerRef}>
              <Menu.Item left={<Icon name="content-cut" size={22} />} right={<Text>⌘X</Text>}>
                  Cut
              </Menu.Item>
              <Menu.Item left={<Icon name="content-copy" size={22} />} right={<Text>⌘C</Text>}>
                  Copy
              </Menu.Item>
              <Menu.Item left={<Icon name="content-paste" size={22} />} right={<Text>⌘V</Text>}>
                  Paste
              </Menu.Item>
              <Menu.Divider />
              <Menu.Item left={<Icon name="cloud" size={22} />}>Web Clipboard</Menu.Item>
          </Menu>
      </>
  );
}
PropTypeDefaultDescription
style((false | "" | ViewStyle | RegisteredStyle<ViewStyle> | RecursiveArray<Falsy | ViewStyle | RegisteredStyle<ViewStyle>> | null) & ViewStyle) | undefined
closeOnSelectboolean | undefined
onCloseRequired() => void
childrenRequiredReactElement<unknown, string | JSXElementConstructor<any>> | ReactElement<unknown, string | JSXElementConstructor<any>>[]
Defined in react-native-molecules/components/Menu