@skbkontur/side-menu 2.1.7 → 3.0.0-beta.0
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 +8 -0
- package/lib/theming/ThemeHelpers.d.ts +1 -1
- package/package.json +4 -4
- package/src/SideMenu/SideMenu.d.ts +0 -5
- package/src/SideMenu/SideMenu.js +19 -20
- package/src/SideMenuContext.d.ts +0 -1
- package/src/internal/Backdrop.js +2 -2
- package/src/internal/SeparatedSubMenu.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
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
|
+
## [2.1.8](https://git.skbkontur.ru/ui/ui-parking/compare/@skbkontur/side-menu@2.1.7...@skbkontur/side-menu@2.1.8) (2024-09-18)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @skbkontur/side-menu
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [2.1.7](https://git.skbkontur.ru/ui/ui-parking/compare/@skbkontur/side-menu@2.1.6...@skbkontur/side-menu@2.1.7) (2024-09-17)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @skbkontur/side-menu
|
|
@@ -11,7 +11,7 @@ import { SideMenuTheme } from './ThemeTypes';
|
|
|
11
11
|
* and using ReactUI's ThemeContext.Provider for overriding them.
|
|
12
12
|
*/
|
|
13
13
|
export declare const createSideMenuTheme: (theme: ReactUITheme | SideMenuTheme) => SideMenuTheme;
|
|
14
|
-
export declare const getSideMenuTheme: (() => Readonly<typeof import("../../internal/themes/SideMenuTheme").SideMenuTheme>) | ((arg: Readonly<typeof import("@skbkontur/react-ui/internal/themes/
|
|
14
|
+
export declare const getSideMenuTheme: (() => Readonly<typeof import("../../internal/themes/SideMenuTheme").SideMenuTheme>) | ((arg: Readonly<typeof import("@skbkontur/react-ui/internal/themes/BasicLightTheme").BasicLightThemeInternal> | Readonly<typeof import("../../internal/themes/SideMenuTheme").SideMenuTheme>) => Readonly<typeof import("../../internal/themes/SideMenuTheme").SideMenuTheme>);
|
|
15
15
|
export declare const memoizeStyle: <S extends {
|
|
16
16
|
[className: string]: (() => string) | ((t: SideMenuTheme) => string);
|
|
17
17
|
}>(styles: S) => S;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skbkontur/side-menu",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-beta.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
},
|
|
15
15
|
"author": "Kontur",
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@skbkontur/react-ui": ">=
|
|
17
|
+
"@skbkontur/react-ui": ">=5 <6",
|
|
18
18
|
"react": ">=16.9",
|
|
19
19
|
"react-dom": ">=16.9"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@skbkontur/react-ui": "
|
|
22
|
+
"@skbkontur/react-ui": "5.0.0-beta.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@skbkontur/icons": "^1.12.1",
|
|
26
|
-
"@skbkontur/react-ui-addons": "^4.11.
|
|
26
|
+
"@skbkontur/react-ui-addons": "^4.11.6",
|
|
27
27
|
"tslib": "^1"
|
|
28
28
|
}
|
|
29
29
|
}
|
|
@@ -50,11 +50,6 @@ export interface SideMenuProps extends CommonProps {
|
|
|
50
50
|
narrowDesktopMediaQuery?: string;
|
|
51
51
|
tabletMediaQuery?: string;
|
|
52
52
|
mobileMediaQuery?: string;
|
|
53
|
-
/**
|
|
54
|
-
* Скрывать скроллбар при отсутствии активности пользователя
|
|
55
|
-
* @deprecated use showScrollBar
|
|
56
|
-
*/
|
|
57
|
-
hideScrollBar?: boolean;
|
|
58
53
|
/**
|
|
59
54
|
* Показывать скроллбар
|
|
60
55
|
*/
|
package/src/SideMenu/SideMenu.js
CHANGED
|
@@ -18,7 +18,7 @@ import { RightBorder } from '../internal/RightBorder';
|
|
|
18
18
|
import { SideMenuDropdown } from '../SideMenuDropdown/SideMenuDropdown';
|
|
19
19
|
import { SideMenuLink } from '../SideMenuLink/SideMenuLink';
|
|
20
20
|
import { SideMenuSubLink } from '../SideMenuSubLink/SideMenuSubLink';
|
|
21
|
-
import {
|
|
21
|
+
import { LIGHT_THEME, ScrollContainer, useResponsiveLayout } from '@skbkontur/react-ui';
|
|
22
22
|
import { Backdrop } from '../internal/Backdrop';
|
|
23
23
|
import { RenderLayer } from '@skbkontur/react-ui/internal/RenderLayer';
|
|
24
24
|
import { isTouchDevice } from '../../lib/utils/scripts';
|
|
@@ -33,7 +33,7 @@ export var burgerTransitionDuration = (transitionDuration * 2) / 3;
|
|
|
33
33
|
var SideMenuInner = forwardRef(function (_a, ref) {
|
|
34
34
|
var _b, _c, _d, _e;
|
|
35
35
|
var _f, _g;
|
|
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.
|
|
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
38
|
var sideMenuRef = useRef(null);
|
|
39
39
|
var contentWrapperRef = useRef(null);
|
|
@@ -46,27 +46,27 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
46
46
|
isNarrowDesktopQuery: narrowDesktopMediaQuery || theme.sideMenuNarrowDesktopMediaQuery,
|
|
47
47
|
isDesktopQuery: desktopMediaQuery || theme.sideMenuDesktopMediaQuery,
|
|
48
48
|
};
|
|
49
|
-
var
|
|
49
|
+
var _o = useResponsiveLayout({
|
|
50
50
|
customMediaQueries: customMediaQueries,
|
|
51
|
-
}), isMobileQuery =
|
|
51
|
+
}), isMobileQuery = _o.isMobileQuery, isTabletQuery = _o.isTabletQuery, isNarrowDesktopQuery = _o.isNarrowDesktopQuery, isDesktopQuery = _o.isDesktopQuery;
|
|
52
52
|
var isNarrowDesktop = isNarrowDesktopQuery && !isDesktopQuery;
|
|
53
53
|
var isTablet = isTabletQuery && !isNarrowDesktopQuery;
|
|
54
54
|
var isMobile = isMobileQuery && !isTabletQuery;
|
|
55
55
|
var isTabletOrMobile = isTablet || isMobile;
|
|
56
56
|
var isTouchScreen = isTouchDevice() || isMobile || isTablet;
|
|
57
57
|
var manual = isOpen !== undefined;
|
|
58
|
-
var
|
|
59
|
-
var
|
|
60
|
-
var
|
|
61
|
-
var
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
var
|
|
65
|
-
var
|
|
66
|
-
var
|
|
67
|
-
var
|
|
68
|
-
var
|
|
69
|
-
var
|
|
58
|
+
var _p = __read(useState(isDesktopQuery && !isPinned), 2), isOpened = _p[0], setIsOpened = _p[1];
|
|
59
|
+
var _q = __read(useState(false), 2), isBeingTransitioned = _q[0], setIsBeingTransitioned = _q[1];
|
|
60
|
+
var _r = __read(useState(value !== null && value !== void 0 ? value : activeItem), 2), activeMenuItem = _r[0], setActiveMenuItem = _r[1];
|
|
61
|
+
var _s = __read(useState(false), 2), isSeparatedMenuShown = _s[0], setIsSeparatedMenuShown = _s[1];
|
|
62
|
+
var _t = __read(useState(true), 2), isMouseOutside = _t[0], setIsMouseOutside = _t[1];
|
|
63
|
+
var _u = __read(useState('top'), 2), scrollState = _u[0], setScrollState = _u[1];
|
|
64
|
+
var _v = __read(useState(false), 2), hasScrollBar = _v[0], setHasScrollBar = _v[1];
|
|
65
|
+
var _w = __read(useState(0), 2), mousePositionX = _w[0], setMousePositionX = _w[1];
|
|
66
|
+
var _x = __read(useState(0), 2), headerHeight = _x[0], setHeaderHeight = _x[1];
|
|
67
|
+
var _y = __read(useState(isNarrowDesktop || (isDesktopQuery && isPinned)), 2), isCollapsable = _y[0], setIsCollapsable = _y[1];
|
|
68
|
+
var _z = __read(useState(0), 2), leftPosition = _z[0], setLeftPosition = _z[1];
|
|
69
|
+
var _0 = __read(useState(false), 2), isHovered = _0[0], setIsHovered = _0[1];
|
|
70
70
|
var switchActiveMenuItem = function (id) {
|
|
71
71
|
if (id !== value && id !== activeItem) {
|
|
72
72
|
onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(id);
|
|
@@ -215,11 +215,11 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
215
215
|
}
|
|
216
216
|
};
|
|
217
217
|
var isSideMenuOverContent = (isCollapsable || isMobile || (isTablet && !isSeparatedMenuShown)) && isOpened;
|
|
218
|
-
var
|
|
219
|
-
opacity:
|
|
218
|
+
var _1 = __read(useAnimateOnMount(!!isTabletOrMobile && !!isOpened, burgerTransitionDuration, {
|
|
219
|
+
opacity: LIGHT_THEME.sidePageBackingBgOpacity,
|
|
220
220
|
}, {
|
|
221
221
|
opacity: 0,
|
|
222
|
-
}), 2), shouldShowBackdrop =
|
|
222
|
+
}), 2), shouldShowBackdrop = _1[0], backdropStyle = _1[1];
|
|
223
223
|
var isSideMenuOverflowing = (isTabletOrMobile || isCollapsable) && isOpened;
|
|
224
224
|
var setScrollBar = function () {
|
|
225
225
|
var isSeparatedMenuShownInMobile = isMobile && isSeparatedMenuShown;
|
|
@@ -255,7 +255,6 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
255
255
|
setHasScrollBar: setHasScrollBar,
|
|
256
256
|
headerHeight: headerHeight,
|
|
257
257
|
setHeaderHeight: setHeaderHeight,
|
|
258
|
-
hideScrollBar: hideScrollBar,
|
|
259
258
|
showScrollBar: showScrollBar,
|
|
260
259
|
sideMenuRef: sideMenuRef,
|
|
261
260
|
navigation: navigation.current,
|
package/src/SideMenuContext.d.ts
CHANGED
|
@@ -23,7 +23,6 @@ export interface SideMenuContextType {
|
|
|
23
23
|
setHasScrollBar?: (hasScrollBar: boolean) => void;
|
|
24
24
|
headerHeight?: number;
|
|
25
25
|
setHeaderHeight?: (mobileHeaderHeight: number) => void;
|
|
26
|
-
hideScrollBar?: boolean;
|
|
27
26
|
showScrollBar?: showScrollBarType;
|
|
28
27
|
sideMenuRef?: RefObject<HTMLDivElement>;
|
|
29
28
|
navigation?: MenuNavigation | null;
|
package/src/internal/Backdrop.js
CHANGED
|
@@ -2,12 +2,12 @@ import { __assign } from "tslib";
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { HideBodyVerticalScroll } from '@skbkontur/react-ui/internal/HideBodyVerticalScroll';
|
|
4
4
|
import { jsStyles } from './Backdrop.styles';
|
|
5
|
-
import {
|
|
5
|
+
import { LIGHT_THEME } from '@skbkontur/react-ui';
|
|
6
6
|
import { cx } from '@skbkontur/react-ui/lib/theming/Emotion';
|
|
7
7
|
export var Backdrop = function (props) {
|
|
8
8
|
var _a;
|
|
9
9
|
return (React.createElement("div", { className: cx((_a = {},
|
|
10
10
|
_a[jsStyles.rootForTabletsOrMobiles()] = true,
|
|
11
|
-
_a)), style: __assign({ background:
|
|
11
|
+
_a)), style: __assign({ background: LIGHT_THEME.sidePageBackingBg }, props.style) },
|
|
12
12
|
React.createElement(HideBodyVerticalScroll, null)));
|
|
13
13
|
};
|
|
@@ -50,7 +50,7 @@ var SeparatedSubMenu = forwardRef(function (_a, ref) {
|
|
|
50
50
|
React.createElement(ScrollContainer, { onScrollStateChangeY: function (state) {
|
|
51
51
|
var _a;
|
|
52
52
|
(_a = context.setScrollState) === null || _a === void 0 ? void 0 : _a.call(context, state);
|
|
53
|
-
}, ref: scrollContainerRef, showScrollBar: context.isTouchScreen ? 'always' : context.showScrollBar
|
|
53
|
+
}, ref: scrollContainerRef, showScrollBar: context.isTouchScreen ? 'always' : context.showScrollBar },
|
|
54
54
|
React.createElement("ul", { className: cx((_d = {},
|
|
55
55
|
_d[jsStylesForSideMenu.list()] = true,
|
|
56
56
|
_d[jsStyles.contentWrapper(theme)] = true,
|