[common/features] refactor: 게시판과 콘텐츠 페이지 레이아웃 분리

This commit is contained in:
2025-07-04 10:12:47 +09:00
parent dd381c3a7f
commit ef2f4f7b9e
3 changed files with 33 additions and 18 deletions
@@ -0,0 +1,27 @@
"use client";
import { useQuery } from "@tanstack/react-query";
import { MenuApi } from "@/entities/menu";
import { getCookie } from "@/shared/lib";
import { ENDPOINT } from "@/shared/config";
import { PageLayout } from "@/shared/ui/page-layout";
export default function ContentsLayout({
children,
}: {
children: React.ReactNode;
}) {
const menuCd = getCookie("menu-code-key");
const { data } = useQuery({
queryKey: [ENDPOINT.CMS_SERVICE.MENUS, menuCd],
queryFn: () => MenuApi.getMenuInfo(menuCd!),
enabled: !!menuCd,
});
const menuPaths = data?.menuPath?.split(">").map((path) => path.trim());
return (
<PageLayout title={data?.menuKornNm ?? ""} menuPaths={menuPaths ?? []}>
{children}
</PageLayout>
);
}
@@ -1,3 +1,5 @@
"use client";
import { MenuApi } from "@/entities/menu";
import { ENDPOINT } from "@/shared/config";
import { getCookie, useMenuStore } from "@/shared/lib";
@@ -1,12 +1,10 @@
"use client";
import { usePathname, useRouter } from "next/navigation";
import { useQuery, useQueryClient } from "@tanstack/react-query";
import { useQueryClient } from "@tanstack/react-query";
import { BaseLayout } from "@common/components";
import { MenuApi, type MenuRole } from "@/entities/menu";
import { ENDPOINT } from "@/shared/config";
import { getCookie, useMenuStore } from "@/shared/lib";
import { PageLayout } from "@/shared/ui/page-layout";
import type { MenuRole } from "@/entities/menu";
import { useMenuStore } from "@/shared/lib";
export default function WithBaseLayout({
children,
@@ -16,16 +14,6 @@ export default function WithBaseLayout({
const router = useRouter();
const pathname = usePathname();
const queryClient = useQueryClient();
const bbsInfo = useMenuStore((state) => state.bbsInfo);
const menuCd = getCookie("menu-code-key");
const { data } = useQuery({
queryKey: [ENDPOINT.CMS_SERVICE.MENUS, menuCd],
queryFn: () => MenuApi.getMenuInfo(menuCd!),
enabled: !!menuCd,
});
const menuPaths = data?.menuPath?.split(">").map((path) => path.trim());
const setCurrentMenuInfo = useMenuStore((state) => state.setCurrentMenuInfo);
@@ -40,9 +28,7 @@ export default function WithBaseLayout({
currentPath={pathname ?? ""}
handleMenuClick={handleMenuClick}
>
<PageLayout title={bbsInfo?.bbsNm ?? ""} menuPaths={menuPaths ?? []}>
{children}
</PageLayout>
{children}
</BaseLayout>
);
}