summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-10-13 00:22:54 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-10-13 00:22:54 +0000
commit89274bffa596ffdfc4275fb8d11cdb02ff9a2d02 (patch)
tree8597ef56c39ac4913eacdb0fc663b5fe80de127b /app
parent00092099271ff743ac195511c03994e80f91a2e9 (diff)
(최겸) 기술영업 import 수정 2
Diffstat (limited to 'app')
-rw-r--r--app/[lng]/evcp/(evcp)/(sales)/tech-contact-possible-items/page.tsx71
1 files changed, 42 insertions, 29 deletions
diff --git a/app/[lng]/evcp/(evcp)/(sales)/tech-contact-possible-items/page.tsx b/app/[lng]/evcp/(evcp)/(sales)/tech-contact-possible-items/page.tsx
index 5bc36790..cf35530d 100644
--- a/app/[lng]/evcp/(evcp)/(sales)/tech-contact-possible-items/page.tsx
+++ b/app/[lng]/evcp/(evcp)/(sales)/tech-contact-possible-items/page.tsx
@@ -1,11 +1,11 @@
import { Suspense } from "react"
-import { SearchParams } from "@/types/table"
import { Shell } from "@/components/shell"
-import { ContactPossibleItemsTable } from "@/lib/contact-possible-items/table/contact-possible-items-table"
+import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton"
import { getContactPossibleItems } from "@/lib/contact-possible-items/service"
import { searchParamsCache } from "@/lib/contact-possible-items/validations"
-import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton"
-
+import { ContactPossibleItemsTable } from "@/lib/contact-possible-items/table/contact-possible-items-table"
+import { getValidFilters } from "@/lib/data-table"
+import { type SearchParams } from "@/types/table"
interface ContactPossibleItemsPageProps {
searchParams: Promise<SearchParams>
@@ -14,43 +14,56 @@ interface ContactPossibleItemsPageProps {
export default async function ContactPossibleItemsPage({
searchParams,
}: ContactPossibleItemsPageProps) {
+ // ✅ searchParams 파싱
const resolvedSearchParams = await searchParams
const search = searchParamsCache.parse(resolvedSearchParams)
- const contactPossibleItemsPromise = getContactPossibleItems(search)
+ console.log("Parsed search params:", search)
+
+ const validFilters = getValidFilters(search.filters)
+
+ // ✅ 모든 데이터를 병렬로 로드
+ const promises = Promise.all([
+ getContactPossibleItems({
+ ...search,
+ filters: validFilters,
+ }),
+ ])
return (
- <Shell className="gap-2">
+ <Shell className="gap-4">
+ {/* ═══════════════════════════════════════════════════════════════ */}
+ {/* 페이지 헤더 */}
+ {/* ═══════════════════════════════════════════════════════════════ */}
<div className="flex items-center justify-between space-y-2">
<div className="flex items-center justify-between space-y-2">
<div>
- <h2 className="text-2xl font-bold tracking-tight">
- 담당자별 자재 관리
- </h2>
- {/* <p className="text-muted-foreground">
- 기술영업 담당자별 자재를 관리합니다.
- </p> */}
+ <h2 className="text-2xl font-bold tracking-tight">
+ 담당자별 자재 관리
+ </h2>
+ <p className="text-muted-foreground">
+ 기술영업 담당자별 자재를 관리합니다.
+ </p>
+ </div>
</div>
</div>
- </div>
-
- <Suspense
- fallback={
- <DataTableSkeleton
- columnCount={12}
- searchableColumnCount={2}
- filterableColumnCount={3}
- cellWidths={["10rem", "10rem", "12rem", "8rem", "8rem"]}
- shrinkZero
- />
- }
- >
- <ContactPossibleItemsTable
- contactPossibleItemsPromise={contactPossibleItemsPromise}
+ {/* ═══════════════════════════════════════════════════════════════ */}
+ {/* 메인 테이블 */}
+ {/* ═══════════════════════════════════════════════════════════════ */}
+ <Suspense
+ fallback={
+ <DataTableSkeleton
+ columnCount={12}
+ searchableColumnCount={2}
+ filterableColumnCount={3}
+ cellWidths={["10rem", "10rem", "12rem", "8rem", "8rem"]}
+ shrinkZero
/>
- </Suspense>
-
+ }
+ >
+ <ContactPossibleItemsTable promises={promises} />
+ </Suspense>
</Shell>
)
} \ No newline at end of file