summaryrefslogtreecommitdiff
path: root/lib/tech-vendors/table/tech-vendors-table.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tech-vendors/table/tech-vendors-table.tsx')
-rw-r--r--lib/tech-vendors/table/tech-vendors-table.tsx22
1 files changed, 18 insertions, 4 deletions
diff --git a/lib/tech-vendors/table/tech-vendors-table.tsx b/lib/tech-vendors/table/tech-vendors-table.tsx
index 63ca8fcc..125e39dc 100644
--- a/lib/tech-vendors/table/tech-vendors-table.tsx
+++ b/lib/tech-vendors/table/tech-vendors-table.tsx
@@ -17,6 +17,7 @@ import { TechVendor, techVendors, TechVendorWithAttachments } from "@/db/schema/
import { TechVendorsTableToolbarActions } from "./tech-vendors-table-toolbar-actions"
import { UpdateVendorSheet } from "./update-vendor-sheet"
import { getVendorStatusIcon } from "../utils"
+import { TechVendorPossibleItemsViewDialog } from "./tech-vendor-possible-items-view-dialog"
// import { ViewTechVendorLogsDialog } from "./view-tech-vendors-logs-dialog"
interface TechVendorsTableProps {
@@ -34,14 +35,22 @@ export function TechVendorsTable({ promises }: TechVendorsTableProps) {
const [isCompact, setIsCompact] = React.useState<boolean>(false)
const [rowAction, setRowAction] = React.useState<DataTableRowAction<TechVendor> | null>(null)
+ const [itemsDialogOpen, setItemsDialogOpen] = React.useState(false)
+ const [selectedVendorForItems, setSelectedVendorForItems] = React.useState<TechVendor | null>(null)
// **router** 획득
const router = useRouter()
- // getColumns() 호출 시, router를 주입
+ // openItemsDialog 함수 정의
+ const openItemsDialog = React.useCallback((vendor: TechVendor) => {
+ setSelectedVendorForItems(vendor)
+ setItemsDialogOpen(true)
+ }, [])
+
+ // getColumns() 호출 시, router와 openItemsDialog를 주입
const columns = React.useMemo(
- () => getColumns({ setRowAction, router }),
- [setRowAction, router]
+ () => getColumns({ setRowAction, router, openItemsDialog }),
+ [setRowAction, router, openItemsDialog]
)
// 상태 한글 변환 유틸리티 함수
@@ -133,7 +142,7 @@ export function TechVendorsTable({ promises }: TechVendorsTableProps) {
enableAdvancedFilter: true,
initialState: {
sorting: [{ id: "createdAt", desc: true }],
- columnPinning: { right: ["actions"] },
+ columnPinning: { right: ["actions", "possibleItems"] },
},
getRowId: (originalRow) => String(originalRow.id),
shallow: false,
@@ -173,6 +182,11 @@ export function TechVendorsTable({ promises }: TechVendorsTableProps) {
onOpenChange={() => setRowAction(null)}
vendor={rowAction?.row.original ?? null}
/>
+ <TechVendorPossibleItemsViewDialog
+ open={itemsDialogOpen}
+ onOpenChange={setItemsDialogOpen}
+ vendor={selectedVendorForItems}
+ />
</>
)
} \ No newline at end of file