From a51f1356edbc5d5732ddbf98e3e6586a4d572433 Mon Sep 17 00:00:00 2001 From: gizeasy Date: Thu, 18 Dec 2025 13:08:50 +0300 Subject: [PATCH] feat(Menu): add prop subMenuClassName --- package.json | 4 +-- src/components/Menu/Menu.tsx | 4 +++ .../Menu/__stand__/Menu.dev.stand.mdx | 25 ++++++++++--------- src/components/Menu/types.ts | 1 + 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 109f849..e11653d 100644 --- a/package.json +++ b/package.json @@ -50,8 +50,8 @@ "peerDependencies": { "@bem-react/classname": "^1.6.0", "@bem-react/classnames": "^1.3.10", - "@consta/icons": "^1.1.1", - "@consta/uikit": "^5.26.0", + "@consta/icons": "^1.5.0", + "@consta/uikit": "^5.28.1", "date-fns": "^2.30.0" }, "config": { diff --git a/src/components/Menu/Menu.tsx b/src/components/Menu/Menu.tsx index 757e4d6..9ddf9cb 100644 --- a/src/components/Menu/Menu.tsx +++ b/src/components/Menu/Menu.tsx @@ -37,6 +37,7 @@ const MenuRender = (props: MenuProps, ref: React.Ref) => { getItemTarget, getItemSubMenu, onItemClick, + subMenuClassName, ...otherProps } = withDefaultGetters(props); @@ -123,6 +124,9 @@ const MenuRender = (props: MenuProps, ref: React.Ref) => { {subItems && } 0 && opened} items={subItems || []} getItemLabel={getItemLabel} diff --git a/src/components/Menu/__stand__/Menu.dev.stand.mdx b/src/components/Menu/__stand__/Menu.dev.stand.mdx index f7b7622..722cda6 100644 --- a/src/components/Menu/__stand__/Menu.dev.stand.mdx +++ b/src/components/Menu/__stand__/Menu.dev.stand.mdx @@ -177,15 +177,16 @@ const defaultGetItemSubMenu: MenuPropGetItemSubMenu = (item) => item.subMenu; ``` -| Свойство | Тип | По умолчанию | Описание | -| --------------------------------------------------- | --------------------------- | ----------------------- | ---------------------------------------------- | -| [`items`](#пункты-меню) | `ITEM[]` | - | Элементы меню | -| `onItemClick?` | `MenuPropOnItemClick` | - | Функция клика по элементу | -| [`getItemTarget?`](#пример-меню-с-кастомным-типом) | `MenuPropGetItemTarget` | `defaultGetItemTarget` | Функция для определения `target` элемента | -| [`getItemHref?`](#пример-меню-с-кастомным-типом) | `MenuPropGetItemTarget` | `defaultGetItemHref` | Функция для определения `href` элемента | -| [`getItemLabel?`](#пример-меню-с-кастомным-типом) | `MenuPropGetItemLabel` | `defaultGetItemLabel` | Функция для определения заголовка элемента | -| [`getItemActive?`](#пример-меню-с-кастомным-типом) | `MenuPropGetItemActive` | `defaultGetItemActive` | Функция для определения активности элемента | -| [`getItemOnClick?`](#пример-меню-с-кастомным-типом) | `MenuPropGetItemOnClick` | `defaultGetItemOnClick` | Функция для определения функции клика элемента | -| [`getItemSubMenu?`](#пример-меню-с-кастомным-типом) | `MenuPropGetItemSubMenu` | `defaultGetItemSubMenu` | Функция для определения подменю элемента | -| `className?` | `string` | - | Дополнительный CSS-класс | -| `ref?` | `React.Ref` | - | Ссылка на корневой DOM-элемент | +| Свойство | Тип | По умолчанию | Описание | +| --------------------------------------------------- | --------------------------- | ----------------------- | ------------------------------------------------ | +| [`items`](#пункты-меню) | `ITEM[]` | - | Элементы меню | +| `onItemClick?` | `MenuPropOnItemClick` | - | Функция клика по элементу | +| [`getItemTarget?`](#пример-меню-с-кастомным-типом) | `MenuPropGetItemTarget` | `defaultGetItemTarget` | Функция для определения `target` элемента | +| [`getItemHref?`](#пример-меню-с-кастомным-типом) | `MenuPropGetItemTarget` | `defaultGetItemHref` | Функция для определения `href` элемента | +| [`getItemLabel?`](#пример-меню-с-кастомным-типом) | `MenuPropGetItemLabel` | `defaultGetItemLabel` | Функция для определения заголовка элемента | +| [`getItemActive?`](#пример-меню-с-кастомным-типом) | `MenuPropGetItemActive` | `defaultGetItemActive` | Функция для определения активности элемента | +| [`getItemOnClick?`](#пример-меню-с-кастомным-типом) | `MenuPropGetItemOnClick` | `defaultGetItemOnClick` | Функция для определения функции клика элемента | +| [`getItemSubMenu?`](#пример-меню-с-кастомным-типом) | `MenuPropGetItemSubMenu` | `defaultGetItemSubMenu` | Функция для определения подменю элемента | +| `className?` | `string` | - | Дополнительный CSS-класс | +| `subMenuClassName?` | `string` | - | Дополнительный CSS-класс для выпадающего подменю | +| `ref?` | `React.Ref` | - | Ссылка на корневой DOM-элемент | diff --git a/src/components/Menu/types.ts b/src/components/Menu/types.ts index f962841..7a0cecf 100644 --- a/src/components/Menu/types.ts +++ b/src/components/Menu/types.ts @@ -35,6 +35,7 @@ export type MenuProps = PropsWithHTMLAttributesAndRef< getItemActive?: MenuPropGetItemActive; getItemOnClick?: MenuPropGetItemOnClick; getItemSubMenu?: MenuPropGetItemSubMenu; + subMenuClassName?: string; }, HTMLDivElement > &