summaryrefslogtreecommitdiff
path: root/src/components/Page.svelte
diff options
context:
space:
mode:
authorrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
committerrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
commitbce557cc2dc767628bed6aac87301a1be7c5431b (patch)
treeb51a051228d01fe3306cd7626d4a96768aadb944 /src/components/Page.svelte
init commit
Diffstat (limited to 'src/components/Page.svelte')
-rw-r--r--src/components/Page.svelte68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/components/Page.svelte b/src/components/Page.svelte
new file mode 100644
index 0000000..5b44c06
--- /dev/null
+++ b/src/components/Page.svelte
@@ -0,0 +1,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}