summaryrefslogtreecommitdiff
path: root/lib/vendor-document-list/ship/enhanced-documents-table.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'lib/vendor-document-list/ship/enhanced-documents-table.tsx')
-rw-r--r--lib/vendor-document-list/ship/enhanced-documents-table.tsx35
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>