1.6.4 • Published 3 months ago
react-inheritable-contextmenu v1.6.4
Simple Context menu component for react showing all inherited parents menu with SSR compatibility.
Check the sample here ( sources )
npm i react-inheritable-contextmenu -s
Why another context menu ?
Because none of the existing ones have met my requirements :
- Ability to inherit & include parents context menus
- Possibility to render menu items basing the browser event
- Render menus just in time
- Simple to use
- Simple to animate with css
- Do not break SSR
Usage
import { ContextMenu } from "react-inheritable-contextmenu";
// override default rendered comps
// * there is no css builtin, but there is classNames .inContextMenuLayer > .inContextMenu .inContextSubMenu
ContextMenu.DefaultMenuComp = Paper
// add optional cool anims ( choose & add in css any anims in http://animista.net/ )
ContextMenu.DefaultShowAnim = 'slide-in-blurred-left';
ContextMenu.DefaultHideAnim = 'slide-out-blurred-right';
// set show/hide anims duration (default to 250)
ContextMenu.DefaultAnimDuration = 200;
// Some trigering options ( defaults )
// ContextMenu.DefaultMenuEvent = "contextmenu";
// ContextMenu.shouldUseContextMenu = e => (e.button === 2 && e.buttons !== 4); // Default: don't trigger if right click + middle click
render(){
return <div className={ "root" }>
<ContextMenu>
<div>Menu root</div>
</ContextMenu>
Root contextual menu available here
<br/>
<br/>
<br/>
<div className={ "block" }>
another one which inherit the 1st<br/>
<ContextMenu>
<div>Menu 2</div>
</ContextMenu>
</div>
<div className={ "block" }>
same using some contextual render fn<br/>
<ContextMenu // show Menu root & menu 2
renderMenu={
( e, allMenuComps ) => <div>Menu 2 <i>x:{ e.x } x:{ e.y }</i></div>
}/>
</div>
<div className={ "block" }>
Without parent's menu<br/>
<ContextMenu
root // don't show parent's menu
renderMenu={
( e, allMenuComps ) => <div>Menu <i>x:{ e.x } x:{ e.y }</i></div>
}/>
</div>
<div className={ "block" }>
native menu<br/>
<ContextMenu
native // use natve menu
/>
</div>
<br/>
<br/>
<br/>
</div>;
}
//...
You... like it / it saved your day / you stole all the code / you want more?
BTC : bc1qh43j8jh6dr8v3f675jwqq3nqymtsj8pyq0kh5a Paypal :
License ?
MIT license
1.6.4
3 months ago
1.6.3
1 year ago
1.6.2
1 year ago
1.6.1
1 year ago
1.6.0
1 year ago
1.5.4
3 years ago
1.5.3
4 years ago
1.5.2
5 years ago
1.5.1
5 years ago
1.5.0
5 years ago
1.4.8
5 years ago
1.4.7
5 years ago
1.4.6
5 years ago
1.4.5
5 years ago
1.4.4
5 years ago
1.4.3
5 years ago
1.4.2
5 years ago
1.4.1
5 years ago
1.4.0
5 years ago
1.3.4
5 years ago
1.3.3
5 years ago
1.3.2
5 years ago
1.3.1
5 years ago
1.3.0
5 years ago
1.2.1
5 years ago
1.2.0
5 years ago
1.1.5
5 years ago
1.1.4
5 years ago
1.1.3
6 years ago
1.1.2
6 years ago
1.1.1
6 years ago
1.1.0
6 years ago
1.0.2
6 years ago
1.0.1
6 years ago
1.0.0
6 years ago