"use client"; import React, { createContext, useContext, useEffect, useRef, useState } from "react"; import { SendMessageForm } from "@/app/components/SendMessageForm"; type MessageTarget = { receiverId: string; receiverNickname?: string | null } | null; type Ctx = { openMessageModal: (target: { receiverId: string; receiverNickname?: string | null }) => void }; const MessageModalCtx = createContext({ openMessageModal: () => {} }); export function useMessageModal() { return useContext(MessageModalCtx); } export function MessageModalProvider({ children }: { children: React.ReactNode }) { const [target, setTarget] = useState(null); const dialogRef = useRef(null); const openMessageModal = (t: { receiverId: string; receiverNickname?: string | null }) => { setTarget({ receiverId: t.receiverId, receiverNickname: t.receiverNickname ?? null }); }; const close = () => setTarget(null); useEffect(() => { function onKey(e: KeyboardEvent) { if (e.key === "Escape") close(); } document.addEventListener("keydown", onKey); return () => document.removeEventListener("keydown", onKey); }, []); return ( {children} {target && (

쪽지 보내기

)} ); }