"use server"; import React from "react"; import Link from "next/link"; import { redirect } from "next/navigation"; import { RefreshCcw, PlusCircle } from "lucide-react"; import { decryptQuery, defaultPagination, handleFormSubmission, } from "@/apicalls/test"; import { TableComponent } from "@/components/commons/Table"; import Pagination from "@/components/commons/pagination"; import MainBodyWithHeader from "@/components/defaultLayout/MainBodyWithHeader"; import { createBuild, retrieveBuildList, updateBuild, } from "@/apicalls/building/build"; import { checkAccessTokenIsValid, retrieveUserSelection, } from "@/apicalls/cookies/token"; import { retrievePageInfoByComponentName } from "@/hooks/retrievePageInfoByComponentName"; import { checkPageAvaliable } from "@/hooks/checkpageAvaliable"; const BuildinPage = async ({ searchParams }: { searchParams: any }) => { const buildKey = "building"; const pageName = "BuildingPage"; const searchParamsKeys = await searchParams; if (!searchParamsKeys?.q) { const defaultURL = await defaultPagination(); redirect(`/${buildKey}?q=${defaultURL}`); } const queryEncrypt = await decryptQuery(searchParamsKeys?.q); if (!(await checkAccessTokenIsValid())) { redirect("/login/email"); } const user = await retrieveUserSelection(); const tableValues = { endpoint: "building/build/list", name: "table", url: "/building", function: retrieveBuildList, data: [], headers: {}, validation: {}, }; const createValues = { endpoint: "building/build/create", name: "create", url: "/building/create", function: createBuild, data: [], headers: {}, validation: {}, }; const updateValues = { endpoint: "building/build/update/{build_uu_id}", function: updateBuild, name: "update", url: "/building/update", data: [], headers: {}, validation: {}, }; let restrictions: any = { update: updateValues, create: createValues, table: tableValues, }; if (!user?.lang) { return ( User selection is not successfully retrieved.} /> ); } else { const pageContent = retrievePageInfoByComponentName(pageName, user?.lang); const restrictionsChecked = await checkPageAvaliable({ pageContent, restrictions, queryEncrypt, }); if (!restrictionsChecked || !restrictionsChecked?.table) { return ( This user does not have access to this page.} /> ); } const BuildingPage = (

Dashboard

Welcome to your dashboard

{restrictionsChecked?.create && ( Create )}

{JSON.stringify(queryEncrypt)}

{restrictionsChecked && (
)}
); return ( <> ); } }; export default BuildinPage;