Cache public signup policy lookup
This commit is contained in:
parent
646edfefde
commit
8e0da59b09
@ -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();}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user