ERP-node/frontend/components/pop/designer/PopDesignerContext.tsx

36 lines
1.3 KiB
TypeScript
Raw Normal View History

/**
* PopDesignerContext -
*
* ConfigPanel .
* : pop-button "모달 캔버스 생성"
* activeCanvasId를 .
*
* Provider: PopDesigner.tsx
* Consumer: pop-button ConfigPanel (ModalCanvasButton)
*/
"use client";
import { createContext, useContext } from "react";
export interface PopDesignerContextType {
/** 새 모달 캔버스 생성하고 해당 탭으로 전환 (모달 ID 반환) */
createModalCanvas: (buttonComponentId: string, title: string) => string;
/** 특정 캔버스(메인 또는 모달)로 전환 */
navigateToCanvas: (canvasId: string) => void;
/** 현재 활성 캔버스 ID ("main" 또는 모달 ID) */
activeCanvasId: string;
/** 현재 선택된 컴포넌트 ID */
selectedComponentId: string | null;
}
export const PopDesignerContext = createContext<PopDesignerContextType | null>(null);
/**
*
* null (Provider )
*/
export function usePopDesignerContext(): PopDesignerContextType | null {
return useContext(PopDesignerContext);
}