- 관 용도, 관 재질 공통 코드 Store 등록 - I/I 분석 페이지 시도, 시군구 공통 코드 적용 - I/I 분석 페이지 환경청 삭제 - commonStore.ts 삭제 - Store 데이터 호출 로직을 layout.tsx로 이동
48 lines
1.1 KiB
TypeScript
48 lines
1.1 KiB
TypeScript
"use client";
|
|
|
|
import React, { useEffect } from 'react';
|
|
import { usePathname, useRouter } from "next/navigation";
|
|
import { useQueryClient } from "@tanstack/react-query";
|
|
import { BaseLayout } from "@common/components";
|
|
import type { MenuItem } from "@/entities/menu";
|
|
import { useMenuStore } from "@/shared/lib";
|
|
import useStore from '../store/useStore';
|
|
|
|
export default function MapLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode;
|
|
}) {
|
|
const router = useRouter();
|
|
const pathname = usePathname();
|
|
const queryClient = useQueryClient();
|
|
|
|
const setCurrentMenuInfo = useMenuStore((state) => state.setCurrentMenuInfo);
|
|
|
|
const { fetchCtpvData, fetchSggData, fetchBIZ_SE_CD, fetchBIZ_TY_CD } = useStore();
|
|
|
|
|
|
// 시도, 시군구 호출
|
|
useEffect(() => {
|
|
fetchCtpvData();
|
|
fetchSggData();
|
|
fetchBIZ_SE_CD();
|
|
fetchBIZ_TY_CD();
|
|
}, []);
|
|
|
|
const handleMenuClick = (item: MenuItem) => {
|
|
setCurrentMenuInfo(item);
|
|
router.push(item.urlPath);
|
|
};
|
|
|
|
return (
|
|
<BaseLayout
|
|
queryClient={queryClient}
|
|
currentPath={pathname ?? ""}
|
|
handleMenuClick={handleMenuClick}
|
|
>
|
|
{children}
|
|
</BaseLayout>
|
|
);
|
|
}
|