diff --git a/public/core/auth-security-v1774.js b/public/core/auth-security-v1774.js index 940627e..c8a3676 100644 --- a/public/core/auth-security-v1774.js +++ b/public/core/auth-security-v1774.js @@ -10,16 +10,22 @@ const client=()=>cloud()?.getClient?.()||null; const esc=value=>window.SunSafe?.escapeHTML?window.SunSafe.escapeHTML(String(value??'')):String(value??''); const PLAN_LABELS={basic:'Базовый',professional:'Профессиональный',full:'Полный'}; - let signupPolicy={checked:false,promoOptional:false,defaultPlan:'basic'}; + let signupPolicy={checked:false,promoOptional:false,defaultPlan:'basic'},signupPolicyPromise=null; - async function refreshSignupPolicy(c=client()){ + async function refreshSignupPolicy(c=client(),force=false){ + if(signupPolicy.checked&&!force)return signupPolicy; + if(signupPolicyPromise)return signupPolicyPromise; if(!c)return signupPolicy; - try{ - const {data,error}=await c.rpc('caterium_public_signup_policy'); - if(error)throw error; - signupPolicy={checked:true,promoOptional:data?.promo_optional===true,defaultPlan:data?.default_plan==='basic'?'basic':'basic'}; - }catch(_){signupPolicy={checked:true,promoOptional:false,defaultPlan:'basic'};} - return signupPolicy; + const task=(async()=>{ + try{ + const {data,error}=await c.rpc('caterium_public_signup_policy'); + if(error)throw error; + signupPolicy={checked:true,promoOptional:data?.promo_optional===true,defaultPlan:data?.default_plan==='basic'?'basic':'basic'}; + }catch(_){signupPolicy={checked:true,promoOptional:false,defaultPlan:'basic'};} + return signupPolicy; + })(); + signupPolicyPromise=task; + try{return await task}finally{if(signupPolicyPromise===task)signupPolicyPromise=null;} } function promoHintText(){return signupPolicy.promoOptional?'Без промокода будет создана компания на Базовом тарифе. Промокод может активировать другой тариф и пробный период.':'Для создания новой компании требуется действующий промокод.';} function renderPromoPolicy(){const label=$('sunGatePromoLabelTextV181'),hint=$('sunGatePromoHintV181');if(label)label.textContent=signupPolicy.promoOptional?'Промокод — необязательно':'Промокод пробной версии';if(hint&&!String($('sunGatePromoV181')?.value||'').trim())hint.textContent=promoHintText();}