@ssa-ui-kit/widgets 0.0.16-alpha → 0.0.17-alpha
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/dist/components/CollapsibleNavBar/NavBarAccordionContent.d.ts +2 -1
- package/dist/components/CollapsibleNavBar/NavBarItemWithSubMenu.d.ts +2 -1
- package/dist/components/CollapsibleNavBar/NavBarItemWithoutSubMenu.d.ts +2 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/components/CollapsibleNavBar/CollapsibleNavBar.tsx +21 -11
- package/src/components/CollapsibleNavBar/NavBarAccordionContent.tsx +3 -0
- package/src/components/CollapsibleNavBar/NavBarItemWithSubMenu.tsx +3 -0
- package/src/components/CollapsibleNavBar/NavBarItemWithoutSubMenu.tsx +3 -1
- package/tsbuildcache +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ssa-ui-kit/widgets",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.17-alpha",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"private": false,
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"loose-envify": "^1.4.0",
|
|
31
31
|
"scheduler": "^0.23.0",
|
|
32
32
|
"@ssa-ui-kit/core": "^0.0.12-alpha",
|
|
33
|
-
"@ssa-ui-kit/
|
|
34
|
-
"@ssa-ui-kit/
|
|
33
|
+
"@ssa-ui-kit/utils": "^0.0.1-alpha",
|
|
34
|
+
"@ssa-ui-kit/hooks": "^0.0.1-alpha"
|
|
35
35
|
},
|
|
36
36
|
"browserslist": [
|
|
37
37
|
">0.1%",
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { useState, useId, useEffect } from 'react';
|
|
2
2
|
import { Wrapper } from '@ssa-ui-kit/core';
|
|
3
|
+
import { useWindowSize } from '@ssa-ui-kit/hooks';
|
|
3
4
|
import * as S from './styles';
|
|
4
5
|
|
|
6
|
+
import { SCREEN_SIZES } from '../../consts';
|
|
5
7
|
import CollapsibleNavBarBase from './CollapsibleNavBarBase';
|
|
6
8
|
import CollapsibleNavBarWrapper from './CollapsibleNavBarWrapper';
|
|
7
9
|
import CollapsibleNavBarList from './CollapsibleNavBarList';
|
|
@@ -10,7 +12,6 @@ import { CollapsibleNavBarExtendedProps } from './types';
|
|
|
10
12
|
import { NavContentToggle } from './CollapsibleNavContentToggle';
|
|
11
13
|
import { NavBarItemWithSubMenu } from './NavBarItemWithSubMenu';
|
|
12
14
|
import { NavBarItemWithoutSubMenu } from './NavBarItemWithoutSubMenu';
|
|
13
|
-
|
|
14
15
|
/**
|
|
15
16
|
* UI Component that shows the collapsible navigation bar
|
|
16
17
|
*/
|
|
@@ -19,18 +20,19 @@ export const CollapsibleNavBar = ({
|
|
|
19
20
|
renderLogo,
|
|
20
21
|
}: CollapsibleNavBarExtendedProps) => {
|
|
21
22
|
const toggleId = useId();
|
|
23
|
+
const { width } = useWindowSize();
|
|
22
24
|
const [isChecked, onToggle] = useState(false);
|
|
25
|
+
const isMobile = width < SCREEN_SIZES['900'].width;
|
|
23
26
|
|
|
24
27
|
useEffect(() => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
};
|
|
28
|
+
onToggle(false);
|
|
29
|
+
}, [width]);
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
}
|
|
31
|
+
const handleCloseMobileMenu = () => {
|
|
32
|
+
if (isMobile) {
|
|
33
|
+
onToggle(!isChecked);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
34
36
|
|
|
35
37
|
return (
|
|
36
38
|
<CollapsibleNavBarBase className={isChecked ? 'opened' : undefined}>
|
|
@@ -55,9 +57,17 @@ export const CollapsibleNavBar = ({
|
|
|
55
57
|
const { iconName, title } = item;
|
|
56
58
|
const keyName = iconName + title.replace(' ', '').toLowerCase();
|
|
57
59
|
return 'items' in item ? (
|
|
58
|
-
<NavBarItemWithSubMenu
|
|
60
|
+
<NavBarItemWithSubMenu
|
|
61
|
+
item={item}
|
|
62
|
+
key={keyName}
|
|
63
|
+
onClick={handleCloseMobileMenu}
|
|
64
|
+
/>
|
|
59
65
|
) : (
|
|
60
|
-
<NavBarItemWithoutSubMenu
|
|
66
|
+
<NavBarItemWithoutSubMenu
|
|
67
|
+
item={item}
|
|
68
|
+
key={keyName}
|
|
69
|
+
onClick={handleCloseMobileMenu}
|
|
70
|
+
/>
|
|
61
71
|
);
|
|
62
72
|
})}
|
|
63
73
|
</CollapsibleNavBarList>
|
|
@@ -26,12 +26,14 @@ export const NavBarAccordionContent = ({
|
|
|
26
26
|
accordionUniqueName,
|
|
27
27
|
prefix,
|
|
28
28
|
isPopover,
|
|
29
|
+
onClick,
|
|
29
30
|
...rest
|
|
30
31
|
}: RenderContentProps & {
|
|
31
32
|
items: Array<{ path: string; title: string }>;
|
|
32
33
|
accordionUniqueName: string;
|
|
33
34
|
prefix?: string;
|
|
34
35
|
isPopover?: boolean;
|
|
36
|
+
onClick?: () => void;
|
|
35
37
|
}) => (
|
|
36
38
|
<AccordionContent
|
|
37
39
|
{...rest}
|
|
@@ -41,6 +43,7 @@ export const NavBarAccordionContent = ({
|
|
|
41
43
|
key={`${accordionUniqueName}-link-${subMenuItem.title
|
|
42
44
|
.replace(' ', '')
|
|
43
45
|
.toLowerCase()}`}
|
|
46
|
+
onClick={onClick}
|
|
44
47
|
to={'/' + prefix + subMenuItem.path}>
|
|
45
48
|
{subMenuItem.title}
|
|
46
49
|
</Link>
|
|
@@ -18,8 +18,10 @@ const Link = CollapsibleNavBarLink.withComponent('div');
|
|
|
18
18
|
|
|
19
19
|
export const NavBarItemWithSubMenu = ({
|
|
20
20
|
item,
|
|
21
|
+
onClick,
|
|
21
22
|
}: {
|
|
22
23
|
item: CollapsibleNavBarGroup;
|
|
24
|
+
onClick?: () => void;
|
|
23
25
|
}) => {
|
|
24
26
|
const { iconName, iconSize, title, items, prefix, css } = item;
|
|
25
27
|
const uniqName = iconName + title.replace(' ', '').toLowerCase();
|
|
@@ -55,6 +57,7 @@ export const NavBarItemWithSubMenu = ({
|
|
|
55
57
|
accordionUniqueName={accordionUniqName}
|
|
56
58
|
prefix={prefix}
|
|
57
59
|
isPopover={false}
|
|
60
|
+
onClick={onClick}
|
|
58
61
|
{...props}
|
|
59
62
|
/>
|
|
60
63
|
)}
|
|
@@ -6,8 +6,10 @@ import * as T from './types';
|
|
|
6
6
|
|
|
7
7
|
export const NavBarItemWithoutSubMenu = ({
|
|
8
8
|
item,
|
|
9
|
+
onClick,
|
|
9
10
|
}: {
|
|
10
11
|
item: T.CollapsibleNavBarItem;
|
|
12
|
+
onClick?: () => void;
|
|
11
13
|
}) => {
|
|
12
14
|
const { path, iconName, title, iconSize, css } = item;
|
|
13
15
|
const Icon = () => (
|
|
@@ -16,7 +18,7 @@ export const NavBarItemWithoutSubMenu = ({
|
|
|
16
18
|
|
|
17
19
|
return (
|
|
18
20
|
<CollapsibleNavBarItem key={path}>
|
|
19
|
-
<CollapsibleNavBarLink to={'/' + path}>
|
|
21
|
+
<CollapsibleNavBarLink to={'/' + path} onClick={onClick}>
|
|
20
22
|
<CollapsibleNavBarPopover triggerIcon={<Icon />} title={title} />
|
|
21
23
|
<Icon />
|
|
22
24
|
<span>{title}</span>
|