summaryrefslogtreecommitdiff
path: root/lib/vendor-document-list/ship
diff options
context:
space:
mode:
Diffstat (limited to 'lib/vendor-document-list/ship')
-rw-r--r--lib/vendor-document-list/ship/enhanced-doc-table-columns.tsx2
-rw-r--r--lib/vendor-document-list/ship/enhanced-documents-table.tsx41
2 files changed, 14 insertions, 29 deletions
diff --git a/lib/vendor-document-list/ship/enhanced-doc-table-columns.tsx b/lib/vendor-document-list/ship/enhanced-doc-table-columns.tsx
index 096f9b24..882ef885 100644
--- a/lib/vendor-document-list/ship/enhanced-doc-table-columns.tsx
+++ b/lib/vendor-document-list/ship/enhanced-doc-table-columns.tsx
@@ -32,7 +32,7 @@ import { SimplifiedDocumentsView } from "@/db/schema"
import { DocumentSelectionContext } from "@/components/ship-vendor-document/user-vendor-document-table-container"
interface GetColumnsProps {
- setRowAction: React.Dispatch<React.SetStateAction<DataTableRowAction<SimplifiedDocumentsView> | null>>
+ setRowAction?: React.Dispatch<React.SetStateAction<DataTableRowAction<SimplifiedDocumentsView> | null>>
}
// 날짜 표시 컴포넌트 (간단 버전)
diff --git a/lib/vendor-document-list/ship/enhanced-documents-table.tsx b/lib/vendor-document-list/ship/enhanced-documents-table.tsx
index cae0fe06..dabb05bb 100644
--- a/lib/vendor-document-list/ship/enhanced-documents-table.tsx
+++ b/lib/vendor-document-list/ship/enhanced-documents-table.tsx
@@ -4,17 +4,14 @@
import React from "react"
import type {
DataTableAdvancedFilterField,
- DataTableFilterField,
- DataTableRowAction,
} from "@/types/table"
import { useDataTable } from "@/hooks/use-data-table"
import { getUserVendorDocuments, getUserVendorDocumentStats } from "@/lib/vendor-document-list/enhanced-document-service"
import { DataTableAdvancedToolbar } from "@/components/data-table/data-table-advanced-toolbar"
-import { toast } from "sonner"
import { Badge } from "@/components/ui/badge"
import { Button } from "@/components/ui/button"
-import { FileText, FileInput, FileOutput, FolderOpen, Building2 } from "lucide-react"
+import { FileText, FileInput, FileOutput, Building2 } from "lucide-react"
import { Label } from "@/components/ui/label"
import { DataTable } from "@/components/data-table/data-table"
@@ -67,8 +64,11 @@ export function SimplifiedDocumentsTable({
const [documentResult, statsResult] = promiseResults
// 🔥 데이터 구조분해를 메모이제이션
- const { data, pageCount, total, drawingKind, vendorInfo } = React.useMemo(() => documentResult, [documentResult])
- const { stats, totalDocuments, primaryDrawingKind } = React.useMemo(() => statsResult, [statsResult])
+ const documentData = React.useMemo(() => documentResult as Awaited<ReturnType<typeof getUserVendorDocuments>>, [documentResult])
+ const statsData = React.useMemo(() => statsResult as Awaited<ReturnType<typeof getUserVendorDocumentStats>>, [statsResult])
+
+ const { data, pageCount, drawingKind } = documentData
+ const { primaryDrawingKind, b4Stats: serverB4Stats } = statsData
// 🔥 B4 필터 상태 추가
const [b4FilterType, setB4FilterType] = React.useState<'all' | 'gtt_deliverable' | 'shi_input'>('all')
@@ -98,7 +98,7 @@ export function SimplifiedDocumentsTable({
// 🔥 B4 및 Project Code 필터링된 데이터 메모이제이션
const filteredData = React.useMemo(() => {
- let result = data
+ let result: SimplifiedDocumentsView[] = data
// B4 필터 적용
if (b4FilterType !== 'all') {
@@ -126,15 +126,9 @@ export function SimplifiedDocumentsTable({
}
}, [filteredData, handleDataLoaded])
- // 🔥 상태들을 안정적으로 관리
- const [rowAction, setRowAction] = React.useState<DataTableRowAction<SimplifiedDocumentsView> | null>(null)
- const [expandedRows] = React.useState<Set<string>>(() => new Set())
-
// 🔥 컬럼 메모이제이션 최적화
const columns = React.useMemo(
- () => getSimplifiedDocumentColumns({
- setRowAction,
- }),
+ () => getSimplifiedDocumentColumns({}),
[]
)
@@ -284,7 +278,7 @@ export function SimplifiedDocumentsTable({
// 🔥 테이블 초기 상태 메모이제이션
const tableInitialState = React.useMemo(() => ({
- sorting: [{ id: "createdAt", desc: true }],
+ sorting: [{ id: "createdAt" as const, desc: true }],
columnPinning: { right: ["actions"] },
}), [])
@@ -314,20 +308,11 @@ export function SimplifiedDocumentsTable({
return activeDrawingKind ? DRAWING_KIND_INFO[activeDrawingKind] : null
}, [activeDrawingKind])
- // 🔥 B4 문서 통계 계산
+ // 🔥 B4 문서 통계 - 서버에서 받아온 전체 통계 사용
const b4Stats = React.useMemo(() => {
- if (!hasB4Documents) return null
-
- const gttDeliverableCount = data.filter(doc =>
- doc.drawingKind === 'B4' && doc.drawingMoveGbn === '도면입수'
- ).length
-
- const shiInputCount = data.filter(doc =>
- doc.drawingKind === 'B4' && doc.drawingMoveGbn === '도면제출'
- ).length
-
- return { gttDeliverableCount, shiInputCount }
- }, [data, hasB4Documents])
+ if (!hasB4Documents || !serverB4Stats) return null
+ return serverB4Stats
+ }, [hasB4Documents, serverB4Stats])
return (
<div className="w-full space-y-4">