diff options
Diffstat (limited to 'lib/vendor-document-list/ship')
| -rw-r--r-- | lib/vendor-document-list/ship/enhanced-documents-table.tsx | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/lib/vendor-document-list/ship/enhanced-documents-table.tsx b/lib/vendor-document-list/ship/enhanced-documents-table.tsx index 5b3b392d..13f8f8d4 100644 --- a/lib/vendor-document-list/ship/enhanced-documents-table.tsx +++ b/lib/vendor-document-list/ship/enhanced-documents-table.tsx @@ -69,7 +69,7 @@ export function SimplifiedDocumentsTable({ const statsData = React.useMemo(() => statsResult as Awaited<ReturnType<typeof getUserVendorDocumentStats>>, [statsResult]) const { data, pageCount, drawingKind } = documentData - const { primaryDrawingKind, b4Stats: serverB4Stats, projectCodeStats: serverProjectCodeStats } = statsData + const { primaryDrawingKind, projectCodeStats: serverProjectCodeStats, projectB4Stats: serverProjectB4Stats } = statsData // ๐ฅ URL searchParams๋ฅผ ํตํ ํํฐ ์ํ ๊ด๋ฆฌ const [{ b4FilterType, projectCode, page }, setQueryStates] = useQueryStates( @@ -282,11 +282,31 @@ export function SimplifiedDocumentsTable({ return activeDrawingKind ? DRAWING_KIND_INFO[activeDrawingKind] : null }, [activeDrawingKind]) - // ๐ฅ B4 ๋ฌธ์ ํต๊ณ - ์๋ฒ์์ ๋ฐ์์จ ์ ์ฒด ํต๊ณ ์ฌ์ฉ + // ๐ฅ B4 ๋ฌธ์ ํต๊ณ - ํ๋ก์ ํธ ํํฐ๋ง์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๊ณ์ฐ (์๋ฒ์์ ๋ฐ์์จ ์ ์ฒด ํต๊ณ ๊ธฐ๋ฐ) const b4Stats = React.useMemo(() => { - if (!hasB4Documents || !serverB4Stats) return null - return serverB4Stats - }, [hasB4Documents, serverB4Stats]) + if (!hasB4Documents || !serverProjectB4Stats) return null + + // ์ ํ๋ ํ๋ก์ ํธ์ ๋ฐ๋ผ B4 ํต๊ณ ๊ณ์ฐ + if (projectCode === 'all') { + // ์ ์ฒด ํ๋ก์ ํธ์ B4 ํต๊ณ + const totalGttDeliverable = serverProjectB4Stats.reduce((sum, stat) => sum + stat.gttDeliverableCount, 0) + const totalShiInput = serverProjectB4Stats.reduce((sum, stat) => sum + stat.shiInputCount, 0) + return { + gttDeliverableCount: totalGttDeliverable, + shiInputCount: totalShiInput, + } + } else { + // ํน์ ํ๋ก์ ํธ์ B4 ํต๊ณ + const projectStats = serverProjectB4Stats.find(stat => stat.code === projectCode) + return projectStats ? { + gttDeliverableCount: projectStats.gttDeliverableCount, + shiInputCount: projectStats.shiInputCount, + } : { + gttDeliverableCount: 0, + shiInputCount: 0, + } + } + }, [hasB4Documents, serverProjectB4Stats, projectCode]) return ( <div className="w-full space-y-4"> @@ -325,7 +345,7 @@ export function SimplifiedDocumentsTable({ <span>All Projects</span> </div> </SelectItem> - {projectCodeStats.filter(({ code }) => code !== 'Unknown').map(({ code, count }) => ( + {projectCodeStats.filter(({ code }) => code !== 'Unknown').map(({ code }) => ( <SelectItem key={code} value={code}> <div className="flex items-center justify-between w-full"> <span className="font-mono">{code}</span> |
