diff --git a/public/core/offer-workspace-v1769.js b/public/core/offer-workspace-v1769.js index e0ff9de..6d91954 100644 --- a/public/core/offer-workspace-v1769.js +++ b/public/core/offer-workspace-v1769.js @@ -10,7 +10,7 @@ const modal=()=>$('sunClientOfferModal'); const dialog=()=>modal()?.querySelector('.dialog')||null; const toast=(text,type='info',ms=4200)=>{try{return window.SunEnterprise?.toast?.(text,type,ms)}catch(_){};}; - let mode='preview',wasOpen=false,activeOrderId=''; + let mode='preview',activeOrderId=''; let openersPatched=false,classicPatched=false; function readGalleryMap(){try{const v=JSON.parse(localStorage.getItem(GALLERY_KEY)||'{}');return v&&typeof v==='object'&&!Array.isArray(v)?v:{}}catch(_){return{}}} @@ -105,8 +105,8 @@ function refreshOffer(){try{window.dispatchEvent(new CustomEvent('sunoffertemplatechange',{detail:{galleryOnly:true,orderId:activeOrderId}}))}catch(_){}} function patchOpeners(){ if(openersPatched)return true;const one=window.sunOpenClientOffer,cur=window.sunOpenCurrentClientOffer;if(typeof one!=='function'||typeof cur!=='function')return false; - window.sunOpenClientOffer=function(id,...rest){activeOrderId=String(id??'');const out=one.call(this,id,...rest);setTimeout(syncGalleryUi,80);return out}; - window.sunOpenCurrentClientOffer=function(...args){activeOrderId=currentDraftId();const out=cur.apply(this,args);setTimeout(syncGalleryUi,80);return out}; + window.sunOpenClientOffer=function(id,...rest){activeOrderId=String(id??'');mode='preview';const out=one.call(this,id,...rest);setTimeout(()=>{enhance();setMode('preview',false);syncGalleryUi()},80);return out}; + window.sunOpenCurrentClientOffer=function(...args){activeOrderId=currentDraftId();mode='preview';const out=cur.apply(this,args);setTimeout(()=>{enhance();setMode('preview',false);syncGalleryUi()},80);return out}; window.sunOpenClientOffer.__sunV1769=true;window.sunOpenCurrentClientOffer.__sunV1769=true;openersPatched=true;return true; } function patchClassic(){ @@ -127,10 +127,9 @@ },true); window.addEventListener('sun:offer-gallery-v1769-change',syncGalleryUi); - const observer=new MutationObserver(()=>{ - const m=modal();if(!m)return;enhance();const open=m.classList.contains('on');if(open&&!wasOpen)setMode('preview',false);wasOpen=open; - }); - observer.observe(document.documentElement,{subtree:true,childList:true,attributes:true,attributeFilter:['class']}); + let enhanceQueued=false; + const observer=new MutationObserver(()=>{if(enhanceQueued)return;enhanceQueued=true;queueMicrotask(()=>{enhanceQueued=false;enhance()})}); + observer.observe(document.documentElement,{subtree:true,childList:true}); installStyle();enhance(); const retry=setInterval(()=>{if(patchOpeners()&&patchClassic())clearInterval(retry)},350);setTimeout(()=>clearInterval(retry),15000); window.SunOfferWorkspaceV1769={VERSION,RELEASE,GALLERY_KEY,setMode,enhance,galleryFor,checks:()=>({version:VERSION,mode,modal:Boolean(modal()),tabs:Boolean($('sunOfferWorkspaceTabsV1769')),activeOrderId,openersPatched,classicPatched})};