How can I configure a loading screen to display during page transitions?
I’ve used a loader inside a modal for other loading events, such as when a collection isFetching.
However, my attempts to display a loader when a user navigates to a different page have all failed. i.e. the loader disappears before the page actually changes. Not having a transition feels like one of those awkward moments where you’re not sure if anything is happening.
Just looking to achieve something as simple as the one in the editor. Eg.
Thanks for the quick response. I’m using this that I configured in the workflow. It works, but it’s very discreet. it is possible that the user does not see. Could he be a little wider perhaps?
I’ve submitted a ticket as the progress bar persists as ‘blue’ despite changing the color within the editor settings.
Understanding you’re working on other options, in the interim, any advice on how I could take a low-code approach? Does it require a custom Vue component?
Naïve me looks at this and thinks… if there is already an element with property showPageLoadProgress that is being used to create this progress bar, why can’t I just slip this little bit of code in, just as I do within a html element…
I took the experimental approach, but resolved to what I thought was the easiest and lightest approach.
Created a full page skeleton that is a Modal element, used globally across my pages. I use this to ‘mask’ the static content on the page while/if I have some workflows running on Page Load.
Created other skeletons which are just Divs nested inside the pages respective Section elements. I use these when the content loading just relates to the primary area.
Within each, I create a bunch of empty divs with rough dimensions to mimic the format of the page or section content. Each empty div just need the class eg. ‘skeleton-loader’…
Added css code to the projects Custom Code, example:
<style>
.skeleton-loader {
background-color: #3f3f4680 50%; /* Updated to the primary color */
background-image: linear-gradient(
90deg,
#3f3f4680 8%,
#3f3f46cf 16%,
#3f3f46cf 24%,
#3f3f4680 32%
);
background-size: 200% 100%;
animation: 1.5s shine linear infinite;
}
@keyframes shine { to { background-position-x: -200%; }}
</style>