워터마크를 전체 페이지 공유 방식으로 변경

This commit is contained in:
dohyeons
2025-12-22 17:06:11 +09:00
parent d7f015b37d
commit 5f26e998e3
7 changed files with 120 additions and 136 deletions

View File

@@ -1,7 +1,7 @@
"use client";
import { createContext, useContext, useState, useCallback, ReactNode, useEffect, useRef } from "react";
import { ComponentConfig, ReportDetail, ReportLayout, ReportPage, ReportLayoutConfig } from "@/types/report";
import { ComponentConfig, ReportDetail, ReportLayout, ReportPage, ReportLayoutConfig, WatermarkConfig } from "@/types/report";
import { reportApi } from "@/lib/api/reportApi";
import { useToast } from "@/hooks/use-toast";
import { v4 as uuidv4 } from "uuid";
@@ -40,6 +40,7 @@ interface ReportDesignerContextType {
reorderPages: (sourceIndex: number, targetIndex: number) => void;
selectPage: (pageId: string) => void;
updatePageSettings: (pageId: string, settings: Partial<ReportPage>) => void;
updateWatermark: (watermark: WatermarkConfig | undefined) => void; // 전체 페이지 공유 워터마크
// 컴포넌트 (현재 페이지)
components: ComponentConfig[]; // currentPage의 components (읽기 전용)
@@ -988,10 +989,19 @@ export function ReportDesignerProvider({ reportId, children }: { reportId: strin
const updatePageSettings = useCallback((pageId: string, settings: Partial<ReportPage>) => {
setLayoutConfig((prev) => ({
...prev,
pages: prev.pages.map((page) => (page.page_id === pageId ? { ...page, ...settings } : page)),
}));
}, []);
// 전체 페이지 공유 워터마크 업데이트
const updateWatermark = useCallback((watermark: WatermarkConfig | undefined) => {
setLayoutConfig((prev) => ({
...prev,
watermark,
}));
}, []);
// 리포트 및 레이아웃 로드
const loadLayout = useCallback(async () => {
setIsLoading(true);
@@ -1471,6 +1481,7 @@ export function ReportDesignerProvider({ reportId, children }: { reportId: strin
reorderPages,
selectPage,
updatePageSettings,
updateWatermark,
// 컴포넌트 (현재 페이지)
components,