From 2caa8093ac616f14d48430ce2f485f805d6faa53 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Wed, 28 May 2025 06:35:43 +0000 Subject: (최겸) 기술영업 아이템 조회 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/[lng]/evcp/(evcp)/items-tech/layout.tsx | 38 ++++++++++++++++++ app/[lng]/evcp/(evcp)/items-tech/page.tsx | 62 +++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 app/[lng]/evcp/(evcp)/items-tech/layout.tsx create mode 100644 app/[lng]/evcp/(evcp)/items-tech/page.tsx (limited to 'app') diff --git a/app/[lng]/evcp/(evcp)/items-tech/layout.tsx b/app/[lng]/evcp/(evcp)/items-tech/layout.tsx new file mode 100644 index 00000000..d375059b --- /dev/null +++ b/app/[lng]/evcp/(evcp)/items-tech/layout.tsx @@ -0,0 +1,38 @@ +import * as React from "react" +import { ItemTechContainer } from "@/components/items-tech/item-tech-container" +import { Shell } from "@/components/shell" +import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton" + +// Layout 컴포넌트는 서버 컴포넌트입니다 +export default function ItemsShipLayout({ + children, +}: { + children: React.ReactNode +}) { + // 아이템 타입 정의 + const itemTypes = [ + { id: "ship", name: "조선 아이템" }, + { id: "top", name: "해양 TOP" }, + { id: "hull", name: "해양 HULL" }, + ] + + return ( + + + } + > + + {children} + + + + ) +} diff --git a/app/[lng]/evcp/(evcp)/items-tech/page.tsx b/app/[lng]/evcp/(evcp)/items-tech/page.tsx new file mode 100644 index 00000000..52ff519d --- /dev/null +++ b/app/[lng]/evcp/(evcp)/items-tech/page.tsx @@ -0,0 +1,62 @@ +import * as React from "react" +import { type SearchParams } from "@/types/table" + +import { getValidFilters } from "@/lib/data-table" +import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton" +import { searchParamsCache } from "@/lib/items-tech/validations" +import { getShipbuildingItems, getOffshoreTopItems, getOffshoreHullItems } from "@/lib/items-tech/service" +import { OffshoreTopTable } from "@/lib/items-tech/table/top/offshore-top-table" +import { OffshoreHullTable } from "@/lib/items-tech/table/hull/offshore-hull-table" + +// 대소문자 문제 해결 - 실제 파일명에 맞게 import +import { ItemsShipTable } from "@/lib/items-tech/table/ship/Items-ship-table" + +interface IndexPageProps { + searchParams: Promise +} + +export default async function IndexPage({ searchParams }: IndexPageProps) { + const params = await searchParams + const search = searchParamsCache.parse(params) + const validFilters = getValidFilters(search.filters || []) + + // URL에서 아이템 타입 가져오기 + const itemType = params.type || "ship" + + return ( +
+ {itemType === "ship" && ( + result)} + /> + )} + + {itemType === "top" && ( + result)} + /> + )} + + {itemType === "hull" && ( + result)} + /> + )} +
+ ) +} -- cgit v1.2.3