18 lines
562 B
TypeScript
18 lines
562 B
TypeScript
"use client";
|
|
|
|
import { createContext, useContext } from "react";
|
|
|
|
/**
|
|
* 탭별 Dialog Portal 컨테이너 컨텍스트
|
|
* - 각 탭이 자신만의 포탈 컨테이너를 제공
|
|
* - 탭이 display:none이 되면 포탈 컨테이너도 숨겨져 모달이 자동으로 가려짐
|
|
* - 컨텍스트가 없는 경우(탭 외부) null 반환 → 기본 body 포탈 사용
|
|
*/
|
|
export const DialogPortalContainerContext = createContext<HTMLElement | null>(
|
|
null
|
|
);
|
|
|
|
export function useDialogPortalContainer() {
|
|
return useContext(DialogPortalContainerContext);
|
|
}
|