Show boot splash on app open/reload for logged-in users.
Deploy Ladill Hosting / deploy (push) Successful in 53s
Deploy Ladill Hosting / deploy (push) Successful in 53s
Replace the once-per-session sessionStorage guard (which suppressed the loading screen after its first appearance) with entry-aware logic: show on app entry and reloads, suppress on internal link navigations and back/forward.
This commit is contained in:
@@ -27,15 +27,24 @@
|
||||
(function(){
|
||||
var el=document.getElementById('ladill-boot');
|
||||
if(!el)return;
|
||||
// Show once per browser session; suppress instantly on later navigations (no flash).
|
||||
function remove(){if(el&&el.parentNode)el.parentNode.removeChild(el);}
|
||||
// Show when the user opens or reloads the app; suppress only on internal
|
||||
// link navigations and back/forward so we don't flash on every click.
|
||||
try{
|
||||
if(sessionStorage.getItem('lb_booted')){el.parentNode.removeChild(el);return;}
|
||||
sessionStorage.setItem('lb_booted','1');
|
||||
var navType='navigate';
|
||||
var nav=performance.getEntriesByType&&performance.getEntriesByType('navigation');
|
||||
if(nav&&nav.length){navType=nav[0].type;}
|
||||
else if(performance.navigation){navType=performance.navigation.type===1?'reload':(performance.navigation.type===2?'back_forward':'navigate');}
|
||||
var internal=false;
|
||||
if(navType!=='reload'&&document.referrer){
|
||||
try{internal=new URL(document.referrer).origin===location.origin;}catch(e){}
|
||||
}
|
||||
if(internal||navType==='back_forward'){remove();return;}
|
||||
}catch(e){}
|
||||
var start=Date.now(),MIN=550;
|
||||
function done(){
|
||||
var wait=Math.max(0,MIN-(Date.now()-start));
|
||||
setTimeout(function(){if(!el)return;el.style.opacity='0';setTimeout(function(){if(el&&el.parentNode)el.parentNode.removeChild(el);},400);},wait);
|
||||
setTimeout(function(){if(!el)return;el.style.opacity='0';setTimeout(remove,400);},wait);
|
||||
}
|
||||
if(document.readyState==='complete')done();else window.addEventListener('load',done);
|
||||
setTimeout(done,8000); // safety net
|
||||
|
||||
Reference in New Issue
Block a user