
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
@spaceymonk/react-radial-menu
Advanced tools
React radial menu with sub menu support, animations and themes.
Radial menu with animations and nested sub menu support for React. You can use it for context menu or as a menu for your mobile app.
Click here.
npm install @spaceymonk/react-radial-menu
Just wrap your menu items with <Menu>
component.
import React from "react";
import { Menu, MenuItem, SubMenu } from "@spaceymonk/react-radial-menu";
function App() {
const [show, setShow] = React.useState(false);
const [position, setPosition] = React.useState({ x: 0, y: 0 });
// You can also use separate handler for each item
const handleItemClick = (event, index, data) => {
console.log(`[MenuItem] ${data} clicked`);
setShow(false); // you should handle your menu visibility yourself
};
const handleSubMenuClick = (event, index, data) => {
console.log(`[SubMenu] ${data} clicked`);
};
const handleDisplayClick = (event, position) => {
console.log(`[Display] ${position} clicked`);
};
return (
<div
// right click event
onContextMenu={(e) => {
e.preventDefault();
setShow(true);
// if your div is not full screen, you should remove the offset
// via getBoundingClientRect().left and getBoundingClientRect().top
// check `src/stories/BasicControls.stories.tsx` for an example
setPosition({ x: e.clientX, y: e.clientY });
}}
onClick={() => setShow(false)}
style={{ width: "100vw", height: "100vh" }}
>
<Menu
centerX={position.x}
centerY={position.y}
innerRadius={75}
outerRadius={150}
show={show}
animation={["fade", "scale"]}
animationTimeout={150}
drawBackground
>
{/* Populate your menu here */}
<MenuItem onItemClick={handleItemClick} data="1. Item">
1. Item
</MenuItem>
<SubMenu
onDisplayClick={handleDisplayClick}
onItemClick={handleSubMenuClick}
itemView="2. Sub Menu"
data="2. Sub Menu"
displayPosition="bottom"
>
<MenuItem onItemClick={handleItemClick} data="2.1. Item">
2.1. Item
</MenuItem>
<MenuItem onItemClick={handleItemClick} data="2.2. Item">
2.2. Item
</MenuItem>
<MenuItem onItemClick={handleItemClick} data="2.3. Item">
2.3. Item
</MenuItem>
<SubMenu
onDisplayClick={handleDisplayClick}
onItemClick={handleSubMenuClick}
itemView="2.4. Sub Menu"
data="2.4. Sub Menu"
displayPosition="bottom"
>
<MenuItem onItemClick={handleItemClick} data="2.4.1. Item">
2.4.1. Item
</MenuItem>
<MenuItem onItemClick={handleItemClick} data="2.4.2. Item">
2.4.2. Item
</MenuItem>
</SubMenu>
</SubMenu>
</Menu>
</div>
);
}
export default App;
Any idea and suggestions are welcome. Please have a look at the contributing guide.
React Radial Menu is licensed under MIT.
FAQs
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.