diff options
Diffstat (limited to 'lib/vendor-document-list/ship/enhanced-documents-table.tsx')
| -rw-r--r-- | lib/vendor-document-list/ship/enhanced-documents-table.tsx | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/lib/vendor-document-list/ship/enhanced-documents-table.tsx b/lib/vendor-document-list/ship/enhanced-documents-table.tsx index d92f16dd..3eda0ffb 100644 --- a/lib/vendor-document-list/ship/enhanced-documents-table.tsx +++ b/lib/vendor-document-list/ship/enhanced-documents-table.tsx @@ -20,7 +20,7 @@ import { getSimplifiedDocumentColumns } from "./enhanced-doc-table-columns" import { EnhancedDocTableToolbarActions } from "./enhanced-doc-table-toolbar-actions" import { useQueryStates, parseAsString, parseAsStringEnum, parseAsInteger } from "nuqs" -// ๐ฅ Project Code ํํฐ๋ฅผ ์ํ Select ์ปดํฌ๋ํธ import ์ถ๊ฐ +// Project Code ํํฐ๋ฅผ ์ํ Select ์ปดํฌ๋ํธ import ์ถ๊ฐ import { Select, SelectContent, @@ -60,18 +60,18 @@ export function SimplifiedDocumentsTable({ allPromises, onDataLoaded, }: SimplifiedDocumentsTableProps) { - // ๐ฅ React.use() ๊ฒฐ๊ณผ๋ฅผ ์์ ํ๊ฒ ์ฒ๋ฆฌ + // React.use() ๊ฒฐ๊ณผ๋ฅผ ์์ ํ๊ฒ ์ฒ๋ฆฌ const promiseResults = React.use(allPromises) const [documentResult, statsResult] = promiseResults - // ๐ฅ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ถํด๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์
+ // ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ถํด๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์
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, projectCodeStats: serverProjectCodeStats, projectB4Stats: serverProjectB4Stats } = statsData - // ๐ฅ URL searchParams๋ฅผ ํตํ ํํฐ ์ํ ๊ด๋ฆฌ + // URL searchParams๋ฅผ ํตํ ํํฐ ์ํ ๊ด๋ฆฌ const [{ b4FilterType, projectCode, page }, setQueryStates] = useQueryStates( { b4FilterType: parseAsStringEnum<'all' | 'gtt_deliverable' | 'shi_input'>(['all', 'gtt_deliverable', 'shi_input']).withDefault('all'), @@ -88,25 +88,25 @@ export function SimplifiedDocumentsTable({ // eslint-disable-next-line @typescript-eslint/no-unused-vars const _ensurePageIsInState = page - // ๐ฅ ์๋ฒ์์ ๋ฐ์์จ ํ๋ก์ ํธ ์ฝ๋ ํต๊ณ ์ฌ์ฉ (ํํฐ๋ง๊ณผ ๋ฌด๊ดํ ์ ์ฒด ํต๊ณ) + // ์๋ฒ์์ ๋ฐ์์จ ํ๋ก์ ํธ ์ฝ๋ ํต๊ณ ์ฌ์ฉ (ํํฐ๋ง๊ณผ ๋ฌด๊ดํ ์ ์ฒด ํต๊ณ) const projectCodeStats = React.useMemo(() => { return serverProjectCodeStats || [] }, [serverProjectCodeStats]) - // ๐ฅ ๋ฐ์ดํฐ ๋ก๋ ์ฝ๋ฐฑ (์๋ฒ์์ ์ด๋ฏธ ํํฐ๋ง๋์ด ์ด) + // ๋ฐ์ดํฐ ๋ก๋ ์ฝ๋ฐฑ (์๋ฒ์์ ์ด๋ฏธ ํํฐ๋ง๋์ด ์ด) React.useEffect(() => { if (data && onDataLoaded) { onDataLoaded(data) } }, [data, onDataLoaded]) - // ๐ฅ ์ปฌ๋ผ ๋ฉ๋ชจ์ด์ ์ด์
์ต์ ํ (b4FilterType์ ๋ฐ๋ผ ๋์ ๋ณ๊ฒฝ) + // ์ปฌ๋ผ ๋ฉ๋ชจ์ด์ ์ด์
์ต์ ํ (b4FilterType์ ๋ฐ๋ผ ๋์ ๋ณ๊ฒฝ) const columns = React.useMemo( () => getSimplifiedDocumentColumns({ b4FilterType }), [b4FilterType] ) - // ๐ฅ ํํฐ ํ๋๋ค์ ๋ฉ๋ชจ์ด์ ์ด์
+ // ํํฐ ํ๋๋ค์ ๋ฉ๋ชจ์ด์ ์ด์
const advancedFilterFields: DataTableAdvancedFilterField<SimplifiedDocumentsView>[] = React.useMemo(() => [ { id: "docNumber", @@ -206,7 +206,7 @@ export function SimplifiedDocumentsTable({ }, ], []) - // ๐ฅ B4 ์ ์ฉ ํ๋๋ค ๋ฉ๋ชจ์ด์ ์ด์
+ // B4 ์ ์ฉ ํ๋๋ค ๋ฉ๋ชจ์ด์ ์ด์
const b4FilterFields: DataTableAdvancedFilterField<SimplifiedDocumentsView>[] = React.useMemo(() => [ { id: "cGbn", @@ -240,23 +240,23 @@ export function SimplifiedDocumentsTable({ }, ], []) - // ๐ฅ B4 ๋ฌธ์ ์กด์ฌ ์ฌ๋ถ ์ฒดํฌ ๋ฉ๋ชจ์ด์ ์ด์
+ // B4 ๋ฌธ์ ์กด์ฌ ์ฌ๋ถ ์ฒดํฌ ๋ฉ๋ชจ์ด์ ์ด์
const hasB4Documents = React.useMemo(() => { return data.some((doc: SimplifiedDocumentsView) => doc.drawingKind === 'B4') }, [data]) - // ๐ฅ ์ต์ข
ํํฐ ํ๋ ๋ฉ๋ชจ์ด์ ์ด์
+ // ์ต์ข
ํํฐ ํ๋ ๋ฉ๋ชจ์ด์ ์ด์
const finalFilterFields = React.useMemo(() => { return hasB4Documents ? [...advancedFilterFields, ...b4FilterFields] : advancedFilterFields }, [hasB4Documents, advancedFilterFields, b4FilterFields]) - // ๐ฅ ํ
์ด๋ธ ์ด๊ธฐ ์ํ ๋ฉ๋ชจ์ด์ ์ด์
+ // ํ
์ด๋ธ ์ด๊ธฐ ์ํ ๋ฉ๋ชจ์ด์ ์ด์
const tableInitialState = React.useMemo(() => ({ sorting: [{ id: "createdAt" as const, desc: true }], columnPinning: { right: ["actions"] }, }), []) - // ๐ฅ getRowId ํจ์ ๋ฉ๋ชจ์ด์ ์ด์
+ // getRowId ํจ์ ๋ฉ๋ชจ์ด์ ์ด์
const getRowId = React.useCallback((originalRow: SimplifiedDocumentsView) => String(originalRow.documentId), []) const { table } = useDataTable({ @@ -272,17 +272,17 @@ export function SimplifiedDocumentsTable({ columnResizeMode: "onEnd", }) - // ๐ฅ ํ์ฑ drawingKind ๋ฉ๋ชจ์ด์ ์ด์
+ // ํ์ฑ drawingKind ๋ฉ๋ชจ์ด์ ์ด์
const activeDrawingKind = React.useMemo(() => { return drawingKind || primaryDrawingKind }, [drawingKind, primaryDrawingKind]) - // ๐ฅ kindInfo ๋ฉ๋ชจ์ด์ ์ด์
+ // kindInfo ๋ฉ๋ชจ์ด์ ์ด์
const kindInfo = React.useMemo(() => { return activeDrawingKind ? DRAWING_KIND_INFO[activeDrawingKind] : null }, [activeDrawingKind]) - // ๐ฅ B4 ๋ฌธ์ ํต๊ณ - ํ๋ก์ ํธ ํํฐ๋ง์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๊ณ์ฐ (์๋ฒ์์ ๋ฐ์์จ ์ ์ฒด ํต๊ณ ๊ธฐ๋ฐ) + // B4 ๋ฌธ์ ํต๊ณ - ํ๋ก์ ํธ ํํฐ๋ง์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๊ณ์ฐ (์๋ฒ์์ ๋ฐ์์จ ์ ์ฒด ํต๊ณ ๊ธฐ๋ฐ) const b4Stats = React.useMemo(() => { if (!hasB4Documents || !serverProjectB4Stats) return null @@ -324,7 +324,7 @@ export function SimplifiedDocumentsTable({ </div> )} - {/* ๐ฅ ํํฐ ์น์
- Project Code ํํฐ์ B4 ํํฐ๋ฅผ ํจ๊ป ๋ฐฐ์น */} + {/* ํํฐ ์น์
- Project Code ํํฐ์ B4 ํํฐ๋ฅผ ํจ๊ป ๋ฐฐ์น */} <div className="space-y-3"> {/* Project Code ํํฐ ๋๋กญ๋ค์ด */} <div className="flex items-center gap-3 p-4 bg-muted/30 rounded-lg"> @@ -425,6 +425,7 @@ export function SimplifiedDocumentsTable({ table={table} projectType="ship" b4={hasB4Documents && b4FilterType === 'gtt_deliverable'} + projectCodeStats={projectCodeStats} /> </DataTableAdvancedToolbar> </DataTable> |
