PageResolver.svelte
1 <script lang="ts"> 2 import type { Page } from '~/jet/models'; 3 4 import PageComponent from '~/components/Page.svelte'; 5 import ErrorComponent from '~/components/Error.svelte'; 6 import LoadingSpinner from '@amp/web-app-components/src/components/LoadingSpinner/LoadingSpinner.svelte'; 7 8 export let page: Promise<Page> | Page; 9 export let isFirstPage: boolean; 10 </script> 11 12 {#await page} 13 <div data-testid="page-loading"> 14 <!-- 15 Delay showing the spinner on initial page load after app boot. 16 After that, the FlowAction handler already waits 500ms before 17 it changes DOM, so we only need to wait 1000ms. 18 --> 19 <LoadingSpinner delay={isFirstPage ? 1500 : 1000} /> 20 </div> 21 {:then page} 22 <PageComponent {page} /> 23 {:catch error} 24 <ErrorComponent {error} /> 25 {/await}