From 2650b7c0bb0ea12b68a58c0439f72d61df04b2f1 Mon Sep 17 00:00:00 2001
From: dujinkim <dujin.kim@dtsolution.co.kr>
Date: Fri, 25 Jul 2025 07:51:15 +0000
Subject: (대표님) 정기평가 대상, 미들웨어 수정, nextauth 토큰 처리 개선, GTC
 등 (최겸) 기술영업
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../table/possible-items-table-toolbar-actions.tsx | 247 ++++++++++-----------
 1 file changed, 119 insertions(+), 128 deletions(-)

(limited to 'lib/tech-vendor-possible-items/table/possible-items-table-toolbar-actions.tsx')

diff --git a/lib/tech-vendor-possible-items/table/possible-items-table-toolbar-actions.tsx b/lib/tech-vendor-possible-items/table/possible-items-table-toolbar-actions.tsx
index dc67221f..2914fb9c 100644
--- a/lib/tech-vendor-possible-items/table/possible-items-table-toolbar-actions.tsx
+++ b/lib/tech-vendor-possible-items/table/possible-items-table-toolbar-actions.tsx
@@ -2,152 +2,143 @@
 
 import * as React from "react";
 import { type Table } from "@tanstack/react-table";
-import { Download, Upload, FileSpreadsheet, Plus } from "lucide-react";
+// import { Plus } from "lucide-react";
 
