Cache public signup policy lookup
This commit is contained in:
parent
646edfefde
commit
8e0da59b09
@ -10,16 +10,22 @@
|
|||||||
const client=()=>cloud()?.getClient?.()||null;
|
const client=()=>cloud()?.getClient?.()||null;
|
||||||
const esc=value=>window.SunSafe?.escapeHTML?window.SunSafe.escapeHTML(String(value??'')):String(value??'');
|
const esc=value=>window.SunSafe?.escapeHTML?window.SunSafe.escapeHTML(String(value??'')):String(value??'');
|
||||||
const PLAN_LABELS={basic:'Базовый',professional:'Профессиональный',full:'Полный'};
|
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;
|
if(!c)return signupPolicy;
|
||||||
|
const task=(async()=>{
|
||||||
try{
|
try{
|
||||||
const {data,error}=await c.rpc('caterium_public_signup_policy');
|
const {data,error}=await c.rpc('caterium_public_signup_policy');
|
||||||
if(error)throw error;
|
if(error)throw error;
|
||||||
signupPolicy={checked:true,promoOptional:data?.promo_optional===true,defaultPlan:data?.default_plan==='basic'?'basic':'basic'};
|
signupPolicy={checked:true,promoOptional:data?.promo_optional===true,defaultPlan:data?.default_plan==='basic'?'basic':'basic'};
|
||||||
}catch(_){signupPolicy={checked:true,promoOptional:false,defaultPlan:'basic'};}
|
}catch(_){signupPolicy={checked:true,promoOptional:false,defaultPlan:'basic'};}
|
||||||
return signupPolicy;
|
return signupPolicy;
|
||||||
|
})();
|
||||||
|
signupPolicyPromise=task;
|
||||||
|
try{return await task}finally{if(signupPolicyPromise===task)signupPolicyPromise=null;}
|
||||||
}
|
}
|
||||||
function promoHintText(){return signupPolicy.promoOptional?'Без промокода будет создана компания на Базовом тарифе. Промокод может активировать другой тариф и пробный период.':'Для создания новой компании требуется действующий промокод.';}
|
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();}
|
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