@skbkontur/side-menu 3.2.5 → 3.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.2.7](https://git.skbkontur.ru/ui/ui-parking-2/compare/@skbkontur/side-menu@3.2.6...@skbkontur/side-menu@3.2.7) (2025-07-24)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **SideMenu:** update scrollbar and items after dynamic updates ([b26abdf](https://git.skbkontur.ru/ui/ui-parking-2/commits/b26abdff7aed26e2fa01387119cae6157dc5388d))
12
+
13
+
14
+
15
+
16
+
17
+ ## [3.2.6](https://git.skbkontur.ru/ui/ui-parking-2/compare/@skbkontur/side-menu@3.2.5...@skbkontur/side-menu@3.2.6) (2025-07-04)
18
+
19
+ **Note:** Version bump only for package @skbkontur/side-menu
20
+
21
+
22
+
23
+
24
+
6
25
  ## [3.2.5](https://git.skbkontur.ru/ui/ui-parking-2/compare/@skbkontur/side-menu@3.2.4...@skbkontur/side-menu@3.2.5) (2025-06-26)
7
26
 
8
27
  **Note:** Version bump only for package @skbkontur/side-menu
@@ -5,4 +5,5 @@ export declare const SideMenuDataTids: {
5
5
  separatedSubMenu: string;
6
6
  rightBorder: string;
7
7
  clickableElement: string;
8
+ footer: string;
8
9
  };
@@ -5,4 +5,5 @@ export var SideMenuDataTids = {
5
5
  separatedSubMenu: 'SideMenu__separatedSubMenu',
6
6
  rightBorder: 'SideMenu__rightBorder',
7
7
  clickableElement: 'SideMenu__clickableElement',
8
+ footer: 'SideMenu__footer',
8
9
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skbkontur/side-menu",
3
- "version": "3.2.5",
3
+ "version": "3.2.7",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org/"
@@ -57,7 +57,7 @@ export interface SideMenuProps extends CommonProps {
57
57
  /**
58
58
  * Открывает и закрывает меню
59
59
  *
60
- * Примечание: при заданном пропе `isOpen` автоматическое открытие/зарытие меню не работает
60
+ * Примечание: при заданном пропе `isOpen` автоматическое открытие/закрытие меню не работает
61
61
  */
62
62
  isOpen?: boolean;
63
63
  /**
@@ -35,6 +35,7 @@ var SideMenuInner = forwardRef(function (_a, ref) {
35
35
  var _f, _g;
36
36
  var children = _a.children, value = _a.value, activeItem = _a.activeItem, _h = _a.size, size = _h === void 0 ? 'small' : _h, _j = _a.isSeparatedMenu, isSeparatedMenu = _j === void 0 ? false : _j, className = _a.className, _k = _a.disableSwipe, disableSwipe = _k === void 0 ? false : _k, _l = _a.disableCollapsing, disableCollapsing = _l === void 0 ? false : _l, desktopMediaQuery = _a.desktopMediaQuery, narrowDesktopMediaQuery = _a.narrowDesktopMediaQuery, tabletMediaQuery = _a.tabletMediaQuery, mobileMediaQuery = _a.mobileMediaQuery, _m = _a.showScrollBar, showScrollBar = _m === void 0 ? 'hover' : _m, isOpen = _a.isOpen, isPinned = _a.isPinned, onValueChange = _a.onValueChange, onActiveItemChange = _a.onActiveItemChange, onOpen = _a.onOpen, onClose = _a.onClose, onPinnedValueChange = _a.onPinnedValueChange, rest = __rest(_a, ["children", "value", "activeItem", "size", "isSeparatedMenu", "className", "disableSwipe", "disableCollapsing", "desktopMediaQuery", "narrowDesktopMediaQuery", "tabletMediaQuery", "mobileMediaQuery", "showScrollBar", "isOpen", "isPinned", "onValueChange", "onActiveItemChange", "onOpen", "onClose", "onPinnedValueChange"]);
37
37
  var transitionTimer = useRef(null);
38
+ var timerScrollbar = useRef(null);
38
39
  var sideMenuRef = useRef(null);
39
40
  var contentWrapperRef = useRef(null);
40
41
  var scrollContainerRef = useRef(null);
@@ -99,7 +100,8 @@ var SideMenuInner = forwardRef(function (_a, ref) {
99
100
  if (isMobile && isSeparatedMenuShown) {
100
101
  return;
101
102
  }
102
- setTimeout(function () {
103
+ clearTimeout(timerScrollbar.current);
104
+ timerScrollbar.current = setTimeout(function () {
103
105
  var _a;
104
106
  var contentWrapper = contentWrapperRef.current;
105
107
  var scrollContainer = (_a = scrollContainerRef.current) === null || _a === void 0 ? void 0 : _a.inner;
@@ -108,7 +110,10 @@ var SideMenuInner = forwardRef(function (_a, ref) {
108
110
  }
109
111
  setHasScrollBar(scrollContainer.clientHeight < contentWrapper.scrollHeight);
110
112
  }, 50);
111
- }, [activeMenuItem, isOpened, isBeingTransitioned]);
113
+ return function () {
114
+ clearTimeout(timerScrollbar.current);
115
+ };
116
+ });
112
117
  useEffect(function () {
113
118
  isDesktopQuery && setIsOpened(!isPinned);
114
119
  }, [isPinned, isDesktopQuery]);
@@ -5,6 +5,7 @@ import { ThemeContext } from '@skbkontur/react-ui/lib/theming/ThemeContext';
5
5
  import { SideMenuContext } from '../SideMenuContext';
6
6
  import { jsStylesForSideMenu } from '../SideMenu/SideMenu.styles';
7
7
  import { getSideMenuTheme } from '../../lib/theming/ThemeHelpers';
8
+ import { SideMenuDataTids } from '../../SideMenuDataTids';
8
9
  import { jsStyles } from './SideMenuFooter.styles';
9
10
  var SideMenuFooterInner = forwardRef(function (_a, ref) {
10
11
  var _b;
@@ -16,7 +17,7 @@ var SideMenuFooterInner = forwardRef(function (_a, ref) {
16
17
  setIsFixed(!!context.hasScrollBar && !(context.scrollState === 'bottom'));
17
18
  }, [context.hasScrollBar, context.scrollState]);
18
19
  if (!(context.isMobile || context.isTablet) || (context.isOpened && (context.isMobile || context.isTablet))) {
19
- return (React.createElement("footer", __assign({ className: cx((_b = {},
20
+ return (React.createElement("footer", __assign({ "data-tid": SideMenuDataTids.footer, "data-visual-state-fixed": isFixed, className: cx((_b = {},
20
21
  _b[jsStyles.root(theme)] = true,
21
22
  _b[jsStyles.rootFixed(theme)] = isFixed,
22
23
  _b[jsStyles.rootTransitionedForTabletsOrMobiles()] = context.isBeingTransitioned && (context.isMobile || context.isTablet),
@@ -2,9 +2,9 @@ import type { ReactNode } from 'react';
2
2
  import React from 'react';
3
3
  import type { CommonProps } from '@skbkontur/react-ui/internal/CommonWrapper';
4
4
  export interface CommonClickableElementProps extends CommonProps {
5
- children?: React.ReactNode;
5
+ children?: ReactNode;
6
6
  icon: React.ReactElement;
7
- marker?: string | true;
7
+ marker?: ReactNode;
8
8
  caption?: ReactNode;
9
9
  subCaption?: ReactNode;
10
10
  id?: string;