diff options
Diffstat (limited to 'lib/tech-vendor-possible-items/table/possible-items-table-toolbar-actions.tsx')
| -rw-r--r-- | lib/tech-vendor-possible-items/table/possible-items-table-toolbar-actions.tsx | 247 |
1 files changed, 119 insertions, 128 deletions
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 |
