diff --git a/src/components/NavigationContent/NavigationContent.tsx b/src/components/NavigationContent/NavigationContent.tsx
index 28de4f55..da9c13ca 100644
--- a/src/components/NavigationContent/NavigationContent.tsx
+++ b/src/components/NavigationContent/NavigationContent.tsx
@@ -83,27 +83,41 @@ const NavigationContent: React.FC = () => {
labelKey: "nav.dashboard",
path: "/dashboard",
},
+ {
+ id: "nav.store.purchaseOrder",
+ icon: ,
+ labelKey: "nav.store.purchaseOrder",
+ requiredAbility: [AUTH.PURCHASE, AUTH.ADMIN],
+ path: "/po",
+ },
+ {
+ id: "nav.store.pickOrder",
+ icon: ,
+ labelKey: "nav.store.pickOrder",
+ requiredAbility: [AUTH.STOCK, AUTH.ADMIN],
+ path: "/pickOrder",
+ },
+ {
+ id: "nav.store.stockTake",
+ icon: ,
+ labelKey: "nav.store.stockTake",
+ requiredAbility: [AUTH.STOCK, AUTH.STOCK_TAKE, AUTH.ADMIN],
+ path: "/stocktakemanagement",
+ },
+ {
+ id: "nav.store.putAwayScan",
+ icon: ,
+ labelKey: "nav.store.putAwayScan",
+ requiredAbility: [AUTH.STOCK, AUTH.STOCK_TAKE, AUTH.STOCK_IN_BIND, AUTH.ADMIN],
+ path: "/putAway",
+ },
{
id: "nav.storeManagement",
icon: ,
labelKey: "nav.storeManagement",
path: "",
- requiredAbility: [AUTH.PURCHASE, AUTH.STOCK, AUTH.STOCK_TAKE, AUTH.STOCK_FG, AUTH.STOCK_IN_BIND, AUTH.ITEM_TRACING, AUTH.ADMIN],
+ requiredAbility: [AUTH.STOCK, AUTH.STOCK_TAKE, AUTH.STOCK_FG, AUTH.STOCK_IN_BIND, AUTH.ITEM_TRACING, AUTH.ADMIN],
children: [
- {
- id: "nav.store.purchaseOrder",
- icon: ,
- labelKey: "nav.store.purchaseOrder",
- requiredAbility: [AUTH.PURCHASE, AUTH.ADMIN],
- path: "/po",
- },
- {
- id: "nav.store.pickOrder",
- icon: ,
- labelKey: "nav.store.pickOrder",
- requiredAbility: [AUTH.STOCK, AUTH.ADMIN],
- path: "/pickOrder",
- },
{
id: "nav.store.inventoryLedger",
icon: ,
@@ -118,13 +132,6 @@ const NavigationContent: React.FC = () => {
requiredAbility: [AUTH.ITEM_TRACING],
path: "/itemTracing",
},
- {
- id: "nav.store.stockTake",
- icon: ,
- labelKey: "nav.store.stockTake",
- requiredAbility: [AUTH.STOCK, AUTH.STOCK_TAKE, AUTH.ADMIN],
- path: "/stocktakemanagement",
- },
{
id: "nav.store.stockIssue",
icon: ,
@@ -132,13 +139,6 @@ const NavigationContent: React.FC = () => {
requiredAbility: [AUTH.STOCK, AUTH.STOCK_TAKE, AUTH.ADMIN],
path: "/stockIssue",
},
- {
- id: "nav.store.putAwayScan",
- icon: ,
- labelKey: "nav.store.putAwayScan",
- requiredAbility: [AUTH.STOCK, AUTH.STOCK_TAKE, AUTH.STOCK_IN_BIND, AUTH.ADMIN],
- path: "/putAway",
- },
{
id: "nav.store.finishedGoodManagement",
icon: ,
@@ -444,15 +444,12 @@ const NavigationContent: React.FC = () => {
const canSeeMasterDataIssueBadge = abilitySet.has(AUTH.ADMIN);
const [openItems, setOpenItems] = React.useState([]);
- /** Keep parent sections expanded on deep links (e.g. /po/edit from nav red spot) so alerts stay visible. */
+ /** Keep parent sections expanded on deep links so nested alerts stay visible. */
React.useEffect(() => {
const ensureOpen: string[] = [];
if (pathname.startsWith("/chart")) {
ensureOpen.push("nav.chartReports");
}
- if (pathname === "/po" || pathname.startsWith("/po/")) {
- ensureOpen.push("nav.storeManagement");
- }
if (pathname === "/productionProcess" || pathname.startsWith("/productionProcess/")) {
ensureOpen.push("nav.jobOrderManagement");
}
@@ -555,7 +552,47 @@ const NavigationContent: React.FC = () => {
return (
- {isLeaf ? (
+ {isLeaf && item.path === "/po" ? (
+
+
+
+ {item.icon}
+
+
+
+
+
+ ) : isLeaf ? (
{content}
@@ -566,52 +603,7 @@ const NavigationContent: React.FC = () => {
{item.children.map(
(child) => !child.isHidden && hasAbility(child.requiredAbility) && (
- child.path === "/po" ? (
-
-
-
- {child.icon}
-
-
-
-
-
- ) : child.path === "/settings/masterDataIssues" ? (
+ child.path === "/settings/masterDataIssues" ? (