-import { Button } from "@/components/ui/button";
-import { Input } from "@/components/ui/input";
-import { useToast } from "@/hooks/use-toast";
-import { AddPossibleItemDialog } from "./add-possible-item-dialog";
-import { DeletePossibleItemsDialog } from "./delete-possible-items-dialog";
-// Excel 함수들을 동적 import로만 사용하기 위해 타입만 import
-type TechVendorPossibleItemsData = {
-  id: number;
-  vendorId: number;
-  vendorCode: string | null;
-  vendorName: string;
-  techVendorType: string;
-  itemCode: string;
-  itemList: string | null;
-  workType: string | null;
-  shipTypes: string | null;
-  subItemList: string | null;
-  createdAt: Date;
-  updatedAt: Date;
-};
+// import { Button } from "@/components/ui/button";
+// import { Input } from "@/components/ui/input"; // 주석처리 (Excel 기능 사용 안함)
+// import { useToast } from "@/hooks/use-toast"; // 주석처리 (Excel 기능 사용 안함)
+// import { AddPossibleItemDialog } from "./add-possible-item-dialog";
+// import { DeletePossibleItemsDialog } from "./delete-possible-items-dialog";
+// 새로운 스키마에 맞는 타입 import
+import type { TechVendorPossibleItemsData } from "../service";
 
 interface PossibleItemsTableToolbarActionsProps {
   table: Table<TechVendorPossibleItemsData>;
 }
 
 export function PossibleItemsTableToolbarActions({
-  table,
+  // table,
 }: PossibleItemsTableToolbarActionsProps) {
-  const { toast } = useToast();
+  // const { toast } = useToast(); // 주석처리 (Excel 기능 사용 안함)
   
-  const selectedRows = table.getFilteredSelectedRowModel().rows;
-  const hasSelection = selectedRows.length > 0;
-  const selectedItems = selectedRows.map(row => row.original);
+  //  const selectedRows = table.getFilteredSelectedRowModel().rows;
+  // const hasSelection = selectedRows.length > 0;
+  // const selectedItems = selectedRows.map(row => row.original);
 
-  const handleSuccess = () => {
-    table.toggleAllRowsSelected(false);
-    // 페이지 새로고침이나 데이터 다시 로드 필요
-    window.location.reload();
-  };
+  // const handleSuccess = () => {
+  //   table.toggleAllRowsSelected(false);
+  //   // 페이지 새로고침이나 데이터 다시 로드 필요
+  //   window.location.reload();
+  // };
 
-  const handleExport = async () => {
-    try {
-      const { exportTechVendorPossibleItemsToExcel } = await import("./excel-export");
-      const result = await exportTechVendorPossibleItemsToExcel(table.getFilteredRowModel().rows.map(row => row.original));
-      
-      if (result.success) {
-        toast({
-          title: "성공",
-          description: "Excel 파일이 다운로드되었습니다.",
-        });
-      } else {
-        toast({
-          title: "오류",
-          description: result.error || "내보내기 중 오류가 발생했습니다.",
-          variant: "destructive",
-        });
-      }
-    } catch (error) {
-      console.error("Export error:", error);
-      toast({
-        title: "오류",
-        description: "내보내기 중 오류가 발생했습니다.",
-        variant: "destructive",
-      });
-    }
-  };
+  // Excel Export 함수 주석처리 (새 스키마에서 사용하지 않음)
+  // const handleExport = async () => {
+  //   try {
+  //     const { exportTechVendorPossibleItemsToExcel } = await import("./excel-export");
+  //     const result = await exportTechVendorPossibleItemsToExcel(table.getFilteredRowModel().rows.map(row => row.original));
+  //     
+  //     if (result.success) {
+  //       toast({
+  //         title: "성공",
+  //         description: "Excel 파일이 다운로드되었습니다.",
+  //       });
+  //     } else {
+  //       toast({
+  //         title: "오류",
+  //         description: result.error || "내보내기 중 오류가 발생했습니다.",
+  //         variant: "destructive",
+  //       });
+  //     }
+  //   } catch (error) {
+  //     console.error("Export error:", error);
+  //     toast({
+  //       title: "오류",
+  //       description: "내보내기 중 오류가 발생했습니다.",
+  //       variant: "destructive",
+  //     });
+  //   }
+  // };
 
-  const handleImport = async (event: React.ChangeEvent<HTMLInputElement>) => {
-    const file = event.target.files?.[0];
-    if (!file) return;
+  // Excel Import 함수 주석처리 (새 스키마에서 사용하지 않음)
+  // const handleImport = async (event: React.ChangeEvent<HTMLInputElement>) => {
+  //   const file = event.target.files?.[0];
+  //   if (!file) return;
 
-    try {
-      const { importTechVendorPossibleItemsFromExcel } = await import("./excel-import");
-      const result = await importTechVendorPossibleItemsFromExcel(file);
-      
-      if (result.success) {
-        toast({
-          title: "성공",
-          description: `${result.successCount}개의 아이템이 가져와졌습니다.`,
-        });
-        // 페이지 새로고침이나 데이터 다시 로드 필요
-        window.location.reload();
-      } else {
-        toast({
-          title: "가져오기 완료",
-          description: `${result.successCount}개 성공, ${result.failedRows.length}개 실패`,
-          variant: result.successCount > 0 ? "default" : "destructive",
-        });
-      }
-    } catch (error) {
-      console.error("Import error:", error);
-      toast({
-        title: "오류",
-        description: "가져오기 중 오류가 발생했습니다.",
-        variant: "destructive",
-      });
-    }
+  //   try {
+  //     const { importTechVendorPossibleItemsFromExcel } = await import("./excel-import");
+  //     const result = await importTechVendorPossibleItemsFromExcel(file);
+  //     
+  //     if (result.success) {
+  //       toast({
+  //         title: "성공",
+  //         description: `${result.successCount}개의 아이템이 가져와졌습니다.`,
+  //       });
+  //       // 페이지 새로고침이나 데이터 다시 로드 필요
+  //       window.location.reload();
+  //     } else {
+  //       toast({
+  //         title: "가져오기 완료",
+  //         description: `${result.successCount}개 성공, ${result.failedRows.length}개 실패`,
+  //         variant: result.successCount > 0 ? "default" : "destructive",
+  //       });
+  //     }
+  //   } catch (error) {
+  //     console.error("Import error:", error);
+  //     toast({
+  //       title: "오류",
+  //       description: "가져오기 중 오류가 발생했습니다.",
+  //       variant: "destructive",
+  //     });
+  //   }
 
-    // Reset input
-    event.target.value = "";
-  };
+  //   // Reset input
+  //   event.target.value = "";
+  // };
 
-  const handleDownloadTemplate = async () => {
-    try {
-      const { exportTechVendorPossibleItemsTemplate } = await import("./excel-template");
-      const result = await exportTechVendorPossibleItemsTemplate();
-      if (result.success) {
-        toast({
-          title: "성공",
-          description: "템플릿 파일이 다운로드되었습니다.",
-        });
-      } else {
-        toast({
-          title: "오류",
-          description: result.error || "템플릿 다운로드 중 오류가 발생했습니다.",
-          variant: "destructive",
-        });
-      }
-    } catch (error) {
-      console.error("Template download error:", error);
-      toast({
-        title: "오류",
-        description: "템플릿 다운로드 중 오류가 발생했습니다.",
-        variant: "destructive",
-      });
-    }
-  };
+  // Excel Template 함수 주석처리 (새 스키마에서 사용하지 않음)
+  // const handleDownloadTemplate = async () => {
+  //   try {
+  //     const { exportTechVendorPossibleItemsTemplate } = await import("./excel-template");
+  //     const result = await exportTechVendorPossibleItemsTemplate();
+  //     if (result.success) {
+  //       toast({
+  //         title: "성공",
+  //         description: "템플릿 파일이 다운로드되었습니다.",
+  //       });
+  //     } else {
+  //       toast({
+  //         title: "오류",
+  //         description: result.error || "템플릿 다운로드 중 오류가 발생했습니다.",
+  //         variant: "destructive",
+  //       });
+  //     }
+  //   } catch (error) {
+  //     console.error("Template download error:", error);
+  //     toast({
+  //       title: "오류",
+  //       description: "템플릿 다운로드 중 오류가 발생했습니다.",
+  //       variant: "destructive",
+  //     });
+  //   }
+  // };
 
   return (
     <div className="flex items-center gap-2">
-            {hasSelection && (
-        <DeletePossibleItemsDialog 
-          selectedItems={selectedItems}
-          onSuccess={handleSuccess}
-        />
-      )}
-      <AddPossibleItemDialog onSuccess={handleSuccess}>
-        <Button size="sm">
-          <Plus className="mr-2 h-4 w-4" />
-          추가
-        </Button>
-      </AddPossibleItemDialog>
+            {/* {hasSelection && ( */}
+      {/* //   <DeletePo  ssibleItemsDialog 
+      //     selectedItems={selectedItems}
+      //     onSuccess={handleSuccess}
+      //   />
+      // )}
+      // <AddPossibleItemDialog onSuccess={handleSuccess}>
+      //   <Button size="sm">
+      //     <Plus className="mr-2 h-4 w-4" />
+      //     추가
+      //   </Button>
+      // </AddPossibleItemDialog>
 
-      <Button 
+      {/* Excel 관련 버튼들 주석처리 (새 스키마에서 사용하지 않음) */}
+      {/* <Button 
         variant="outline" 
         size="sm" 
         onClick={() => document.getElementById("import-file")?.click()}
@@ -173,7 +164,7 @@ export function PossibleItemsTableToolbarActions({
       <Button variant="outline" size="sm" onClick={handleDownloadTemplate}>
         <FileSpreadsheet className="mr-2 h-4 w-4" />
         Download Template
-      </Button>
+      </Button> */}
     </div>
   );
 } 
\ No newline at end of file
-- 
cgit v1.2.3

