summaryrefslogtreecommitdiff
path: root/src/components/Page.svelte
blob: 5b44c065c0ae4b799a3fa83efedf9f81e464052e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<script lang="ts">
    import {
        type Page,
        hasVisionProUrl,
        isAppEventDetailPage,
        isArticlePage,
        isChartsHubPage,
        isGenericPage,
        isSearchLandingPage,
        isShelfBasedProductPage,
        isTopChartsPage,
        isTodayPage,
        isSearchResultsPage,
        isStaticMessagePage,
        isSeeAllPage,
        isErrorPage,
    } from '~/jet/models';

    import AppEventDetailPage from './pages/AppEventDetailPage.svelte';
    import ArticlePage from './pages/ArticlePage.svelte';
    import ChartsHubPage from './pages/ChartsHubPage.svelte';
    import DefaultPage from './pages/DefaultPage.svelte';
    import ErrorPage from './pages/ErrorPage.svelte';
    import ProductPage from './pages/ProductPage.svelte';
    import VisionProPage from './pages/VisionProPage.svelte';
    import StaticMessagePageComponent from './pages/StaticMessagePage.svelte';
    import SearchLandingPage from './pages/SearchLandingPage.svelte';
    import SearchResultsPage from './pages/SearchResultsPage.svelte';
    import TopChartsPage from './pages/TopChartsPage.svelte';
    import TodayPage from './pages/TodayPage.svelte';
    import SeeAllPage from './pages/SeeAllPage.svelte';
    import MetaTags from '~/components/structure/MetaTags.svelte';
    import PageModal from '~/components/PageModal.svelte';

    export let page: Page;
</script>

<MetaTags {page} />

<PageModal />

{#if isAppEventDetailPage(page)}
    <AppEventDetailPage {page} />
{:else if isArticlePage(page)}
    <ArticlePage {page} />
{:else if isChartsHubPage(page)}
    <ChartsHubPage {page} />
{:else if isSearchLandingPage(page)}
    <SearchLandingPage {page} />
{:else if isSearchResultsPage(page)}
    <SearchResultsPage {page} />
{:else if isShelfBasedProductPage(page)}
    <ProductPage {page} />
{:else if isTopChartsPage(page)}
    <TopChartsPage {page} />
{:else if isGenericPage(page) && hasVisionProUrl(page)}
    <VisionProPage {page} />
{:else if isTodayPage(page)}
    <TodayPage {page} />
{:else if isStaticMessagePage(page)}
    <StaticMessagePageComponent {page} />
{:else if isSeeAllPage(page)}
    <SeeAllPage {page} />
{:else if isErrorPage(page)}
    <ErrorPage {page} />
{:else}
    <DefaultPage {page} />
{/if}