gov-layout 1.2.0 → 1.2.2
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/index.d.mts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +56 -28
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +56 -28
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -415,7 +415,8 @@ function MenuItemComponent({
|
|
|
415
415
|
onItemClick,
|
|
416
416
|
currentPath,
|
|
417
417
|
depth = 0,
|
|
418
|
-
collapsed = false
|
|
418
|
+
collapsed = false,
|
|
419
|
+
onExpandRequest
|
|
419
420
|
}) {
|
|
420
421
|
const hasChildren = item.children && item.children.length > 0;
|
|
421
422
|
const isActive = item.path ? currentPath === item.path : false;
|
|
@@ -426,8 +427,12 @@ function MenuItemComponent({
|
|
|
426
427
|
const expanded = userToggled ? isOpen : isOpen || isChildActive;
|
|
427
428
|
const handleClick = () => {
|
|
428
429
|
if (hasChildren) {
|
|
429
|
-
|
|
430
|
-
|
|
430
|
+
if (collapsed) {
|
|
431
|
+
onExpandRequest?.();
|
|
432
|
+
} else {
|
|
433
|
+
setUserToggled(true);
|
|
434
|
+
setIsOpen(!expanded);
|
|
435
|
+
}
|
|
431
436
|
} else if (item.path) {
|
|
432
437
|
onItemClick(item.path);
|
|
433
438
|
}
|
|
@@ -536,7 +541,7 @@ function MenuItemComponent({
|
|
|
536
541
|
} }) })
|
|
537
542
|
] });
|
|
538
543
|
}
|
|
539
|
-
function SidebarMenu({ menuItems, onItemClick, currentPath, collapsed }) {
|
|
544
|
+
function SidebarMenu({ menuItems, onItemClick, currentPath, collapsed, onExpandRequest }) {
|
|
540
545
|
return /* @__PURE__ */ jsx("nav", { style: {
|
|
541
546
|
padding: collapsed ? "8px 8px" : "8px 12px",
|
|
542
547
|
overflowY: "auto"
|
|
@@ -553,7 +558,8 @@ function SidebarMenu({ menuItems, onItemClick, currentPath, collapsed }) {
|
|
|
553
558
|
item,
|
|
554
559
|
onItemClick,
|
|
555
560
|
currentPath,
|
|
556
|
-
collapsed
|
|
561
|
+
collapsed,
|
|
562
|
+
onExpandRequest
|
|
557
563
|
},
|
|
558
564
|
item.id
|
|
559
565
|
)) }) });
|
|
@@ -811,7 +817,8 @@ function StaffSidebar({
|
|
|
811
817
|
className,
|
|
812
818
|
collapsible = false,
|
|
813
819
|
isOpen: controlledIsOpen,
|
|
814
|
-
onToggle
|
|
820
|
+
onToggle,
|
|
821
|
+
onExpandRequest
|
|
815
822
|
}) {
|
|
816
823
|
const [internalOpen, setInternalOpen] = useState(true);
|
|
817
824
|
const sidebarOpen = controlledIsOpen !== void 0 ? controlledIsOpen : internalOpen;
|
|
@@ -826,6 +833,17 @@ function StaffSidebar({
|
|
|
826
833
|
setInternalOpen(!internalOpen);
|
|
827
834
|
}
|
|
828
835
|
};
|
|
836
|
+
const handleExpandRequest = () => {
|
|
837
|
+
if (onExpandRequest) {
|
|
838
|
+
onExpandRequest();
|
|
839
|
+
} else {
|
|
840
|
+
if (onToggle) {
|
|
841
|
+
onToggle();
|
|
842
|
+
} else {
|
|
843
|
+
setInternalOpen(true);
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
};
|
|
829
847
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
830
848
|
/* @__PURE__ */ jsxs(
|
|
831
849
|
"aside",
|
|
@@ -855,34 +873,44 @@ function StaffSidebar({
|
|
|
855
873
|
collapsed
|
|
856
874
|
}
|
|
857
875
|
),
|
|
858
|
-
/* @__PURE__ */ jsx(
|
|
876
|
+
/* @__PURE__ */ jsx("div", { style: { flex: 1, overflowY: "auto", minHeight: 0 }, children: /* @__PURE__ */ jsx(
|
|
859
877
|
SidebarMenu,
|
|
860
878
|
{
|
|
861
879
|
menuItems,
|
|
862
880
|
onItemClick: onNavigate,
|
|
863
881
|
currentPath,
|
|
864
|
-
collapsed
|
|
865
|
-
|
|
866
|
-
),
|
|
867
|
-
resolvedBottomMenu && resolvedBottomMenu.length > 0 && /* @__PURE__ */ jsx(
|
|
868
|
-
SidebarMenu,
|
|
869
|
-
{
|
|
870
|
-
menuItems: resolvedBottomMenu,
|
|
871
|
-
onItemClick: onNavigate,
|
|
872
|
-
currentPath,
|
|
873
|
-
collapsed
|
|
874
|
-
}
|
|
875
|
-
),
|
|
876
|
-
/* @__PURE__ */ jsx("div", { style: { flex: 1 } }),
|
|
877
|
-
/* @__PURE__ */ jsx(
|
|
878
|
-
SidebarUserProfile,
|
|
879
|
-
{
|
|
880
|
-
user,
|
|
881
|
-
roleLabel,
|
|
882
|
-
onLogout,
|
|
883
|
-
collapsed
|
|
882
|
+
collapsed,
|
|
883
|
+
onExpandRequest: handleExpandRequest
|
|
884
884
|
}
|
|
885
|
-
)
|
|
885
|
+
) }),
|
|
886
|
+
/* @__PURE__ */ jsxs("div", { style: { flexShrink: 0 }, children: [
|
|
887
|
+
resolvedBottomMenu && resolvedBottomMenu.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
888
|
+
/* @__PURE__ */ jsx("hr", { style: {
|
|
889
|
+
border: "none",
|
|
890
|
+
borderTop: "1px solid var(--color-border-colors-neutral, #c8cedd)",
|
|
891
|
+
margin: "4px 12px"
|
|
892
|
+
} }),
|
|
893
|
+
/* @__PURE__ */ jsx(
|
|
894
|
+
SidebarMenu,
|
|
895
|
+
{
|
|
896
|
+
menuItems: resolvedBottomMenu,
|
|
897
|
+
onItemClick: onNavigate,
|
|
898
|
+
currentPath,
|
|
899
|
+
collapsed,
|
|
900
|
+
onExpandRequest: handleExpandRequest
|
|
901
|
+
}
|
|
902
|
+
)
|
|
903
|
+
] }),
|
|
904
|
+
/* @__PURE__ */ jsx(
|
|
905
|
+
SidebarUserProfile,
|
|
906
|
+
{
|
|
907
|
+
user,
|
|
908
|
+
roleLabel,
|
|
909
|
+
onLogout,
|
|
910
|
+
collapsed
|
|
911
|
+
}
|
|
912
|
+
)
|
|
913
|
+
] })
|
|
886
914
|
]
|
|
887
915
|
}
|
|
888
916
|
),
|