{"version":3,"file":"BlogTable.CW1joHIi.mjs","names":["React.useState","p","roleMap","mainImageStyle","React.useRef","compressImage","blobToFile"],"sources":["https:/framerusercontent.com/modules/P6mCwMM0omGsPHJWyupd/wBZJBE7xIAZboL3T5Rvf/BlogTable.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{createClient}from\"@supabase/supabase-js\";// ================= Supabase 클라이언트 =================\nconst supabaseUrl=\"https://inizlqcvqaqkguwexjzw.supabase.co\";const supabaseAnonKey=\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImluaXpscWN2cWFxa2d1d2V4anp3Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTY0NzYxODQsImV4cCI6MjA3MjA1MjE4NH0.yhP2rIucZbN_fMLwnzzoXCGl2qDtsO_VBIVK46FhwIk\";export const supabase=createClient(supabaseUrl,supabaseAnonKey);// ================= 직원 정보 불러오기 =================\nexport async function fetchEmployee(empNo){const{data,error}=await supabase.from(\"employees\").select(\"empNo, name, nameEn, role, photoUrl\").eq(\"empNo\",empNo).single();if(error){console.error(\"직원 정보 불러오기 실패:\",error);return null;}return data;}// ================= 블로그 포스트 저장 =================\nexport async function createPost(post){const{data,error}=await supabase.from(\"posts\").insert([{title:post.title,slug:post.slug,date:post.date,author:post.empNo}]);if(error){console.error(\"포스트 저장 실패:\",error);return null;}return data;}export function BlogListTable({// 버튼\nbtnTextSize=15,btnWidthMode=\"fixed\",btnWidth=135,buttonAlign=\"left\",// 컬럼 폭\nnumberWidth=10,titleWidth=200,slugWidth=150,authorWidth=150,roleWidth=120,dateWidth=180,viewsWidth=60,// 폰트\nheaderFontSize=15,bodyFontSize=15,width,height,onRowSelect}){const[posts,setPosts]=React.useState([]);const[showModal,setShowModal]=React.useState(false);const[selectedPost,setSelectedPost]=React.useState(null);const[showEditModal,setShowEditModal]=React.useState(false);// ✅ DB에서 글 불러오기 (내 글만)\nconst loadPosts=async()=>{const myId=localStorage.getItem(\"id\")// ✅ 로그인한 직원 UUID 저장돼 있다고 가정\n;if(!myId){console.warn(\"⚠️ 로그인 ID 없음 → 글 불러오기 중단\");return;}const{data,error}=await supabase.from(\"blog\").select(`\n            id,\n            slug,\n            date,\n            titleKr,\n            titleEn,\n            mainImage,\n            views,\n            employees:author_id (\n                empNo,\n                name,\n                nameEn,\n                role,\n                photoUrl\n            )\n        `).eq(\"author_id\",myId)// ✅ 여기 삽입\n;if(error){console.error(\"블로그 글 불러오기 실패:\",error);return;}const mapped=(data||[]).map(row=>({id:row.id,slug:row.slug,date:row.date,titleKr:row.titleKr,titleEn:row.titleEn,author:row.employees,views:row.views??0,mainImage:row.mainImage}));setPosts(mapped);};// ✅ 초기 로딩\nReact.useEffect(()=>{loadPosts();},[]);// ===== 버튼 스타일 =====\nconst buttonBarStyle={display:\"flex\",justifyContent:buttonAlign===\"center\"?\"center\":buttonAlign===\"right\"?\"flex-end\":\"flex-start\",alignItems:\"center\",gap:10,marginBottom:12};const buttonBase={fontFamily:'\"General Sans\", Inter, sans-serif',fontWeight:400,fontSize:btnTextSize,color:\"#EDEDED\",background:\"#121212\",border:\"1px solid #3D3D3D\",borderRadius:5,height:44,display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",textAlign:\"center\",width:btnWidthMode===\"fill\"?\"100%\":btnWidth,transition:\"background 0.2s ease, color 0.2s ease\",boxSizing:\"border-box\"};const onButtonEnter=e=>{e.currentTarget.style.background=\"#1A1A1A\";};const onButtonLeave=e=>{e.currentTarget.style.background=\"#121212\";};// ===== 표준 스타일 함수 =====\nconst makeHeaderCellStyle=w=>({fontFamily:'\"General Sans\", Inter, sans-serif',fontWeight:400,fontSize:headerFontSize,color:\"#EDEDED\",background:\"#121212\",borderBottom:\"1px solid #3D3D3D\",height:44,lineHeight:\"44px\",padding:\"0 8px\",textAlign:\"left\",width:w,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\"});const makeRowCellStyle=w=>({fontFamily:'\"General Sans\", Inter, sans-serif',fontWeight:400,fontSize:bodyFontSize,color:\"#b0b0b0\",background:\"#121212\",borderBottom:\"1px solid #1A1A1A\",height:44,lineHeight:\"44px\",padding:\"0 8px\",textAlign:\"left\",width:w,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",transition:\"background 0.2s ease, color 0.2s ease\"});// ===== Hover handlers =====\nconst onRowEnter=e=>{Array.from(e.currentTarget.children).forEach(cell=>{cell.style.background=\"#1A1A1A\";cell.style.color=\"#EDEDED\";});};const onRowLeave=e=>{Array.from(e.currentTarget.children).forEach(cell=>{cell.style.background=\"#121212\";cell.style.color=\"#b0b0b0\";});};return /*#__PURE__*/_jsxs(\"div\",{style:{width:width??\"100%\",height:height??\"100%\",overflow:\"auto\",fontFamily:'\"General Sans\", Inter, sans-serif',color:\"#EDEDED\"},children:[/*#__PURE__*/_jsx(\"div\",{style:buttonBarStyle,children:showModal?/*#__PURE__*/_jsx(BlogWriteModal,{onClose:()=>setShowModal(false),onReset:()=>console.log(\"Reset form\"),onSubmit:async()=>{await loadPosts();setShowModal(false);}}):/*#__PURE__*/_jsx(\"button\",{style:buttonBase,onMouseEnter:onButtonEnter,onMouseLeave:onButtonLeave,onClick:()=>setShowModal(true),children:\"작성하기\"})}),/*#__PURE__*/_jsxs(\"table\",{style:{width:\"100%\",borderCollapse:\"collapse\",tableLayout:\"fixed\"},children:[/*#__PURE__*/_jsx(\"thead\",{children:/*#__PURE__*/_jsxs(\"tr\",{children:[/*#__PURE__*/_jsx(\"th\",{style:makeHeaderCellStyle(numberWidth),children:\"순번\"}),/*#__PURE__*/_jsx(\"th\",{style:makeHeaderCellStyle(titleWidth),children:\"제목\"}),/*#__PURE__*/_jsx(\"th\",{style:makeHeaderCellStyle(authorWidth),children:\"작성자\"}),/*#__PURE__*/_jsx(\"th\",{style:makeHeaderCellStyle(roleWidth),children:\"직위\"}),/*#__PURE__*/_jsx(\"th\",{style:makeHeaderCellStyle(dateWidth),children:\"작성일자\"}),/*#__PURE__*/_jsx(\"th\",{style:makeHeaderCellStyle(viewsWidth),children:\"조회수\"})]})}),/*#__PURE__*/_jsx(\"tbody\",{children:posts.length===0?/*#__PURE__*/_jsx(\"tr\",{children:/*#__PURE__*/_jsx(\"td\",{colSpan:6,style:{...makeRowCellStyle(),textAlign:\"center\",color:\"#b0b0b0\"},children:\"작성된 글이 없습니다.\"})}):posts.map((post,index)=>/*#__PURE__*/_jsxs(\"tr\",{style:{cursor:\"pointer\"},onMouseEnter:onRowEnter,onMouseLeave:onRowLeave,onClick:()=>{setSelectedPost(post);setShowEditModal(true);onRowSelect?.(post);},children:[/*#__PURE__*/_jsx(\"td\",{style:makeRowCellStyle(numberWidth),children:index+1}),/*#__PURE__*/_jsx(\"td\",{style:makeRowCellStyle(titleWidth),children:post.titleKr}),/*#__PURE__*/_jsx(\"td\",{style:makeRowCellStyle(authorWidth),children:post.author?.name}),/*#__PURE__*/_jsx(\"td\",{style:makeRowCellStyle(roleWidth),children:post.author?.role}),/*#__PURE__*/_jsx(\"td\",{style:makeRowCellStyle(dateWidth),children:post.date}),/*#__PURE__*/_jsx(\"td\",{style:makeRowCellStyle(viewsWidth),children:post.views})]},post.id))})]}),showEditModal&&selectedPost&&/*#__PURE__*/_jsx(\"div\",{style:{padding:\"10px 0\"},children:/*#__PURE__*/_jsx(BlogEditModal,{post:selectedPost,onClose:()=>setShowEditModal(false),onUpdate:async updated=>{setPosts(prev=>prev.map(p=>p.id===updated.id?updated:p));}})})]});}export function BlogWriteModal({onClose,onReset,onSubmit}){// === 날짜 상태 (기본값 오늘) ===\nconst today=(()=>{const d=new Date;const mm=String(d.getMonth()+1).padStart(2,\"0\");const dd=String(d.getDate()).padStart(2,\"0\");return`${d.getFullYear()}-${mm}-${dd}`;})();const[date,setDate]=React.useState(today);// === 날짜 핸들러 (문자 제거 + yyyy-mm-dd 강제 포맷) ===\nconst handleDateChange=v=>{const digits=v.replace(/\\D/g,\"\").slice(0,8)// 숫자만 추출\n;let out=digits;if(digits.length>4)out=`${digits.slice(0,4)}-${digits.slice(4)}`;if(digits.length>6)out=`${digits.slice(0,4)}-${digits.slice(4,6)}-${digits.slice(6)}`;setDate(out);};// === Slug 상태 ===\nconst[slug,setSlug]=React.useState(\"\");React.useEffect(()=>{const fetchSlug=async()=>{const empNo=localStorage.getItem(\"empNo\")||\"unknown\";// 해당 empNo로 작성된 글 개수 카운트\nconst{count,error}=await supabase.from(\"blog\").select(\"id\",{count:\"exact\",head:true}).ilike(\"slug\",`${empNo}-%`)// slug 가 empNo-로 시작하는 것만\n;if(error){console.error(\"Slug count error:\",error.message);setSlug(`${empNo}-1`);return;}const next=(count||0)+1;setSlug(`${empNo}-${next}`);};fetchSlug();},[]);const roleMap={이사장:\"Chairman\",상임이사:\"Executive Director\",비상임이사:\"Non-executive Director\",사무국장:\"Secretary General\",실장:\"General Manager\",단장:\"Head of Division\",사회복지사:\"Social Worker\",기타:\"Other\"};const mainImageStyle={width:100,height:100,border:\"1px solid #3D3D3D\",borderRadius:\"50%\",background:\"#121212\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",overflow:\"hidden\",flexShrink:0};const editorKrRef=React.useRef(null);const editorEnRef=React.useRef(null);const[titleKr,setTitleKr]=React.useState(\"\");const[titleEn,setTitleEn]=React.useState(\"\");const[previewImage,setPreviewImage]=React.useState(\"\");const[mainImage,setMainImage]=React.useState(\"\");const[contentKr,setContentKr]=React.useState(\"\");const[contentEn,setContentEn]=React.useState(\"\");const[uploading,setUploading]=React.useState(false);const[success,setSuccess]=React.useState(false);const handleSubmit=async()=>{// === 필수 입력값 체크 ===\nif(!mainImage||!mainImage.startsWith(\"http\")){alert(\"대표이미지를 업로드하세요.\");return;}if(!titleKr.trim()){alert(\"국문 제목을 입력하세요.\");return;}if(!contentKr.trim()){alert(\"국문 본문을 작성하세요.\");return;}if(!titleEn.trim()){alert(\"영문 제목을 입력하세요.\");return;}if(!contentEn.trim()){alert(\"영문 본문을 작성하세요.\");return;}try{setUploading(true);setSuccess(false);const{data,error}=await supabase.from(\"blog\").insert([{author_id:localStorage.getItem(\"id\"),date,slug,titleKr,titleEn,mainImage,contentKr,contentEn,views:0}]).select(\"id\")// ✅ 반드시 select 해서 data 반환\n;if(error){console.error(\"❌ 블로그 업로드 실패:\",error.message);setUploading(false);return;}if(data&&data.length>0){setUploading(false);setSuccess(true)// ✅ 업로드 완료 UI 표시\n;setTimeout(()=>{onSubmit?.();onClose();setSuccess(false);},1e3);}}catch(e){console.error(\"❌ 업로드 중 오류:\",e);setUploading(false);}};// === 이미지 압축 함수 ===\nconst compressImage=(file,maxWidth=1200,quality=.85)=>{return new Promise((resolve,reject)=>{const img=new Image;img.src=URL.createObjectURL(file);img.onload=()=>{const canvas=document.createElement(\"canvas\");const scale=maxWidth/img.width;const w=img.width>maxWidth?maxWidth:img.width;const h=img.width>maxWidth?img.height*scale:img.height;canvas.width=w;canvas.height=h;const ctx=canvas.getContext(\"2d\");if(!ctx)return reject(\"No canvas context\");ctx.drawImage(img,0,0,w,h);canvas.toBlob(blob=>{if(blob)resolve(blob);else reject(\"Blob conversion failed\");},\"image/jpeg\",quality);};img.onerror=err=>reject(err);});};// === Blob → File 변환 ===\nconst blobToFile=(blob,fileName)=>{return new File([blob],fileName,{type:blob.type});};// === 국문/영문 에디터 초기화 ===\nReact.useEffect(()=>{const script=document.createElement(\"script\");script.src=\"https://cdn.jsdelivr.net/npm/tinymce@6/tinymce.min.js\";script.referrerPolicy=\"origin\";script.onload=()=>{if(window.tinymce){window.tinymce.init({target:editorKrRef.current,menubar:false,branding:false,statusbar:false,skin:\"oxide-dark\",content_css:\"dark\",plugins:\"autoresize lists link image table code\",min_height:300,autoresize_bottom_margin:20,resize:false,toolbar:\"undo redo | styles | bold italic underline | alignleft aligncenter alignright | bullist numlist | link image table | code\",toolbar_sticky:true,toolbar_sticky_offset:0,content_style:`\n  body {\n    background:#121212;\n    color:#EDEDED;\n    font-size:14px;\n    padding:12px;\n  }\n  /* 항상 컨테이너 폭 이내 */\n  .mce-content-body img.rimg,\n  figure.image img {\n    max-width: 100% !important;\n    height: auto !important;\n    display: block;\n  }\n`,file_picker_callback:async(cb,_value,_meta)=>{const input=document.createElement(\"input\");input.type=\"file\";input.accept=\"image/*\";input.onchange=async()=>{const file=input.files?.[0];if(!file)return;// 1. 압축 실행\nconst compressedBlob=await compressImage(file,1200,.8);const safeName=`${Date.now()}-${file.name.replace(/[^a-zA-Z0-9\\-_]/g,\"_\")}.jpg`;const compressedFile=blobToFile(compressedBlob,safeName);// 2. Supabase 업로드\nconst filePath=`blog/editor/${safeName}`;const{error}=await supabase.storage.from(\"blog-images\").upload(filePath,compressedFile,{upsert:true});if(error){console.error(\"에디터 이미지 업로드 실패:\",error.message);return;}// 3. Public URL 가져오기\nconst{data}=supabase.storage.from(\"blog-images\").getPublicUrl(filePath);// 4. TinyMCE에 삽입\ncb(data.publicUrl,{title:safeName});// ✅ '…' 오버플로우가 열려있으면 닫기\nconst ed=window.tinymce?.activeEditor;if(ed&&ed.initialized&&ed.queryCommandState?.(\"ToggleToolbarDrawer\")){ed.execCommand(\"ToggleToolbarDrawer\");}};input.click();},setup:editor=>{window.getContent=()=>editor.getContent();editor.on(\"init\",()=>{normalizeImages(editor.getBody(),true,true);});editor.on(\"PastePostProcess\",e=>normalizeImages(e.node,true,true));editor.on(\"Change\",()=>{normalizeImages(editor.getBody(),false,false);setContentKr(editor.getContent())// ✅ 국문 본문 저장\n;});editor.on(\"PreProcess\",e=>normalizeImages(e.node,false,true));}});window.tinymce.init({target:editorEnRef.current,language:\"en\",menubar:false,branding:false,statusbar:false,skin:\"oxide-dark\",content_css:\"dark\",plugins:\"autoresize lists link image table code\",min_height:300,autoresize_bottom_margin:20,resize:false,toolbar:\"undo redo | styles | bold italic underline | alignleft aligncenter alignright | bullist numlist | link image table | code\",toolbar_sticky:true,toolbar_sticky_offset:0,content_style:`\n  body {\n    background:#121212;\n    color:#EDEDED;\n    font-size:14px;\n    padding:12px;\n  }\n  /* 항상 컨테이너 폭 이내 */\n  .mce-content-body img.rimg,\n  figure.image img {\n    max-width: 100% !important;\n    height: auto !important;\n    display: block;\n  }\n`,file_picker_callback:async(cb,_value,_meta)=>{const input=document.createElement(\"input\");input.type=\"file\";input.accept=\"image/*\";input.onchange=async()=>{const file=input.files?.[0];if(!file)return;// 1. 압축 실행\nconst compressedBlob=await compressImage(file,1200,.8);const safeName=`${Date.now()}-${file.name.replace(/[^a-zA-Z0-9\\-_]/g,\"_\")}.jpg`;const compressedFile=blobToFile(compressedBlob,safeName);// 2. Supabase 업로드\nconst filePath=`blog/editor/${safeName}`;const{error}=await supabase.storage.from(\"blog-images\").upload(filePath,compressedFile,{upsert:true});if(error){console.error(\"에디터 이미지 업로드 실패:\",error.message);return;}// 3. Public URL 가져오기\nconst{data}=supabase.storage.from(\"blog-images\").getPublicUrl(filePath);// 4. TinyMCE에 삽입\ncb(data.publicUrl,{title:safeName});// ✅ '…' 오버플로우가 열려있으면 닫기\nconst ed=window.tinymce?.activeEditor;if(ed&&ed.initialized&&ed.queryCommandState?.(\"ToggleToolbarDrawer\")){ed.execCommand(\"ToggleToolbarDrawer\");}};input.click();},setup:editor=>{window.getContent=()=>editor.getContent();editor.on(\"init\",()=>{normalizeImages(editor.getBody(),true,true);});editor.on(\"PastePostProcess\",e=>normalizeImages(e.node,true,true));editor.on(\"Change\",()=>{normalizeImages(editor.getBody(),false,false);setContentEn(editor.getContent())// ✅ 영문 본문 저장\n;});editor.on(\"PreProcess\",e=>normalizeImages(e.node,false,true));}});}};document.body.appendChild(script);},[]);const normalizeImages=(root,stripInlineSize,stripAttrSize)=>{const node=root;if(!node)return;const imgs=node instanceof HTMLImageElement?[node]:node.querySelectorAll(\"img\");imgs.forEach(img=>{const el=img;if(stripAttrSize){el.removeAttribute(\"width\");el.removeAttribute(\"height\");}if(stripInlineSize&&el.style){el.style.width=\"\";el.style.height=\"\";}if(!el.classList.contains(\"rimg\"))el.classList.add(\"rimg\");});};return /*#__PURE__*/_jsxs(\"div\",{style:{fontFamily:'\"General Sans\", Inter, sans-serif',fontWeight:400,color:\"#EDEDED\",background:\"#1A1A1A\",border:\"1px solid #3D3D3D\",borderRadius:5,boxShadow:\"0 0 20px rgba(0,0,0,0.6)\",boxSizing:\"border-box\",padding:24,width:\"100%\",minHeight:400,display:\"flex\",flexDirection:\"column\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n  .a-input {\n    width: 100%;\n    padding: 10px;\n    font-size: 14px;\n    font-family: \"General Sans\", Inter, sans-serif;\n    color: #EDEDED;\n    background: #121212;\n    border: 1px solid #3D3D3D;\n    border-radius: 5px;\n    box-sizing: border-box;\n    height: 44px;       /* ✅ 고정 높이 */\n    line-height: 44px;  /* ✅ 텍스트 세로 정렬 */\n  }\n\n  .a-input:focus {\n    outline: none;\n    border-color: #5A5A5A;\n    background: #1A1A1A;\n  }\n\n  .a-btn {\n    font-family: \"General Sans\", Inter, sans-serif;\n    font-weight: 400;\n    font-size: 14px;\n    color: #EDEDED;\n    background: #121212;\n    border: 1px solid #3D3D3D;\n    border-radius: 5px;\n    height: 44px;\n    line-height: 44px;\n    cursor: pointer;\n    box-sizing: border-box;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    transition: background 0.2s ease;\n  }\n\n  .a-btn:hover {\n    background: #1A1A1A;\n  }\n\n  /* === TinyMCE 본체 외곽선 === */\n  .tox-tinymce,\n  .tox-tinymce:focus,\n  .tox-tinymce:focus-within,\n  .tox-tinymce:focus-visible {\n    border: 1px solid #3D3D3D !important;\n    border-radius: 5px !important;\n    background: #121212 !important;\n    outline: none !important;\n    box-shadow: none !important;\n  }\n\n  /* 내부 컨테이너/편집영역 보더 제거 */\n  .tox-editor-container,\n  .tox-sidebar-wrap,\n  .tox-edit-area,\n  .tox-edit-area__iframe {\n    border: none !important;\n    box-shadow: none !important;\n    outline: none !important;\n    background: #121212 !important;\n  }\n\n  /* 툴바 + 본문 경계선 */\n  .tox-editor-header,\n  .tox-toolbar,\n  .tox-toolbar__primary {\n    background: #121212 !important;\n    border: none !important;\n  }\n  .tox-editor-header { border-bottom: 1px solid #3D3D3D !important; }\n\n  /* Sticky 툴바 */\n  .tox-editor-header.tox-editor-header--sticky {\n    background: #121212 !important;\n    border-bottom: 1px solid #3D3D3D !important;\n    box-shadow: none !important;\n    z-index: 1000 !important;\n  }\n\n  /* Paragraph 드롭다운만 1px 보더 */\n  .tox .tox-mbtn,\n  .tox .tox-mbtn--select {\n    background: #121212 !important;\n    color: #fff !important;\n    border: 1px solid #3D3D3D !important;\n    border-radius: 5px !important;\n  }\n  .tox .tox-mbtn__select-label { color: #fff !important; }\n\n  /* 드롭다운 메뉴 */\n  .tox .tox-menu { background: #121212 !important; border: 1px solid #3D3D3D !important; }\n  .tox .tox-collection__item { background: #121212 !important; color: #fff !important; }\n  .tox .tox-collection__item--active { background: #1e1e1e !important; }\n\n  /* 아이콘 버튼 투명 */\n  .tox .tox-tbtn,\n  .tox .tox-split-button {\n    background: transparent !important;\n    border:none !important;\n    outline:none !important;\n    box-shadow:none !important;\n  }\n\n  /* 포커스 윤곽 제거 */\n  .tox :focus { outline: none !important; box-shadow: none !important; }\n\n  /* 모바일/오버플로우 메뉴 */\n  .tox-tinymce-aux,\n  .tox .tox-toolbar__overflow,\n  .tox .tox-menu,\n  .tox .tox-collection__item {\n    background: #121212 !important;\n    color: #fff !important;\n    border-color: #3D3D3D !important;\n  }\n  .tox .tox-collection__item--active,\n  .tox .tox-tbtn--enabled {\n    background: #1e1e1e !important;\n    color: #fff !important;\n  }\n  .tox .tox-mbtn__select-label,\n  .tox .tox-tbtn svg { color:#fff !important; fill:#fff !important; }\n\n  /* 모바일 탭 하이라이트 파랑 제거 */\n  .tox *, .tox-tinymce-aux * { -webkit-tap-highlight-color: transparent; }\n\n  /* 모달 백드롭 */\n  .tox .tox-dialog-wrap__backdrop { background: transparent !important; }\n\n  /* === Dialog (이미지 업로드 창 등) === */\n  .tox .tox-dialog {\n    background: #3D3D3D !important;\n    border-radius: 5px !important;\n    color: #fff !important;\n    overflow: hidden;\n  }\n  .tox .tox-dialog__header,\n  .tox .tox-dialog__body,\n  .tox .tox-dialog__footer {\n    background: #3D3D3D !important;\n    color: #fff !important;\n  }\n  .tox .tox-dialog * { color: #fff !important; }\n  .tox .tox-dialog .tox-icon svg,\n  .tox .tox-dialog .tox-lock-toggle {\n    fill: #fff !important; color: #fff !important;\n  }\n\n  /* Dialog 입력 요소 */\n  .tox .tox-dialog .tox-textfield,\n  .tox .tox-dialog .tox-toolbar-textfield,\n  .tox .tox-dialog .tox-selectfield,\n  .tox .tox-dialog .tox-textarea,\n  .tox .tox-dialog textarea {\n    background: #3D3D3D !important;\n    color: #fff !important;\n    border: 1px solid #121212 !important;\n    border-radius: 5px !important;\n  }\n\n  .tox .tox-dialog .tox-selectfield select {\n    background: #3D3D3D !important;\n    color: #fff !important;\n    border: 1px solid #121212 !important;\n    border-radius: 5px !important;\n  }\n\n  .tox .tox-dialog .tox-textfield:focus,\n  .tox .tox-dialog .tox-textfield:active,\n  .tox .tox-dialog .tox-toolbar-textfield:focus,\n  .tox .tox-dialog .tox-selectfield select:focus,\n  .tox .tox-dialog .tox-textarea:focus,\n  .tox .tox-dialog textarea:focus {\n    border-color: #121212 !important;\n    outline: none !important;\n    box-shadow: none !important;\n  }\n  .tox .tox-form__group:focus-within { box-shadow: none !important; }\n\n  /* Dialog 버튼 */\n  .tox .tox-dialog .tox-button {\n    background: #121212 !important;\n    border: 1px solid #121212 !important;\n    color: #fff !important;\n    border-radius: 5px !important;\n  }\n  .tox .tox-dialog .tox-button:hover {\n    background: #1e1e1e !important;\n    border-color: #121212 !important;\n    color: #fff !important;\n  }\n  .tox .tox-dialog .tox-button:focus,\n  .tox .tox-dialog .tox-button:active {\n    outline: none !important;\n    box-shadow: none !important;\n  }\n`}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",marginBottom:16},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:14,fontWeight:400},children:\"New Blog\"}),/*#__PURE__*/_jsx(\"button\",{style:{background:\"none\",border:\"none\",fontSize:14,color:\"#EDEDED\",cursor:\"pointer\"},onClick:onClose,children:\"✕\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",gap:12,flex:1},children:[/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,background:\"#121212\",border:\"1px solid #3D3D3D\",borderRadius:5,display:\"flex\",flexDirection:\"column\",gap:12,padding:16},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:16,fontWeight:400,color:\"#EDEDED\",paddingBottom:8,borderBottom:\"1px solid #3D3D3D\"},children:\"국문\"}),/*#__PURE__*/_jsx(\"div\",{style:{height:44,display:\"flex\",alignItems:\"center\",fontSize:12,fontWeight:400,color:\"#EDEDED\",background:\"transparent\",padding:0},children:\"작성자\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",alignItems:\"center\",gap:16},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:200,display:\"flex\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"div\",{style:mainImageStyle,children:/*#__PURE__*/_jsx(\"img\",{src:localStorage.getItem(\"photoUrl\")||\"/images/default-user.png\",alt:\"profile\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}})})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12,flex:1,justifyContent:\"center\"},children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:localStorage.getItem(\"name\")||\"\",readOnly:true,className:\"a-input\"}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:localStorage.getItem(\"role\")||\"\",readOnly:true,className:\"a-input\"})]})]}),/*#__PURE__*/_jsx(\"div\",{style:{height:44,display:\"flex\",alignItems:\"center\",fontSize:12,fontWeight:400,color:\"#EDEDED\",background:\"transparent\",padding:0},children:\"블로그 작성\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",alignItems:\"flex-start\",gap:16,marginBottom:12},children:[/*#__PURE__*/_jsxs(\"label\",{children:[/*#__PURE__*/_jsx(\"div\",{style:{width:200,height:156,borderRadius:5,border:\"1px solid #3D3D3D\",background:\"#1A1A1A\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",overflow:\"hidden\"},children:previewImage?/*#__PURE__*/_jsx(\"img\",{src:previewImage,alt:\"main\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",borderRadius:5}}):/*#__PURE__*/_jsx(\"span\",{style:{color:\"#777\",fontSize:12},children:\"대표이미지\"})}),/*#__PURE__*/_jsx(\"input\",{type:\"file\",accept:\"image/*\",style:{display:\"none\"},onChange:async e=>{const file=e.target.files?.[0];if(!file)return;// 1. 미리보기\nconst previewUrl=URL.createObjectURL(file);setPreviewImage(previewUrl);// 2. 파일명 안전 처리\nconst ext=\"jpg\"// 압축 후 무조건 jpeg 저장\n;const base=file.name.replace(/\\.[^/.]+$/,\"\");const safeBase=base.replace(/[^a-zA-Z0-9\\-_]/g,\"_\");const safeName=`${localStorage.getItem(\"empNo\")}-${Date.now()}-${safeBase}.${ext}`;const filePath=`blog/main/${safeName}`;try{// 3. 압축 실행\nconst compressedBlob=await compressImage(file,1200,.8);const compressedFile=blobToFile(compressedBlob,safeName);// 4. Supabase 업로드\nconst{error}=await supabase.storage.from(\"blog-images\").upload(filePath,compressedFile,{upsert:true});if(error){console.error(\"대표이미지 업로드 실패:\",error.message);return;}// 5. public URL 저장\nconst{data}=supabase.storage.from(\"blog-images\").getPublicUrl(filePath);setMainImage(data.publicUrl);}catch(err){console.error(\"압축/업로드 중 오류:\",err);}}})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12,flex:1,justifyContent:\"center\"},children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",placeholder:\"제목을 입력하세요\",className:\"a-input\",value:titleKr,onChange:e=>setTitleKr(e.target.value)}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:date,onChange:e=>handleDateChange(e.target.value),placeholder:\"yyyy-mm-dd\",maxLength:10,className:\"a-input\"}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:slug,readOnly:true,onChange:e=>setSlug(e.target.value),placeholder:\"사번-번호\",className:\"a-input\"})]})]}),/*#__PURE__*/_jsx(\"div\",{ref:editorKrRef,style:{minHeight:300,border:\"1px solid #3D3D3D\",borderRadius:5,background:\"#121212\"}})]}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,background:\"#121212\",border:\"1px solid #3D3D3D\",borderRadius:5,display:\"flex\",flexDirection:\"column\",gap:12,padding:16},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:16,fontWeight:400,color:\"#EDEDED\",paddingBottom:8,borderBottom:\"1px solid #3D3D3D\"},children:\"영문\"}),/*#__PURE__*/_jsx(\"div\",{style:{height:44,display:\"flex\",alignItems:\"center\",fontSize:12,fontWeight:400,color:\"#EDEDED\",background:\"transparent\",padding:0},children:\"Author\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",alignItems:\"center\",gap:16},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:200,display:\"flex\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"div\",{style:mainImageStyle,children:/*#__PURE__*/_jsx(\"img\",{src:localStorage.getItem(\"photoUrl\")||\"/images/default-user.png\",alt:\"profile\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}})})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12,flex:1,justifyContent:\"center\"},children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:localStorage.getItem(\"nameEn\")||\"\",readOnly:true,className:\"a-input\"}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:roleMap[localStorage.getItem(\"role\")||\"\"]||\"\",readOnly:true,className:\"a-input\"})]})]}),/*#__PURE__*/_jsx(\"div\",{style:{height:44,display:\"flex\",alignItems:\"center\",fontSize:12,fontWeight:400,color:\"#EDEDED\",background:\"transparent\",padding:0},children:\"New Blog\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",alignItems:\"flex-start\",gap:16,marginBottom:12},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:200,height:156,borderRadius:5,border:\"1px solid #3D3D3D\",background:\"#1A1A1A\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",overflow:\"hidden\"},children:mainImage||previewImage?/*#__PURE__*/_jsx(\"img\",{src:mainImage||previewImage,alt:\"main\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",borderRadius:5}}):/*#__PURE__*/_jsx(\"span\",{style:{color:\"#777\",fontSize:12},children:\"Main Image\"})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12,flex:1,justifyContent:\"center\"},children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",placeholder:\"Enter title\",className:\"a-input\",value:titleEn,onChange:e=>setTitleEn(e.target.value)}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:date,onChange:e=>handleDateChange(e.target.value),placeholder:\"yyyy-mm-dd\",maxLength:10,className:\"a-input\"}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:slug,readOnly:true,onChange:e=>setSlug(e.target.value),placeholder:\"empNo-count\",className:\"a-input\"})]})]}),/*#__PURE__*/_jsx(\"div\",{ref:editorEnRef,style:{minHeight:300,border:\"1px solid #3D3D3D\",borderRadius:5,background:\"#121212\"}})]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{marginTop:20,display:\"flex\",gap:10,justifyContent:\"flex-end\"},children:[/*#__PURE__*/_jsx(\"button\",{className:\"a-btn\",style:{flex:\"none\",width:135},onClick:onClose,children:\"취소\"}),/*#__PURE__*/_jsx(\"button\",{className:\"a-btn\",style:{width:135},onClick:handleSubmit,disabled:uploading||success,children:uploading?\"업로드 중...\":success?\"업로드 완료\":\"업로드\"})]})]});}const mainImageStyle={width:100,height:100,border:\"1px solid #3D3D3D\",borderRadius:\"50%\",background:\"#121212\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",overflow:\"hidden\",flexShrink:0};const roleMap={이사장:\"Chairman\",상임이사:\"Executive Director\",비상임이사:\"Non-executive Director\",사무국장:\"Secretary General\",실장:\"General Manager\",단장:\"Head of Division\",사회복지사:\"Social Worker\",기타:\"Other\"};// === 이미지 압축 함수 ===\nconst compressImage=(file,maxWidth=1200,quality=.85)=>{return new Promise((resolve,reject)=>{const img=new Image;img.src=URL.createObjectURL(file);img.onload=()=>{const canvas=document.createElement(\"canvas\");const scale=maxWidth/img.width;const w=img.width>maxWidth?maxWidth:img.width;const h=img.width>maxWidth?img.height*scale:img.height;canvas.width=w;canvas.height=h;const ctx=canvas.getContext(\"2d\");if(!ctx)return reject(\"No canvas context\");ctx.drawImage(img,0,0,w,h);canvas.toBlob(blob=>{if(blob)resolve(blob);else reject(\"Blob conversion failed\");},\"image/jpeg\",quality);};img.onerror=err=>reject(err);});};// === Blob → File 변환 ===\nconst blobToFile=(blob,fileName)=>{return new File([blob],fileName,{type:blob.type});};export function BlogEditModal({post,onClose,onUpdate}){const[newMainImage,setNewMainImage]=React.useState(null);const[previewImage,setPreviewImage]=React.useState(\"\");// ✅ 제목 상태 추가 (여기!)\nconst[titleKr,setTitleKr]=React.useState(post.titleKr||\"\");const[titleEn,setTitleEn]=React.useState(post.titleEn||\"\");React.useEffect(()=>{if(post.mainImage){setPreviewImage(post.mainImage);}},[post.mainImage]);console.log(\"BlogEditModal post:\",post)// 임시\n;console.log(\"mainImage 값:\",post.mainImage,\"타입:\",typeof post.mainImage)//임시\n;console.log(\"falsy 여부:\",!post.mainImage)//임시\n;return /*#__PURE__*/_jsxs(\"div\",{style:{fontFamily:'\"General Sans\", Inter, sans-serif',background:\"#1A1A1A\",border:\"1px solid #3D3D3D\",borderRadius:5,padding:24,width:\"100%\",color:\"#EDEDED\",boxShadow:\"0 0 20px rgba(0,0,0,0.6)\",boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",marginBottom:16},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n    .a-input {\n        width: 100%;\n        padding: 10px;\n        font-size: 14px;\n        font-family: \"General Sans\", Inter, sans-serif;\n        color: #EDEDED;\n        background: #121212;\n        border: 1px solid #3D3D3D;\n        border-radius: 5px;\n        box-sizing: border-box;\n        height: 44px;\n        line-height: 44px;\n    }\n\n    .a-input:focus {\n        outline: none;\n        border-color: #5A5A5A;\n        background: #1A1A1A;\n    }\n\n    .a-btn {\n        font-family: \"General Sans\", Inter, sans-serif;\n        font-weight: 400;\n        font-size: 14px;\n        color: #EDEDED;\n        background: #121212;\n        border: 1px solid #3D3D3D;\n        border-radius: 5px;\n        height: 44px;\n        line-height: 44px;\n        cursor: pointer;\n        box-sizing: border-box;\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease;\n    }\n\n    .a-btn:hover {\n        background: #1A1A1A;\n    }\n    `}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:14,fontWeight:400},children:\"Edit Blog\"}),/*#__PURE__*/_jsx(\"button\",{style:{background:\"none\",border:\"none\",fontSize:14,color:\"#EDEDED\",cursor:\"pointer\"},onClick:onClose,children:\"✕\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",gap:12,flex:1},children:[/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,background:\"#121212\",border:\"1px solid #3D3D3D\",borderRadius:5,display:\"flex\",flexDirection:\"column\",gap:12,padding:16},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:16,fontWeight:400,color:\"#EDEDED\",paddingBottom:8,borderBottom:\"1px solid #3D3D3D\"},children:\"국문\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",alignItems:\"center\",gap:16},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:200,display:\"flex\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"div\",{style:mainImageStyle,children:/*#__PURE__*/_jsx(\"img\",{src:post.author?.photoUrl||\"/images/default-user.png\",alt:\"profile\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}})})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12,flex:1,justifyContent:\"center\"},children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:post.author?.name||\"\",readOnly:true,className:\"a-input\"}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:post.author?.role||\"\",readOnly:true,className:\"a-input\"})]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",gap:16},children:[/*#__PURE__*/_jsxs(\"label\",{children:[/*#__PURE__*/_jsx(\"div\",{style:{width:200,height:156,borderRadius:5,border:\"1px solid #3D3D3D\",background:\"#1A1A1A\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",overflow:\"hidden\"},children:previewImage?/*#__PURE__*/_jsx(\"img\",{src:previewImage,alt:\"main\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",borderRadius:5}}):/*#__PURE__*/_jsx(\"span\",{style:{color:\"#777\",fontSize:12},children:\"대표이미지\"})}),/*#__PURE__*/_jsx(\"input\",{type:\"file\",accept:\"image/*\",style:{display:\"none\"},onChange:async e=>{const file=e.target.files?.[0];if(!file)return;// 미리보기\nconst previewUrl=URL.createObjectURL(file);setPreviewImage(previewUrl);// 안전한 파일명 생성\nconst ext=\"jpg\";const base=file.name.replace(/\\.[^/.]+$/,\"\");const safeBase=base.replace(/[^a-zA-Z0-9\\-_]/g,\"_\");const safeName=`${Date.now()}-${safeBase}.${ext}`;try{// 압축 실행\nconst compressedBlob=await compressImage(file,1200,.8);const compressedFile=blobToFile(compressedBlob,safeName);// 교체된 파일을 상태에 저장\nsetNewMainImage(compressedFile);}catch(err){console.error(\"압축 실패:\",err);}}})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12,flex:1},children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:titleKr,onChange:e=>setTitleKr(e.target.value),className:\"a-input\"}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:post.date,className:\"a-input\",readOnly:true}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:post.slug,className:\"a-input\",readOnly:true})]})]}),/*#__PURE__*/_jsx(\"div\",{style:{minHeight:300,border:\"1px solid #3D3D3D\",borderRadius:5,background:\"#121212\",color:\"#888\",padding:12},children:post.contentKr})]}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,background:\"#121212\",border:\"1px solid #3D3D3D\",borderRadius:5,display:\"flex\",flexDirection:\"column\",gap:12,padding:16},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:16,fontWeight:400,color:\"#EDEDED\",paddingBottom:8,borderBottom:\"1px solid #3D3D3D\"},children:\"영문\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",alignItems:\"center\",gap:16},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:200,display:\"flex\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"div\",{style:mainImageStyle,children:/*#__PURE__*/_jsx(\"img\",{src:post.author?.photoUrl||\"/images/default-user.png\",alt:\"profile\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}})})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12,flex:1,justifyContent:\"center\"},children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:post.author?.nameEn||\"\",readOnly:true,className:\"a-input\"}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:roleMap[post.author?.role||\"\"]||\"\",readOnly:true,className:\"a-input\"})]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",gap:16},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:200,height:156,borderRadius:5,border:\"1px solid #3D3D3D\",background:\"#1A1A1A\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",overflow:\"hidden\"},children:previewImage?/*#__PURE__*/_jsx(\"img\",{src:previewImage,alt:\"main\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",borderRadius:5}}):/*#__PURE__*/_jsx(\"span\",{style:{color:\"#777\",fontSize:12},children:\"Main Image\"})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12,flex:1},children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:titleEn,onChange:e=>setTitleEn(e.target.value),className:\"a-input\"}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:post.date,className:\"a-input\",readOnly:true}),/*#__PURE__*/_jsx(\"input\",{type:\"text\",value:post.slug,className:\"a-input\",readOnly:true})]})]}),/*#__PURE__*/_jsx(\"div\",{style:{minHeight:300,border:\"1px solid #3D3D3D\",borderRadius:5,background:\"#121212\",color:\"#888\",padding:12},children:post.contentEn})]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{marginTop:20,display:\"flex\",gap:10,justifyContent:\"flex-end\"},children:[/*#__PURE__*/_jsx(\"button\",{className:\"a-btn\",style:{width:135},onClick:()=>{console.log(\"삭제하기 클릭\");},children:\"삭제하기\"}),/*#__PURE__*/_jsx(\"button\",{className:\"a-btn\",style:{width:135},onClick:onClose,children:\"닫기\"}),/*#__PURE__*/_jsx(\"button\",{className:\"a-btn\",style:{width:135},onClick:async()=>{try{// 1. 새 이미지가 있으면 Supabase Storage에 덮어쓰기\nif(newMainImage){// post.mainImage = public URL → 경로만 추출\nconst path=post.mainImage.replace(/^.*\\/storage\\/v1\\/object\\/public\\/blog-images\\//,\"\");const{error}=await supabase.storage.from(\"blog-images\")// ⚠️ 실제 버킷 이름 맞춰야 함\n.upload(path,newMainImage,{upsert:true});if(error)throw error;}// 2. DB 업데이트 (이미지 URL은 안 바뀌니까 그대로 둠)\nconst{error:updateError}=await supabase.from(\"blog\").update({titleKr:titleKr,titleEn:titleEn,contentKr:post.contentKr,contentEn:post.contentEn}).eq(\"id\",post.id);if(updateError)throw updateError;// 3. 부모 콜백으로 알림\nonUpdate({...post,titleKr,titleEn});onClose();}catch(err){console.error(\"수정 실패:\",err);}},children:\"수정\"})]})]});}addPropertyControls(BlogListTable,{numberWidth:{type:ControlType.Number,title:\"Number Width\",min:5,max:200,defaultValue:60},titleWidth:{type:ControlType.Number,title:\"Title Width\",min:20,max:400},authorWidth:{type:ControlType.Number,title:\"Author Width\",min:20,max:400},roleWidth:{type:ControlType.Number,title:\"Role Width\",min:20,max:400},dateWidth:{type:ControlType.Number,title:\"Date Width\",min:20,max:400},viewsWidth:{type:ControlType.Number,title:\"Views Width\",min:20,max:400,defaultValue:80}});\nexport const __FramerMetadata__ = {\"exports\":{\"fetchEmployee\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BlogListTable\":{\"type\":\"reactComponent\",\"name\":\"BlogListTable\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"supabase\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createPost\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BlogWriteModal\":{\"type\":\"reactComponent\",\"name\":\"BlogWriteModal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"BlogEditModal\":{\"type\":\"reactComponent\",\"name\":\"BlogEditModal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BlogTable.map"],"mappings":"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"}