6.0.0 • Published 3 years ago

react-contexify v6.0.0

Weekly downloads
13,052
License
MIT
Repository
github
Last release
3 years ago

React-contexify CI npm npm license

contexify

Features

  • Easy to set up for real, you can make it work in less than 10sec!
  • Super easy to customize thanks to css variables 💅
  • Custom position
  • Sub menu support
  • Does not go offscreen
  • Dark mode 🌒
  • Keyboard navigation + keyboard shortcut!
  • Built-in animations
  • Easy to test!
  • Written in Typescript 💪
  • Tiny! (3k gzipped)

Check the documentation for more!

Documentation

Go here.

Installation

Using yarn

$ yarn add react-contexify

Using npm

$ npm install --save react-contexify

The gist

import { Menu, Item, Separator, Submenu, useContextMenu } from 'react-contexify';
import 'react-contexify/ReactContexify.css';

const MENU_ID = 'blahblah';

function App() {
  const { show } = useContextMenu({
    id: MENU_ID,
  });

  function handleContextMenu(event){
      show({
        event,
        props: {
            key: 'value'
        }
      })
  }

  // I'm using a single event handler for all items
  // but you don't have too :)
  const handleItemClick = ({ id, event, props }) => {
    switch (id) {
      case "copy":
        console.log(event, props)
        break;
      case "cut";
        console.log(event, props);
        break;
      //etc...
    }
  }

  return (
    <div>
    <p onContextMenu={handleContextMenu}>lorem ipsum blabladhasi blaghs blah</p>  
    <Menu id={MENU_ID}>
      <Item id="copy" onClick={handleItemClick}>Copy</Item>
      <Item id="cut" onClick={handleItemClick}>Cut</Item>
      <Separator />
      <Item disabled>Disabled</Item>
      <Separator />
      <Submenu label="Foobar">
        <Item id="reload" onClick={handleItemClick}>Reload</Item>
        <Item id="something" onClick={handleItemClick}>Do something else</Item>
      </Submenu>
    </Menu>
    </div>
  );
}

Contribute

Any idea and suggestions are welcome. Please have a look at the contributing guide.

License

React Contexify is licensed under MIT.

frinx-workflow-ui2contentclustermindmaptreecommon-xuplugin-chart-rebarr-diagramlisqvizewhitebrickgatsby-theme-whitebricktest-bot-modelcity-admin-uireact-h5-editorreact-web-ide-componentreact-webpack-babel-sass-boilerplate@infinitebrahmanuniverse/nolb-react-consupport-worksuitefo-test2@everything-registry/sub-chunk-2547prisha-shared-uilyr-code-editorteng-xinvuexy-react-admin-dashboardtelutest-workflow-ui@diogoxiang/ucore@pcs/react-componentsju-weiju-wei-pdfju-wei-pdf-devketcher-macromoleculesketcher-reactreact-core-form-code-editorreact-monaco-editor-component@3dverse/design-systemtrust-libtraceviewer-react-components@aleph-us/file-system-components719component@aaic/mindmaptree@dewesoft-web/grid@dewesoft-web/grid2ztxkuivini-test@homelab/alist-web@geolonia/opendata-editor@logifox/react-ui@ivadey/tw-components@map-colonies/react-core@nitrogenbuilder/core@ercantestrepo/tukks-web-ui-framework@ezderm/ui-kit@hyukyu/grid@indshine/platform-canvas@pseudocoder-in/ftcomponents@phamhieu1998/grid@pitrix/portal-ui@pitrix/portal-widget@parca/profilepages-configpango-printonchain-sdkonchain-uionchain-uikitonchain-cad-sdkonchain-pdfnsc-componentspage-builder-componentspage-builder-uireact-class-contexifyreact-antd-addreact-ant-addrondsframeworkreact-cam-recorderreact-nodemapplm-libraryplugin-chart-rebarr-supersetpg-react-mindmappdfmobilepidgey-test1qingyuanqmtoolsr-pdfquant-widgetsld-viewerreact-rulemapsnapmaker-lubanifunuikithuakeda-brain-uihnypdfhnyutilslwj-business-frontendlwj-editormcw-editor-pdfliuqingshanlm-design-formkuaiyi@w3b6x9/grid@tokens-studio/graph-editor@xyfe/uikit@zaml/editor@supabase/grid
6.0.0-doc-1

3 years ago

5.0.1-1

3 years ago

6.0.0

3 years ago

6.0.0-rc.1

3 years ago

6.0.0-rc.3

3 years ago

6.0.0-rc.2

3 years ago

5.0.0

5 years ago

5.0.0-beta.12

5 years ago

5.0.0-beta.11

5 years ago

5.0.0-beta.10

5 years ago

5.0.0-beta.9

5 years ago

5.0.0-beta.8

5 years ago

5.0.0-beta.6

5 years ago

5.0.0-beta.7

5 years ago

5.0.0-beta.5

5 years ago

5.0.0-beta.4

5 years ago

5.0.0-beta.3

5 years ago

5.0.0-beta.2

5 years ago

5.0.0-beta.0

5 years ago

5.0.0-beta.1

5 years ago

4.1.1

6 years ago

4.1.0

6 years ago

4.0.2

6 years ago

4.0.1

6 years ago

4.0.0

7 years ago

4.0.0-rc2

7 years ago

4.0.0-rc1

7 years ago

3.0.3

7 years ago

3.0.2

7 years ago

3.0.1

7 years ago

3.0.0

7 years ago

3.0.0-rc.4

7 years ago

3.0.0-rc.3

7 years ago

3.0.0-rc.2

7 years ago

3.0.0-rc.1

7 years ago

2.1.4

8 years ago

2.1.3

8 years ago

2.1.2

8 years ago

2.1.1

8 years ago

2.1.0

8 years ago

2.0.7

8 years ago

2.0.6

8 years ago

2.0.5

8 years ago

2.0.4

8 years ago

2.0.3

8 years ago

2.0.2

8 years ago

2.0.1

8 years ago

2.0.0

8 years ago

1.1.1

8 years ago

1.1.0

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago