New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More

@szhsin/react-menu

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@szhsin/react-menu - npm Package Compare versions

Comparing version

to
4.3.1

@@ -5,3 +5,3 @@ import { forwardRef, useRef, useMemo } from 'react';

import { jsx } from 'react/jsx-runtime';
import { Keys, CloseReason, SettingsContext, EventHandlersContext } from '../utils/constants.js';
import { SettingsContext, EventHandlersContext, CloseReason, Keys } from '../utils/constants.js';
import { safeCall } from '../utils/utils.js';

@@ -8,0 +8,0 @@

import { useRef, useContext, useMemo } from 'react';
import { jsx } from 'react/jsx-runtime';
import { useItemState } from '../hooks/useItemState.js';
import { useBEM } from '../hooks/useBEM.js';
import { useCombinedRef } from '../hooks/useCombinedRef.js';
import { useBEM } from '../hooks/useBEM.js';
import { withHovering } from '../utils/withHovering.js';

@@ -7,0 +7,0 @@ import { EventHandlersContext, roleMenuitem, menuClass, menuItemClass } from '../utils/constants.js';

@@ -7,3 +7,3 @@ import { forwardRef, useRef, useCallback, useImperativeHandle, Fragment, cloneElement, version } from 'react';

import { useCombinedRef } from '../hooks/useCombinedRef.js';
import { safeCall, mergeProps, getName, isMenuOpen } from '../utils/utils.js';
import { safeCall, mergeProps, isMenuOpen, getName } from '../utils/utils.js';
import { FocusPositions, Keys } from '../utils/constants.js';

@@ -10,0 +10,0 @@

import { useMemo } from 'react';
import { jsx } from 'react/jsx-runtime';
import { useBEM } from '../hooks/useBEM.js';
import { mergeProps, getTransition, safeCall } from '../utils/utils.js';
import { useBEM } from '../hooks/useBEM.js';
import { menuContainerClass, Keys, CloseReason } from '../utils/constants.js';
import { menuContainerClass, CloseReason, Keys } from '../utils/constants.js';

