Side Menu layer 2 updated

This commit is contained in:
2025-01-08 12:06:30 +03:00
parent 2dd267a570
commit 2a80db4544
7 changed files with 319 additions and 113 deletions

View File

@@ -43,6 +43,15 @@ async function retrieveAvailableEvents() {
return decrpytAccessObject ? JSON.parse(decrpytAccessObject) : null;
}
async function retrieveavailablePages() {
const cookieStore = await cookies();
const encrpytAccessObject = cookieStore.get("availablePages")?.value || "";
const decrpytAccessObject = await nextCrypto.decrypt(encrpytAccessObject);
return decrpytAccessObject
? JSON.parse(decrpytAccessObject)?.availablePages || []
: null;
}
async function retrieveAvatarInfo() {
const response = await fetchDataWithToken(
`${baseUrl}/authentication/avatar`,
@@ -119,4 +128,5 @@ export {
retrieveAccessObjects,
retrieveAvailableEvents,
retrieveUserSelection,
retrieveavailablePages,
};

View File

@@ -7,23 +7,70 @@ import { PagesInfosAndEndpoints } from "@/apimaps/mappingApi";
const availableEventsURL = `${baseUrl}/access/endpoints/available`;
async function checkPageAvaliablityByEndpoint(availableEvents: any) {
let availablePages: string[] = [];
const availableEventsList: string[] = availableEvents || [];
PagesInfosAndEndpoints.map((page) => {
const pageInfo = page?.pageInfo?.tr || [];
function iterateOverPageLayers(
availableEventsList: any,
availablePages: any,
iterLevel: any
) {
console.log("iterLevel", iterLevel);
if (Array.isArray(iterLevel)) {
iterLevel.map((page: any) => {
const pageInfo = page?.pageInfo?.tr || [];
if (pageInfo.length > 0) {
pageInfo.map((pageInfoItem: any) => {
const endpoint = pageInfoItem?.endpoint || "";
if (
availableEventsList.includes(endpoint) &&
!availablePages.includes(page.name)
) {
if (page.name) {
availablePages.push(page.name);
}
return;
}
});
}
});
} else {
const pageInfo = iterLevel?.pageInfo?.tr || [];
if (pageInfo.length > 0) {
pageInfo.map((pageInfoItem) => {
pageInfo.map((pageInfoItem: any) => {
const endpoint = pageInfoItem?.endpoint || "";
if (
availableEventsList.includes(endpoint) &&
!availablePages.includes(page.name)
!availablePages.includes(iterLevel.name)
) {
availablePages.push(page.name);
availablePages.push(iterLevel.name);
return;
}
});
}
}
}
async function checkPageAvaliablityByEndpoint(availableEvents: any) {
let availablePages: string[] = [];
const availableEventsList: string[] = availableEvents || [];
let pageLayers = null;
PagesInfosAndEndpoints.map((page) => {
if (page.subCategories) {
pageLayers = page?.subCategories;
if (pageLayers) {
iterateOverPageLayers(availableEventsList, availablePages, pageLayers);
const nestedLayers = pageLayers.find(
(layer) => layer.subCategories
)?.subCategories;
if (nestedLayers) {
iterateOverPageLayers(
availableEventsList,
availablePages,
nestedLayers
);
}
}
}
iterateOverPageLayers(availableEventsList, availablePages, page);
});
return availablePages;
}
@@ -44,15 +91,22 @@ async function setAvailableEvents() {
const availableEventDataRes = await checkPageAvaliablityByEndpoint(
availableEventData
);
console.log("availableEventDataRes", availableEventDataRes);
const availableEvents = await nextCrypto.encrypt(
JSON.stringify({ availableEvents: availableEventData })
);
const availablePages = await nextCrypto.encrypt(
JSON.stringify({ availablePages: availableEventDataRes })
);
cookieStore.set({
name: "availableEvents",
value: availableEvents,
...cookieObject,
});
cookieStore.set({
name: "availablePages",
value: availablePages,
...cookieObject,
});
}
}