From bfa1a6796c31d95cf53c1e72368b97945f5b9db7 Mon Sep 17 00:00:00 2001 From: alex Date: Sun, 28 Jan 2024 09:31:45 +0100 Subject: [PATCH] open store menu --- src/Components/AppRoutes/index.js | 12 ++++++------ src/Components/SideMenu/index.js | 29 +++++++++++++++++++++++------ src/utils.js | 14 ++++++++------ 3 files changed, 37 insertions(+), 18 deletions(-) diff --git a/src/Components/AppRoutes/index.js b/src/Components/AppRoutes/index.js index fdf20cb..abf30c8 100644 --- a/src/Components/AppRoutes/index.js +++ b/src/Components/AppRoutes/index.js @@ -30,7 +30,7 @@ export default function AppRoutes({ setUserSession }) { /> @@ -39,7 +39,7 @@ export default function AppRoutes({ setUserSession }) { /> @@ -48,7 +48,7 @@ export default function AppRoutes({ setUserSession }) { /> @@ -57,7 +57,7 @@ export default function AppRoutes({ setUserSession }) { /> @@ -66,7 +66,7 @@ export default function AppRoutes({ setUserSession }) { /> @@ -75,7 +75,7 @@ export default function AppRoutes({ setUserSession }) { /> diff --git a/src/Components/SideMenu/index.js b/src/Components/SideMenu/index.js index 84d130c..6d3b409 100644 --- a/src/Components/SideMenu/index.js +++ b/src/Components/SideMenu/index.js @@ -27,6 +27,7 @@ export function SideMenuContent({ const storesContext = useStoresContext(); const location = useLocation(); const [selectedKeys, setSelectedKeys] = useState("/"); + const [openKeys, setOpenKeys] = useState([""]); const { t } = useTranslation(); const navigate = useNavigate(); @@ -56,13 +57,19 @@ export function SideMenuContent({ label: store.name, icon: , children: [], + key: `${Constants.ROUTE_PATHS.STORE.OVERVIEW}/${store.store_id}`, }; + console.warn( + "here", + `${Constants.ROUTE_PATHS.STORE.OVERVIEW}/${store.store_id}` + ); + if (sideBarContext.permissions.includes("settings")) { groupStore.children.push({ label: t("sideMenu.store.settings"), icon: , - key: `${Constants.ROUTE_PATHS.STORE.SETTINGS}/${store.store_id}`, + key: `${Constants.ROUTE_PATHS.STORE.OVERVIEW}/${store.store_id}/${Constants.ROUTE_PATHS.STORE.SETTINGS}`, }); } @@ -70,7 +77,7 @@ export function SideMenuContent({ groupStore.children.push({ label: t("sideMenu.store.employees"), icon: , - key: `${Constants.ROUTE_PATHS.STORE.EMPLOYEES}/${store.store_id}`, + key: `${Constants.ROUTE_PATHS.STORE.OVERVIEW}/${store.store_id}/${Constants.ROUTE_PATHS.STORE.EMPLOYEES}`, }); } @@ -78,7 +85,7 @@ export function SideMenuContent({ groupStore.children.push({ label: t("sideMenu.store.services"), icon: , - key: `${Constants.ROUTE_PATHS.STORE.SERVICES}/${store.store_id}`, + key: `${Constants.ROUTE_PATHS.STORE.OVERVIEW}/${store.store_id}/${Constants.ROUTE_PATHS.STORE.SERVICES}`, }); } @@ -86,7 +93,7 @@ export function SideMenuContent({ groupStore.children.push({ label: t("sideMenu.store.calendar"), icon: , - key: `${Constants.ROUTE_PATHS.STORE.CALENDAR}/${store.store_id}`, + key: `${Constants.ROUTE_PATHS.STORE.OVERVIEW}/${store.store_id}/${Constants.ROUTE_PATHS.STORE.CALENDAR}`, }); } @@ -97,7 +104,7 @@ export function SideMenuContent({ groupStore.children.push({ label: t("sideMenu.store.website.title"), icon: , - key: `${Constants.ROUTE_PATHS.STORE.WEBSITE}/${store.store_id}`, + key: `${Constants.ROUTE_PATHS.STORE.OVERVIEW}/${store.store_id}/${Constants.ROUTE_PATHS.STORE.WEBSITE}`, }); } @@ -141,6 +148,13 @@ export function SideMenuContent({ setSelectedKeys(pathname); + let path = pathname.split("/"); + + if (path.length > 2) { + // /store/:storeId/:subPage - open the store menu + setOpenKeys([`/${path[1]}/${path[2]}`]); + } + // auto close sideMenu on mobile // this will prevent to auto close sideMenu on first render as the useEffects will be called after the first render if (contentFirstRender.current) { @@ -195,7 +209,10 @@ export function SideMenuContent({ theme="light" selectedKeys={[selectedKeys]} items={getFirstMenuItems()} - defaultOpenKeys={["/website"]} + openKeys={openKeys} + onOpenChange={(openKeys) => + setOpenKeys(openKeys[openKeys.length - 1]) + } /> diff --git a/src/utils.js b/src/utils.js index 597f11c..784cdab 100644 --- a/src/utils.js +++ b/src/utils.js @@ -37,12 +37,14 @@ export const Constants = { ROUTE_PATHS: { OVERVIEW: "/", STORE: { - SETTINGS: "/store/settings", - EMPLOYEES: "/store/employees", - SERVICES: "/store/services", - CALENDAR: "/store/calendar", - CALENDAR_AUTH: "/store/calendar/auth", - WEBSITE: "/store/website", + // schema: /store/:storeId/:subPage + OVERVIEW: "/store", + SETTINGS: "settings", + EMPLOYEES: "employees", + SERVICES: "services", + CALENDAR: "calendar", + CALENDAR_AUTH: "calendar/auth", + WEBSITE: "website", }, FEEDBACK: "/feedback", SUPPORT: "/support",