- Bumped versions for several packages including: - @emotion/styled from ^11.14.0 to ^11.14.1 - @maptiler/sdk from ^2.4.0 to ^2.5.1 - @mui/icons-material from ^7.1.0 to ^7.3.6 - @mui/material from ^7.1.0 to ^7.3.6 - @mui/styled-engine-sc from ^6.0.0-alpha.18 to ^6.4.9 - @mui/x-charts from ^7.16.0 to ^7.29.1 - @mui/x-date-pickers from ^7.17.0 to ^7.29.4 - @next/third-parties from ^15.1.0 to ^15.5.7 - axios from ^1.7.7 to ^1.13.2 - dayjs from ^1.11.13 to ^1.11.19 - jspdf from ^3.0.1 to ^3.0.4 - next from ^14.2.20 to ^15.5.7 - next-themes from ^0.3.0 to ^0.4.6 - npm from ^10.8.2 to ^10.9.4 - react from ^18.0.0 to ^18.3.1 - react-dom from ^18 to ^18.3.1 - react-easy-crop from ^5.1.0 to ^5.5.6 - react-toastify from ^10.0.6 to ^11.0.5 - sharp from ^0.34.1 to ^0.34.5 - styled-components from ^6.1.11 to ^6.1.19 - stylis from ^4.3.4 to ^4.3.6 - swiper from ^11.1.9 to ^11.2.10 - postcss from ^8 to ^8.5.6 - prettier from ^3.5.3 to ^3.7.4 - tailwindcss from ^3.4.1 to ^3.4.18
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
import Content from "@/components/panel/Content";
|
|
import { defineAbilitiesFor } from "@/lib/ability";
|
|
import { getUser } from "@/lib/auth";
|
|
import { redirect } from "next/navigation";
|
|
import { cookies } from "next/headers";
|
|
import { fetchReq } from "@/lib/req";
|
|
|
|
async function LayoutPanel({ children }) {
|
|
const user = await getUser();
|
|
const ability = defineAbilitiesFor(user);
|
|
|
|
if (!ability.can("access", "Panel")) {
|
|
return redirect("/");
|
|
}
|
|
|
|
let representationInfo = null;
|
|
const API_URL = process.env.NEXT_PUBLIC_API_URL;
|
|
|
|
try {
|
|
const cookieStore = await cookies();
|
|
const userInfo = cookieStore.get("userInfo");
|
|
const accessToken = cookieStore.get("access_token");
|
|
|
|
if (userInfo && accessToken) {
|
|
const parsedUserInfo = JSON.parse(userInfo.value);
|
|
const representationUuid = parsedUserInfo?.representation_uuid;
|
|
|
|
if (representationUuid) {
|
|
representationInfo = await fetchReq(
|
|
`${API_URL}/api/v1/representation/${representationUuid}`,
|
|
{
|
|
headers: {
|
|
Authorization: `Bearer ${accessToken.value}`,
|
|
},
|
|
}
|
|
);
|
|
}
|
|
}
|
|
} catch (error) {
|
|
console.error("Error fetching representation info:", error);
|
|
}
|
|
|
|
return <Content children={children} representationInfo={representationInfo} />;
|
|
}
|
|
|
|
export default LayoutPanel;
|