Side Menu layer 2 updated
This commit is contained in:
parent
2a80db4544
commit
170afc4ae8
|
|
@ -27,8 +27,12 @@ const MainBodyWithHeader: React.FC<MainBodyWithHeaderProps> = async ({
|
||||||
<div className="basis-1/4 p-4 border-2 border-black">
|
<div className="basis-1/4 p-4 border-2 border-black">
|
||||||
<SideMenuProfile profileInfo={user} />
|
<SideMenuProfile profileInfo={user} />
|
||||||
</div>
|
</div>
|
||||||
<div className="basis-3/4 p-4 border-2 border-black">
|
<div className="basis-3/4 p-4 border-2 border-black text-sm">
|
||||||
<SideMenu section={section} lang={user?.lang ?? "tr"} restrictions={restrictions} />
|
<SideMenu
|
||||||
|
section={section}
|
||||||
|
lang={user?.lang ?? "tr"}
|
||||||
|
restrictions={restrictions}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Suspense>
|
</Suspense>
|
||||||
|
|
|
||||||
|
|
@ -35,13 +35,13 @@ const SideMenu: React.FC<SideMenuProps> = async ({
|
||||||
|
|
||||||
if (layer === 1) {
|
if (layer === 1) {
|
||||||
return (
|
return (
|
||||||
<nav className="flex flex-col text-sm">
|
<nav className="flex flex-col">
|
||||||
{PagesInfosAndEndpoints.map((page) => {
|
{PagesInfosAndEndpoints.map((page) => {
|
||||||
return (
|
return (
|
||||||
<FirstLayerMenu
|
<FirstLayerMenu
|
||||||
|
section={section}
|
||||||
key={page.name}
|
key={page.name}
|
||||||
page={page}
|
page={page}
|
||||||
currentPage={currentPage}
|
|
||||||
mappedLayers={pages}
|
mappedLayers={pages}
|
||||||
restrictionsList={restrictions}
|
restrictionsList={restrictions}
|
||||||
lang={lang as LanguagesSelectable}
|
lang={lang as LanguagesSelectable}
|
||||||
|
|
@ -52,13 +52,13 @@ const SideMenu: React.FC<SideMenuProps> = async ({
|
||||||
);
|
);
|
||||||
} else if (layer === 2) {
|
} else if (layer === 2) {
|
||||||
return (
|
return (
|
||||||
<nav className="flex flex-col text-sm">
|
<nav className="flex flex-col">
|
||||||
{PagesInfosAndEndpoints.map((page) => {
|
{PagesInfosAndEndpoints.map((page) => {
|
||||||
return (
|
return (
|
||||||
<SecondLayerMenu
|
<SecondLayerMenu
|
||||||
|
section={section}
|
||||||
key={page.name}
|
key={page.name}
|
||||||
page={page}
|
page={page}
|
||||||
currentPage={currentPage}
|
|
||||||
mappedLayers={pages}
|
mappedLayers={pages}
|
||||||
restrictionsList={restrictions}
|
restrictionsList={restrictions}
|
||||||
lang={lang as LanguagesSelectable}
|
lang={lang as LanguagesSelectable}
|
||||||
|
|
@ -69,7 +69,7 @@ const SideMenu: React.FC<SideMenuProps> = async ({
|
||||||
);
|
);
|
||||||
} else if (layer === 3) {
|
} else if (layer === 3) {
|
||||||
return (
|
return (
|
||||||
<nav className="flex flex-col text-sm">
|
<nav className="flex flex-col">
|
||||||
{PagesInfosAndEndpoints.map((page) => {
|
{PagesInfosAndEndpoints.map((page) => {
|
||||||
const Icon = getIconByName(page.icon);
|
const Icon = getIconByName(page.icon);
|
||||||
if (firstLayerPage.name === page.name) {
|
if (firstLayerPage.name === page.name) {
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,9 @@ interface ActiveButtonInterface {
|
||||||
}
|
}
|
||||||
|
|
||||||
interface RenderMenuInterface {
|
interface RenderMenuInterface {
|
||||||
|
section: any;
|
||||||
key: string;
|
key: string;
|
||||||
page: any;
|
page: any;
|
||||||
currentPage: string;
|
|
||||||
mappedLayers: any | MappedLayersInterface;
|
mappedLayers: any | MappedLayersInterface;
|
||||||
lang: string;
|
lang: string;
|
||||||
restrictionsList?: any;
|
restrictionsList?: any;
|
||||||
|
|
@ -99,15 +99,15 @@ const LayerButton: React.FC<ActiveButtonInterface> = ({
|
||||||
};
|
};
|
||||||
|
|
||||||
const FirstLayerMenu: React.FC<RenderMenuInterface> = ({
|
const FirstLayerMenu: React.FC<RenderMenuInterface> = ({
|
||||||
|
section,
|
||||||
key,
|
key,
|
||||||
page,
|
page,
|
||||||
currentPage,
|
|
||||||
mappedLayers,
|
mappedLayers,
|
||||||
restrictionsList,
|
restrictionsList,
|
||||||
lang,
|
lang,
|
||||||
}) => {
|
}) => {
|
||||||
if (restrictionsList.includes(String(page.name))) {
|
if (restrictionsList.includes(String(page.name))) {
|
||||||
if (page.name === currentPage) {
|
if (page.name === section.currentPage) {
|
||||||
return (
|
return (
|
||||||
<div key={key}>
|
<div key={key}>
|
||||||
<DisableButton
|
<DisableButton
|
||||||
|
|
@ -134,29 +134,29 @@ const FirstLayerMenu: React.FC<RenderMenuInterface> = ({
|
||||||
}
|
}
|
||||||
if (restrictionsList.includes(String(page.name))) {
|
if (restrictionsList.includes(String(page.name))) {
|
||||||
return (
|
return (
|
||||||
<>
|
<div key={key}>
|
||||||
<ActiveButton
|
<ActiveButton
|
||||||
key={page.name}
|
key={page.name}
|
||||||
url={page.url}
|
url={page.url}
|
||||||
title={page.title?.[lang]}
|
title={page.title?.[lang]}
|
||||||
Icon={getIconByName(page.icon)}
|
Icon={getIconByName(page.icon)}
|
||||||
/>
|
/>
|
||||||
</>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const SecondLayerMenu: React.FC<RenderMenuInterface> = ({
|
const SecondLayerMenu: React.FC<RenderMenuInterface> = ({
|
||||||
|
section,
|
||||||
key,
|
key,
|
||||||
page,
|
page,
|
||||||
currentPage,
|
|
||||||
mappedLayers,
|
mappedLayers,
|
||||||
restrictionsList,
|
restrictionsList,
|
||||||
lang,
|
lang,
|
||||||
}) => {
|
}) => {
|
||||||
if (restrictionsList.includes(String(mappedLayers.firstLayer.name))) {
|
if (restrictionsList.includes(String(mappedLayers.firstLayer.name))) {
|
||||||
if (mappedLayers.firstLayer.name === page.name) {
|
if (section.firstLayer === page.name) {
|
||||||
return (
|
return (
|
||||||
<div key={key}>
|
<div key={key}>
|
||||||
<ActiveButton
|
<ActiveButton
|
||||||
|
|
@ -167,9 +167,8 @@ const SecondLayerMenu: React.FC<RenderMenuInterface> = ({
|
||||||
/>
|
/>
|
||||||
<div className="mb-6 mt-3 px-4">
|
<div className="mb-6 mt-3 px-4">
|
||||||
{mappedLayers.secondLayer.map((subPage: any) => {
|
{mappedLayers.secondLayer.map((subPage: any) => {
|
||||||
console.log("subPage", subPage);
|
|
||||||
if (restrictionsList.includes(String(subPage.name))) {
|
if (restrictionsList.includes(String(subPage.name))) {
|
||||||
if (subPage.name === currentPage) {
|
if (subPage.name === section.currentPage) {
|
||||||
return (
|
return (
|
||||||
<LayerButton
|
<LayerButton
|
||||||
key={subPage.name}
|
key={subPage.name}
|
||||||
|
|
@ -196,7 +195,7 @@ const SecondLayerMenu: React.FC<RenderMenuInterface> = ({
|
||||||
}
|
}
|
||||||
if (restrictionsList.includes(String(page.name))) {
|
if (restrictionsList.includes(String(page.name))) {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div key={key}>
|
||||||
<ActiveButton
|
<ActiveButton
|
||||||
key={page.name}
|
key={page.name}
|
||||||
url={page.url}
|
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 };
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,5 @@
|
||||||
import { retrievePageByComponentName } from "@/hooks/retrievePageInfoByComponentName";
|
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({
|
export function getThreeLayerByPageName({
|
||||||
lang,
|
lang,
|
||||||
layer = 1,
|
layer = 1,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue