GithubHelp home page GithubHelp logo

ryansworld84 / native-menu Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rwieruch/native-menu

0.0 0.0 0.0 387 KB

ReactJS context menu component, that doesn't break native browser actions

Home Page: https://codesandbox.io/s/github/samdenty99/native-menu-demo/tree/master/

JavaScript 100.00%

native-menu's Introduction

native-menu

A lightweight React context menu component, that doesn't break existing browser functionality.

Demo  | CodeSandbox  | NPM

Table of Contents

Install

NPM

npm i -S native-menu

Yarn

yarn add native-menu

Usage

Basic example

CodeSandbox

import NativeMenu from 'native-menu'

<NativeMenu items={[
  {
    primary: 'Test 1',
    secondary: 'Ctrl+B',
    onClick: () => alert('Test 1')
  },
  {
    primary: 'Test 2',
    disabled: true
  },
]}>
  <span>
    Right click me
  </span>
</NativeMenu>

Props

items?: [{ primary: Component, secondary?: Component, onClick?: Function, disabled?: boolean }]

Example

<NativeMenu
  items={[
    primary: 'test',
    onClick: () => {
      alert('clicked')
    }
  ]}
>
  Click me
</NativeMenu>

An array containing custom menu items.

  • primary - The name of the menu item. React components can be passed
  • secondary - The secondary text associated with the item (eg. Keyboard shortcut). React components can be passed
  • onClick - The callback for when the item is clicked
  • disabled - Grey out and disable the menu item

theme?: ('native' | 'native-dark' | 'material' | 'material-dark')

Example

<NativeMenu
  theme="material-dark"
>
  Click me
</NativeMenu>

Specifies the visual theme to use. Defaults to native

platform?: ('windows' | 'edge' | 'chrome' | 'mac')

Example

<NativeMenu
  platform="mac"
>
  Click me
</NativeMenu>

Only applicable with the native theme. Chooses the variant of context menu styles to us

styles?: JSS

Example

<NativeMenu
  styles={{
    root: {
      backgroundColor: '#000',
    },
    primary: {
      backgroundColor: 'red'
    }
  }}
>
  Click me
</NativeMenu>

Overrides the styles for the context menu using the JSS format. JSS source code

hide?: NativeItems[]

Hides specific native menu items.

Native item names

'open-link'
'new-window'
'new-incognito-window'
'save-link'
'copy-link'
'copy-text'
'search-text'
'print'
'back'
'forward'
'reload'
'save-as'
'cast'
'translate'
'view-source'
'inspect'
'open-image'
'save-image'
'copy-image'
'copy-image-address'
'search-image'

Example

<NativeMenu
  hide={['save-as', 'print']}
>
  Click me
</NativeMenu>

mimic?: boolean

Example

<NativeMenu
  mimic
>
  Click me
</NativeMenu>

Adds all of the missing context menu items present in Chrome, but without any functionality when clicked.

minimal?: boolean

Example

<NativeMenu
  minimal
>
  Click me
</NativeMenu>

Hides non-essential menu items such as print, save-as, view-source etc.

nativeClick?: Function

Example

<NativeMenu
  nativeClick={(e, action) => {
    e.preventDefault()
    alert(`${action} triggered`)
  }}
>
  Click me
</NativeMenu>

Callback for when native menu items are clicked. To prevent the default item action, call preventDefault()

native-menu's People

Contributors

rwieruch avatar samdenty avatar snyk-bot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.