@@ -7,0 +7,0 @@ const MenuContainer = ({

@@ -5,4 +5,4 @@ import { forwardRef, useRef, useState, useContext } from 'react';

import { getNormalizedClientRect } from '../positionUtils/getNormalizedClientRect.js';
import { useBEM } from '../hooks/useBEM.js';
import { useCombinedRef } from '../hooks/useCombinedRef.js';
import { useBEM } from '../hooks/useBEM.js';
import { MenuListContext, menuClass, menuGroupClass } from '../utils/constants.js';

@@ -9,0 +9,0 @@

import { useContext, useMemo } from 'react';
import { jsx } from 'react/jsx-runtime';
import { useItemState } from '../hooks/useItemState.js';
import { EventHandlersContext, RadioGroupContext, roleMenuitem, menuClass, menuItemClass, roleNone, Keys } from '../utils/constants.js';
import { EventHandlersContext, RadioGroupContext, menuClass, menuItemClass, roleNone, roleMenuitem, Keys } from '../utils/constants.js';
import { useBEM } from '../hooks/useBEM.js';
import { useCombinedRef } from '../hooks/useCombinedRef.js';
import { useBEM } from '../hooks/useBEM.js';
import { withHovering } from '../utils/withHovering.js';
import { mergeProps, commonProps, safeCall } from '../utils/utils.js';
import { mergeProps, safeCall, commonProps } from '../utils/utils.js';

@@ -10,0 +10,0 @@ const MenuItem = /*#__PURE__*/withHovering('MenuItem', function MenuItem({

@@ -6,5 +6,5 @@ import { useState, useReducer, useContext, useRef, useCallback, useEffect, useMemo } from 'react';

import { createSubmenuCtx } from '../utils/submenuCtx.js';
import { SettingsContext, MenuListContext, HoverActionTypes, noScrollFocus, menuClass, menuArrowClass, positionAbsolute, MenuListItemContext, HoverItemContext, Keys, CloseReason, FocusPositions } from '../utils/constants.js';
import { SettingsContext, MenuListContext, HoverActionTypes, noScrollFocus, menuClass, menuArrowClass, positionAbsolute, MenuListItemContext, HoverItemContext, CloseReason, FocusPositions, Keys } from '../utils/constants.js';
import { useItems } from '../hooks/useItems.js';
import { getScrollAncestor, commonProps, mergeProps, safeCall, isMenuOpen, getTransition, batchedUpdates } from '../utils/utils.js';
import { getScrollAncestor, isMenuOpen, batchedUpdates, getTransition, mergeProps, commonProps, safeCall } from '../utils/utils.js';
import { getPositionHelpers } from '../positionUtils/getPositionHelpers.js';

@@ -11,0 +11,0 @@ import { positionMenu } from '../positionUtils/positionMenu.js';

@@ -8,6 +8,6 @@ import { useContext, useRef, useState, useEffect, useImperativeHandle, useMemo } from 'react';

import { useItemEffect } from '../hooks/useItemEffect.js';
import { SettingsContext, MenuListContext, MenuListItemContext, roleNone, roleMenuitem, menuClass, menuItemClass, subMenuClass, HoverActionTypes, Keys, FocusPositions } from '../utils/constants.js';
import { useBEM } from '../hooks/useBEM.js';
import { SettingsContext, MenuListContext, MenuListItemContext, menuClass, subMenuClass, roleNone, roleMenuitem, menuItemClass, HoverActionTypes, Keys, FocusPositions } from '../utils/constants.js';
import { useCombinedRef } from '../hooks/useCombinedRef.js';
import { mergeProps, commonProps, safeCall, isMenuOpen, batchedUpdates } from '../utils/utils.js';
import { isMenuOpen, mergeProps, commonProps, safeCall, batchedUpdates } from '../utils/utils.js';

@@ -119,3 +119,6 @@ const SubMenu = /*#__PURE__*/withHovering('SubMenu', function SubMenu({

useEffect(() => submenuCtx.toggle(isOpen), [submenuCtx, isOpen]);
useEffect(() => () => clearTimeout(timerId.v), [timerId]);
useEffect(() => () => {
clearTimeout(timerId.v);
submenuCtx.toggle(false);
}, [timerId, submenuCtx]);
useEffect(() => {

@@ -122,0 +125,0 @@ if (isHovering && isParentOpen) {

import { useCallback } from 'react';
import { useTransitionState } from 'react-transition-state';
import { getTransition } from '../utils/utils.js';
import { MenuStateMap } from '../utils/constants.js';
import { getTransition } from '../utils/utils.js';

@@ -6,0 +6,0 @@ const useMenuState = ({

@@ -1,2 +0,2 @@

import { forwardRef, useRef, useContext, memo } from 'react';
import { forwardRef, useRef, memo, useContext } from 'react';
import { HoverItemContext } from './constants.js';

@@ -3,0 +3,0 @@ import { jsx } from 'react/jsx-runtime';

@@ -1472,3 +1472,6 @@ 'use strict';

react.useEffect(() => submenuCtx.toggle(isOpen), [submenuCtx, isOpen]);
react.useEffect(() => () => clearTimeout(timerId.v), [timerId]);
react.useEffect(() => () => {
clearTimeout(timerId.v);
submenuCtx.toggle(false);
}, [timerId, submenuCtx]);
react.useEffect(() => {

@@ -1475,0 +1478,0 @@ if (isHovering && isParentOpen) {

{
"name": "@szhsin/react-menu",
"version": "4.3.0",
"version": "4.3.1",
"description": "React component for building accessible menu, dropdown, submenu, context menu and more.",

@@ -48,4 +48,4 @@ "author": "Zheng Song",

"devDependencies": {
"@babel/core": "^7.26.0",
"@babel/preset-env": "^7.26.0",
"@babel/core": "^7.26.9",
"@babel/preset-env": "^7.26.9",
"@babel/preset-react": "^7.26.3",

@@ -55,10 +55,10 @@ "@rollup/plugin-babel": "^6.0.4",

"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.1.0",
"@testing-library/react": "^16.2.0",
"@types/jest": "^29.5.14",
"@types/react": "^19.0.4",
"@types/react-dom": "^19.0.2",
"@types/react": "^19.0.8",
"@types/react-dom": "^19.0.4",
"babel-plugin-pure-annotations": "^0.1.2",
"eslint": "^9.17.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-jest": "^28.10.0",
"eslint": "^9.21.0",
"eslint-config-prettier": "^10.0.2",
"eslint-plugin-jest": "^28.11.0",
"eslint-plugin-react": "^7.37.4",

@@ -75,4 +75,4 @@ "eslint-plugin-react-hooks": "^5.1.0",

"react-dom": "^19",
"rollup": "^4.30.1",
"sass": "^1.83.1",
"rollup": "^4.34.8",
"sass": "^1.85.1",
"typescript": "^5.7.3"

@@ -79,0 +79,0 @@ },