From 3f293c90beb58ce206a66ff444d7acfc41b56429 Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Sun, 14 Sep 2025 13:27:37 +0000 Subject: (김준회) Vendor Pool 구현 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/[lng]/evcp/(evcp)/vendor-pool/page.tsx | 79 ++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 app/[lng]/evcp/(evcp)/vendor-pool/page.tsx (limited to 'app') diff --git a/app/[lng]/evcp/(evcp)/vendor-pool/page.tsx b/app/[lng]/evcp/(evcp)/vendor-pool/page.tsx new file mode 100644 index 00000000..6708e674 --- /dev/null +++ b/app/[lng]/evcp/(evcp)/vendor-pool/page.tsx @@ -0,0 +1,79 @@ +import * as React from "react" +import { type SearchParams } from "@/types/table" + +import { getValidFilters } from "@/lib/data-table" +import { Skeleton } from "@/components/ui/skeleton" +import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton" +import { Shell } from "@/components/shell" +import { getVendorPools } from "@/lib/vendor-pool/service" +import { vendorPoolSearchParamsCache } from "@/lib/vendor-pool/validations" +import { VendorPoolTable } from "@/lib/vendor-pool/table/vendor-pool-table" +import { InformationButton } from "@/components/information/information-button" + +interface VendorPoolPageProps { + searchParams: Promise +} + +export default async function VendorPoolPage(props: VendorPoolPageProps) { + const searchParams = await props.searchParams + const search = vendorPoolSearchParamsCache.parse(searchParams) + + const validFilters = getValidFilters(search.filters) + + const promises = Promise.all([ + getVendorPools({ + ...search, + filters: validFilters, + }), + ]) + + return ( + +
+
+
+
+

+ Vendor Pool +

+ +
+
+
+
+ + }> + + + } + > + + +
+ ) +} + +// 실제 데이터를 받아서 VendorPoolTable에 전달하는 컴포넌트 +function VendorPoolTableWrapper({ promises }: { promises: Promise }) { + const [{ data, pageCount }] = React.use(promises) + + return ( + + ) +} -- cgit v1.2.3