{#if revealed}
  <svelte:component this={pageComponent} {params} />
{/if}
<script>
  import { doubleRAF } from '../_utils/doubleRAF'
  // On the very first page load, avoid doing a "reveal" because
  // it leads to a flash between when the SSR is shown, the two frame we hide it,
  // and then when we show it again.
  //
  // We only really need LazyPage behavior when the user is clicking around
  // after the page has loaded, to improve input responsiveness.
  let firstTime = true

  export default {
    oncreate () {
      firstTime = false
      // Yes, triple raf. This is to ensure the NavItem animation plays before we
      // start rendering the new page.
      doubleRAF(() => requestAnimationFrame(() => this.set({ revealed: true })))
    },
    data: () => ({
      revealed: !process.browser || firstTime
    })
  }
</script>