diff options
Diffstat (limited to 'lib/bidding/vendor/partners-bidding-toolbar-actions.tsx')
| -rw-r--r-- | lib/bidding/vendor/partners-bidding-toolbar-actions.tsx | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/lib/bidding/vendor/partners-bidding-toolbar-actions.tsx b/lib/bidding/vendor/partners-bidding-toolbar-actions.tsx new file mode 100644 index 00000000..c45568bd --- /dev/null +++ b/lib/bidding/vendor/partners-bidding-toolbar-actions.tsx @@ -0,0 +1,55 @@ +"use client" + +import * as React from "react" +import { type Table } from "@tanstack/react-table" +import { Users } from "lucide-react" + +import { Button } from "@/components/ui/button" +import { PartnersBiddingListItem } from '../detail/service' + +interface PartnersBiddingToolbarActionsProps { + table: Table<PartnersBiddingListItem> + onRefresh: () => void + setRowAction?: (action: { type: string; row: { original: PartnersBiddingListItem } }) => void +} + +export function PartnersBiddingToolbarActions({ + table, + onRefresh, + setRowAction +}: PartnersBiddingToolbarActionsProps) { + // 선택된 행 가져오기 (단일 선택) + const selectedRows = table.getFilteredSelectedRowModel().rows + const selectedBidding = selectedRows.length === 1 ? selectedRows[0].original : null + + // 사양설명회 참석 여부 버튼 활성화 조건 + const canManageAttendance = selectedBidding && ( + selectedBidding.invitationStatus === 'sent' || + selectedBidding.invitationStatus === 'accepted' || + selectedBidding.invitationStatus === 'submitted' + ) + + const handleAttendanceClick = () => { + if (selectedBidding && setRowAction) { + setRowAction({ + type: 'attendance', + row: { original: selectedBidding } + }) + } + } + + return ( + <div className="flex items-center gap-2"> + <Button + variant="outline" + size="sm" + onClick={handleAttendanceClick} + disabled={!canManageAttendance} + className="flex items-center gap-2" + > + <Users className="w-4 h-4" /> + 사양설명회 참석여부 + </Button> + </div> + ) +}
\ No newline at end of file |
