summaryrefslogtreecommitdiff
path: root/lib/swp/table/swp-table.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'lib/swp/table/swp-table.tsx')
-rw-r--r--lib/swp/table/swp-table.tsx22
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/swp/table/swp-table.tsx b/lib/swp/table/swp-table.tsx
index 21a1c775..4d824f77 100644
--- a/lib/swp/table/swp-table.tsx
+++ b/lib/swp/table/swp-table.tsx
@@ -1,6 +1,6 @@
"use client";
-import React, { useState } from "react";
+import React, { useState, useEffect } from "react";
import {
useReactTable,
getCoreRowModel,
@@ -17,12 +17,15 @@ import {
import { swpDocumentColumns } from "./swp-table-columns";
import { SwpDocumentDetailDialog } from "./swp-document-detail-dialog";
import type { DocumentListItem } from "@/lib/swp/document-service";
+import { toast } from "sonner";
+import { quickDownload } from "@/lib/file-download";
interface SwpTableProps {
documents: DocumentListItem[];
projNo: string;
vendorCode: string;
userId: string;
+ onCoverDownload?: (document: DocumentListItem) => void;
}
export function SwpTable({
@@ -30,6 +33,7 @@ export function SwpTable({
projNo,
vendorCode,
userId,
+ onCoverDownload,
}: SwpTableProps) {
const [dialogOpen, setDialogOpen] = useState(false);
const [selectedDocument, setSelectedDocument] = useState<DocumentListItem | null>(null);
@@ -46,6 +50,22 @@ export function SwpTable({
setDialogOpen(true);
};
+ // 커버페이지 다운로드 이벤트 리스너
+ useEffect(() => {
+ const handleCoverDownload = (event: CustomEvent) => {
+ const { document } = event.detail;
+ if (onCoverDownload) {
+ onCoverDownload(document);
+ }
+ };
+
+ window.addEventListener('coverDownload', handleCoverDownload as EventListener);
+
+ return () => {
+ window.removeEventListener('coverDownload', handleCoverDownload as EventListener);
+ };
+ }, [onCoverDownload]);
+
return (
<div className="space-y-4">
{/* 테이블 */}