summaryrefslogtreecommitdiff
path: root/lib/general-contracts_old/main/general-contracts-table-toolbar-actions.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-11-11 09:22:58 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-11-11 09:22:58 +0000
commit535de26b9cf3242c04543d6891d78352b9593a60 (patch)
treecfb2a76a3442ad0ec1d2b2b75293658d93a45808 /lib/general-contracts_old/main/general-contracts-table-toolbar-actions.tsx
parent88b737a71372353e47c466553273d88f5bf36834 (diff)
(최겸) 구매 수정사항 개발
Diffstat (limited to 'lib/general-contracts_old/main/general-contracts-table-toolbar-actions.tsx')
-rw-r--r--lib/general-contracts_old/main/general-contracts-table-toolbar-actions.tsx124
1 files changed, 0 insertions, 124 deletions
diff --git a/lib/general-contracts_old/main/general-contracts-table-toolbar-actions.tsx b/lib/general-contracts_old/main/general-contracts-table-toolbar-actions.tsx
deleted file mode 100644
index f16b759a..00000000
--- a/lib/general-contracts_old/main/general-contracts-table-toolbar-actions.tsx
+++ /dev/null
@@ -1,124 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type Table } from "@tanstack/react-table"
-import {
- Download, FileSpreadsheet,
- Trash2,
-} from "lucide-react"
-import { deleteContract } from "../service"
-import { toast } from "sonner"
-import { exportTableToExcel } from "@/lib/export"
-import { Button } from "@/components/ui/button"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuTrigger,
-} from "@/components/ui/dropdown-menu"
-import { GeneralContractListItem } from "./general-contracts-table-columns"
-import { CreateGeneralContractDialog } from "./create-general-contract-dialog"
-
-interface GeneralContractsTableToolbarActionsProps {
- table: Table<GeneralContractListItem>
-}
-
-export function GeneralContractsTableToolbarActions({ table }: GeneralContractsTableToolbarActionsProps) {
- const [isExporting, setIsExporting] = React.useState(false)
-
- // 선택된 계약들
- const selectedContracts = React.useMemo(() => {
- return table
- .getFilteredSelectedRowModel()
- .rows
- .map(row => row.original)
- }, [table.getFilteredSelectedRowModel().rows])
-
- const handleExport = async () => {
- try {
- setIsExporting(true)
- await exportTableToExcel(table, {
- filename: "general-contracts",
- excludeColumns: ["select", "actions"],
- })
- toast.success("계약 목록이 성공적으로 내보내졌습니다.")
- } catch (error) {
- toast.error("내보내기 중 오류가 발생했습니다.")
- } finally {
- setIsExporting(false)
- }
- }
-
-
- const handleDelete = async () => {
- if (selectedContracts.length === 0) {
- toast.error("계약폐기할 계약을 선택해주세요.")
- return
- }
-
- // // 계약폐기 확인
- // const confirmed = window.confirm(
- // `선택한 ${selectedContracts.length}개 계약을 폐기하시겠습니까?\n계약폐기 후에는 복구할 수 없습니다.`
- // )
-
- // if (!confirmed) return
-
- try {
- // 선택된 모든 계약을 폐기 처리
- const deletePromises = selectedContracts.map(contract =>
- deleteContract(contract.id)
- )
-
- await Promise.all(deletePromises)
-
- toast.success(`${selectedContracts.length}개 계약이 폐기되었습니다.`)
-
- // 테이블 새로고침
- } catch (error) {
- console.error('Error deleting contracts:', error)
- toast.error("계약폐기 중 오류가 발생했습니다.")
- }
- }
-
- return (
- <div className="flex items-center gap-2">
- {/* 신규 등록 */}
- <CreateGeneralContractDialog />
-
- {/* 계약폐기 */}
- <Button
- variant="outline"
- size="sm"
- onClick={handleDelete}
- disabled={selectedContracts.length === 0}
- className="text-red-600 hover:text-red-700 hover:bg-red-50"
- >
- <Trash2 className="mr-2 h-4 w-4" />
- 계약폐기
- </Button>
-
- {/* Export */}
- <DropdownMenu>
- <DropdownMenuTrigger asChild>
- <Button
- variant="outline"
- size="sm"
- className="gap-2"
- disabled={isExporting}
- >
- <Download className="size-4" aria-hidden="true" />
- <span className="hidden sm:inline">
- {isExporting ? "내보내는 중..." : "Export"}
- </span>
- </Button>
- </DropdownMenuTrigger>
- <DropdownMenuContent align="end">
- <DropdownMenuItem onClick={handleExport} disabled={isExporting}>
- <FileSpreadsheet className="mr-2 size-4" />
- <span>계약 목록 내보내기</span>
- </DropdownMenuItem>
- </DropdownMenuContent>
- </DropdownMenu>
- </div>
- )
-}