summaryrefslogtreecommitdiff
path: root/lib/rfqs-ship/vendor-table/vendors-table-toolbar-actions.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rfqs-ship/vendor-table/vendors-table-toolbar-actions.tsx')
-rw-r--r--lib/rfqs-ship/vendor-table/vendors-table-toolbar-actions.tsx62
1 files changed, 62 insertions, 0 deletions
diff --git a/lib/rfqs-ship/vendor-table/vendors-table-toolbar-actions.tsx b/lib/rfqs-ship/vendor-table/vendors-table-toolbar-actions.tsx
new file mode 100644
index 00000000..a8825cc7
--- /dev/null
+++ b/lib/rfqs-ship/vendor-table/vendors-table-toolbar-actions.tsx
@@ -0,0 +1,62 @@
+"use client"
+
+import * as React from "react"
+import { type Table } from "@tanstack/react-table"
+
+import { MatchedVendorRow } from "@/config/vendorRfbColumnsConfig"
+import { InviteVendorsDialog } from "./invite-vendors-dialog"
+import { AddVendorDialog } from "./add-vendor-dialog"
+import { Button } from "@/components/ui/button"
+import { RfqType } from "@/lib/rfqs-ship/validations"
+
+interface VendorsTableToolbarActionsProps {
+ table: Table<MatchedVendorRow>
+ rfqId: number
+ rfqType: RfqType
+}
+
+export function VendorsTableToolbarActions({
+ table,
+ rfqId,
+ rfqType,
+}: VendorsTableToolbarActionsProps) {
+ // 선택된 행이 있는지 확인
+ const rowSelection = table.getState().rowSelection
+ const selectedRows = Object.keys(rowSelection).length
+ const hasSelectedRows = selectedRows > 0
+
+ // 선택된 벤더 목록
+ const selectedVendors = React.useMemo(() => {
+ return Object.keys(rowSelection).map((id) =>
+ table.getRow(id).original
+ )
+ }, [rowSelection, table])
+
+ return (
+ <div className="flex items-center justify-between gap-2">
+ <div className="flex items-center gap-2">
+ <AddVendorDialog rfqId={rfqId} />
+ </div>
+ <div className="flex items-center gap-2">
+ {hasSelectedRows && (
+ <InviteVendorsDialog
+ rfqId={rfqId}
+ rfqType={rfqType}
+ vendors={selectedVendors}
+ directCbe={true}
+ onSuccess={() => table.toggleAllRowsSelected(false)}
+ >
+ <Button
+ variant="default"
+ size="sm"
+ className="h-8"
+ disabled={!hasSelectedRows}
+ >
+ CBE 요청 ({selectedRows})
+ </Button>
+ </InviteVendorsDialog>
+ )}
+ </div>
+ </div>
+ )
+} \ No newline at end of file