Side Menu layer 2 updated

This commit is contained in:
berkay 2025-01-08 12:52:10 +03:00
parent 2a80db4544
commit 170afc4ae8
4 changed files with 99 additions and 28 deletions

View File

@ -27,8 +27,12 @@ const MainBodyWithHeader: React.FC<MainBodyWithHeaderProps> = async ({
<div className="basis-1/4 p-4 border-2 border-black">
<SideMenuProfile profileInfo={user} />
</div>
<div className="basis-3/4 p-4 border-2 border-black">
<SideMenu section={section} lang={user?.lang ?? "tr"} restrictions={restrictions} />
<div className="basis-3/4 p-4 border-2 border-black text-sm">
<SideMenu
section={section}
lang={user?.lang ?? "tr"}
restrictions={restrictions}
/>
</div>
</div>
</Suspense>

View File

@ -35,13 +35,13 @@ const SideMenu: React.FC<SideMenuProps> = async ({
if (layer === 1) {
return (
<nav className="flex flex-col text-sm">
<nav className="flex flex-col">
{PagesInfosAndEndpoints.map((page) => {
return (
<FirstLayerMenu
section={section}
key={page.name}
page={page}
currentPage={currentPage}
mappedLayers={pages}
restrictionsList={restrictions}
lang={lang as LanguagesSelectable}
@ -52,13 +52,13 @@ const SideMenu: React.FC<SideMenuProps> = async ({
);
} else if (layer === 2) {
return (
<nav className="flex flex-col text-sm">
<nav className="flex flex-col">
{PagesInfosAndEndpoints.map((page) => {
return (
<SecondLayerMenu
section={section}
key={page.name}
page={page}
currentPage={currentPage}
mappedLayers={pages}
restrictionsList={restrictions}
lang={lang as LanguagesSelectable}
@ -69,7 +69,7 @@ const SideMenu: React.FC<SideMenuProps> = async ({
);
} else if (layer === 3) {
return (
<nav className="flex flex-col text-sm">
<nav className="flex flex-col">
{PagesInfosAndEndpoints.map((page) => {
const Icon = getIconByName(page.icon);
if (firstLayerPage.name === page.name) {

View File

@ -24,9 +24,9 @@ interface ActiveButtonInterface {
}
interface RenderMenuInterface {
section: any;
key: string;
page: any;
currentPage: string;
mappedLayers: any | MappedLayersInterface;
lang: string;
restrictionsList?: any;
@ -99,15 +99,15 @@ const LayerButton: React.FC<ActiveButtonInterface> = ({
};
const FirstLayerMenu: React.FC<RenderMenuInterface> = ({
section,
key,
page,
currentPage,
mappedLayers,
restrictionsList,
lang,
}) => {
if (restrictionsList.includes(String(page.name))) {
if (page.name === currentPage) {
if (page.name === section.currentPage) {
return (
<div key={key}>
<DisableButton
@ -134,29 +134,29 @@ const FirstLayerMenu: React.FC<RenderMenuInterface> = ({
}
if (restrictionsList.includes(String(page.name))) {
return (
<>
<div key={key}>
<ActiveButton
key={page.name}
url={page.url}
title={page.title?.[lang]}
Icon={getIconByName(page.icon)}
/>
</>
</div>
);
}
}
};
const SecondLayerMenu: React.FC<RenderMenuInterface> = ({
section,
key,
page,
currentPage,
mappedLayers,
restrictionsList,
lang,
}) => {
if (restrictionsList.includes(String(mappedLayers.firstLayer.name))) {
if (mappedLayers.firstLayer.name === page.name) {
if (section.firstLayer === page.name) {
return (
<div key={key}>
<ActiveButton
@ -167,9 +167,8 @@ const SecondLayerMenu: React.FC<RenderMenuInterface> = ({
/>
<div className="mb-6 mt-3 px-4">
{mappedLayers.secondLayer.map((subPage: any) => {
console.log("subPage", subPage);
if (restrictionsList.includes(String(subPage.name))) {
if (subPage.name === currentPage) {
if (subPage.name === section.currentPage) {
return (
<LayerButton
key={subPage.name}
@ -196,7 +195,7 @@ const SecondLayerMenu: React.FC<RenderMenuInterface> = ({
}
if (restrictionsList.includes(String(page.name))) {
return (
<div>
<div key={key}>
<ActiveButton
key={page.name}
url={page.url}
@ -209,4 +208,81 @@ const SecondLayerMenu: React.FC<RenderMenuInterface> = ({
}
};
export { FirstLayerMenu, SecondLayerMenu };
const ThirdLayerMenu: React.FC<RenderMenuInterface> = ({
section,
key,
page,
mappedLayers,
restrictionsList,
lang,
}) => {
if (restrictionsList.includes(String(mappedLayers.firstLayer.name))) {
if (mappedLayers.firstLayer.name === page.name) {
return (
<div key={key}>
<ActiveButton
key={page.name}
url={page.url}
title={page.title?.[lang]}
Icon={getIconByName(page.icon)}
/>
<div className="mb-6 mt-3 px-4">
{mappedLayers.secondLayer.map((subPage: any) => {
if (restrictionsList.includes(String(subPage.name))) {
return (
<div>
<ActiveButton
key={subPage.name}
url={subPage.url}
title={subPage.title?.[lang]}
Icon={getIconByName(subPage.icon)}
/>
<div className="mb-6 mt-3 px-4">
{mappedLayers.thirdLayer.map((thirdPage: any) => {
if (restrictionsList.includes(String(thirdPage.name))) {
if (thirdPage.name === section.currentPage) {
return (
<LayerButton
key={thirdPage.name}
url={thirdPage.url}
title={thirdPage.title?.[lang]}
Icon={getIconByName(thirdPage.icon)}
/>
);
} else {
return (
<ActiveButton
key={thirdPage.name}
url={thirdPage.url}
title={thirdPage.title?.[lang]}
Icon={getIconByName(thirdPage.icon)}
/>
);
}
}
})}
</div>
</div>
);
}
})}
</div>
</div>
);
}
if (restrictionsList.includes(String(page.name))) {
return (
<div key={key}>
<ActiveButton
key={page.name}
url={page.url}
title={page.title?.[lang]}
Icon={getIconByName(page.icon)}
/>
</div>
);
}
}
};
export { FirstLayerMenu, SecondLayerMenu, ThirdLayerMenu };

View File

@ -1,14 +1,5 @@
import { retrievePageByComponentName } from "@/hooks/retrievePageInfoByComponentName";
function getSubCategoryByPageName(subCategories: [], layerName: string) {
console.log("subCategories", subCategories, "layerName", layerName);
const subCategory = subCategories.filter((s: any) => s.name === layerName);
console.log("subCategory", subCategory);
if (subCategory.length === 0) {
return null;
}
}
export function getThreeLayerByPageName({
lang,
layer = 1,