{"version":3,"file":"ModalControl.BXvY4Xh8.mjs","names":["useState","__legacyOverrideHOC_DataObserverContext","_jsx"],"sources":["https:/framerusercontent.com/modules/2tuIF0YTxIOaP8uzWRpP/s0j2Sg20o1rTY5ADtxli/ModalControl.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{Data}from\"framer\";import{useEffect,useState}from\"react\";// 전역 상태\nconst modalState=Data({visible:true});export function ModalLogic(){// ✅ 상태 변화 감지용 렌더 트리거\nconst[,forceUpdate]=useState(0);useEffect(()=>{const onKeyDown=e=>{if(e.key===\"Escape\"){modalState.visible=false;forceUpdate(Math.random())// 🔁 강제 리렌더링\n;}};window.addEventListener(\"keydown\",onKeyDown);return()=>window.removeEventListener(\"keydown\",onKeyDown);},[]);// ✅ 상태가 바뀔 때 다시 렌더되도록 setInterval로 감지\nuseEffect(()=>{const interval=setInterval(()=>{forceUpdate(Math.random());},100);return()=>clearInterval(interval);},[]);return{style:{position:\"fixed\",top:0,left:0,width:\"100%\",height:\"100vh\",background:\"rgba(0, 0, 0, 0.7)\",zIndex:1e3,display:modalState.visible?\"flex\":\"none\",justifyContent:\"center\",alignItems:\"center\"}};}export function OpenModal(){return{onClick:()=>{modalState.visible=true;}};}export function CloseModal(){return{onClick:()=>{modalState.visible=false;// ❌ 여기서는 forceUpdate 불가 → ModalLogic이 다시 렌더돼야 함\n}};}import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withModalLogic(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...ModalLogic(props)});};}withModalLogic.displayName=\"ModalLogic\";export function withOpenModal(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...OpenModal(props)});};}withOpenModal.displayName=\"OpenModal\";export function withCloseModal(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...CloseModal(props)});};}withCloseModal.displayName=\"CloseModal\";\nexport const __FramerMetadata__ = {\"exports\":{\"withCloseModal\":{\"type\":\"reactHoc\",\"name\":\"withCloseModal\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CloseModal\":{\"type\":\"override\",\"name\":\"CloseModal\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ModalLogic\":{\"type\":\"override\",\"name\":\"ModalLogic\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withOpenModal\":{\"type\":\"reactHoc\",\"name\":\"withOpenModal\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OpenModal\":{\"type\":\"override\",\"name\":\"OpenModal\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withModalLogic\":{\"type\":\"reactHoc\",\"name\":\"withModalLogic\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ModalControl.map"],"mappings":"mTACsC,SAAgB,GAAY,CAClE,GAAK,EAAE,EAAY,CAACA,EAAS,GAE4F,OAFzF,MAAc,CAAC,IAAM,EAAU,GAAG,CAAI,EAAE,MAAM,WAAU,EAAW,QAAQ,GAAM,EAAY,KAAK,UAC/H,EAA8C,OAA7C,EAAO,iBAAiB,UAAU,OAAqB,EAAO,oBAAoB,UAAU,EAAY,EAAC,EAAE,EAC/G,MAAc,CAAC,IAAM,EAAS,gBAAgB,CAAC,EAAY,KAAK,SAAW,EAAC,KAAK,UAAU,cAAc,EAAW,EAAC,EAAE,EAAQ,CAAC,MAAM,CAAC,SAAS,QAAQ,IAAI,EAAE,KAAK,EAAE,MAAM,OAAO,OAAO,QAAQ,WAAW,qBAAqB,OAAO,IAAI,QAAQ,EAAW,QAAQ,OAAO,OAAO,eAAe,SAAS,WAAW,SAAS,CAAC,AAAE,UAAgB,GAAW,CAAC,MAAM,CAAC,YAAY,CAAC,EAAW,QAAQ,EAAM,EAAC,AAAE,UAAgB,GAAY,CAAC,MAAM,CAAC,YAAY,CAAC,EAAW,QAAQ,EACnd,EAAC,AAAE,CAAmJ,SAAgB,EAAe,EAAE,CAAC,MAAO,KAAQ,EAA+BC,GAAgDC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,EAAW,GAAO,EAAK,CAAwC,SAAgB,EAAc,EAAE,CAAC,MAAO,KAAQ,EAA+BD,GAAgDC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,EAAU,GAAO,EAAK,CAAsC,SAAgB,EAAe,EAAE,CAAC,MAAO,KAAQ,EAA+BD,GAAgDC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,EAAW,GAAO,EAAK,iCAJ9tB,EAAW,EAAK,CAAC,QAAQ,GAAK,EAI8R,EAAe,YAAY,aAAsL,EAAc,YAAY,YAAuL,EAAe,YAAY"}