@firefox-devtools/react-contextmenu

Context Menu implemented in React

Usage no npm install needed!

<script type="module">
  import firefoxDevtoolsReactContextmenu from 'https://cdn.skypack.dev/@firefox-devtools/react-contextmenu';
</script>

README

React Contextmenu

ContextMenu in React with accessibility support. Live Examples can be found here

This is a fork from the original project for use with the firefox profiler. We don't intend to add new features but will fix issues with the existing code, and sometimes change it for our usage. We hope it can be useful for more projects.

Thanks Vivek Kumar Bansal for all the good work put in this project.

Table of contents

Installation

Using npm

npm install --save @firefox-devtools/react-contextmenu

Using yarn

yarn add @firefox-devtools/react-contextmenu

Browser Support

  • Edge >= 94
  • FireFox >= 91 and 78
  • Chrome >= 92
  • Opera >= 79
  • Safari >= 13.1

Usage

Simple example

import React from "react";
import ReactDOM from "react-dom";
import { ContextMenu, MenuItem, ContextMenuTrigger } from "@firefox-devtools/react-contextmenu";

function handleClick(e, data) {
  console.log(data.foo);
}

function MyApp() {
  return (
    <div>
      {/* NOTICE: id must be unique between EVERY <ContextMenuTrigger> and <ContextMenu> pair */}
      {/* NOTICE: inside the pair, <ContextMenuTrigger> and <ContextMenu> must have the same id */}

      <ContextMenuTrigger id="same_unique_identifier">
        <div className="well">Right click to see the menu</div>
      </ContextMenuTrigger>

      <ContextMenu id="same_unique_identifier">
        <MenuItem data={{foo: 'bar'}} onClick={this.handleClick}>
          ContextMenu Item 1
        </MenuItem>
        <MenuItem data={{foo: 'bar'}} onClick={this.handleClick}>
          ContextMenu Item 2
        </MenuItem>
        <MenuItem divider />
        <MenuItem data={{foo: 'bar'}} onClick={this.handleClick}>
          ContextMenu Item 3
        </MenuItem>
      </ContextMenu>

    </div>
  );
}

ReactDOM.render(<MyApp myProp={12}/>, document.getElementById("main"));

see usage docs / examples for more details.

API

API docs

FAQs

ALL FAQs

Who's using react-contextmenu?

Contributors

All Contributors

Changelog

For Changelog, see releases For the changelog from before the fork, see releases

License

MIT. Copyright(c) Vivek Kumar Bansal