summaryrefslogtreecommitdiff
path: root/src/components/jet/shelf/MarkerShelf.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/jet/shelf/MarkerShelf.svelte')
-rw-r--r--src/components/jet/shelf/MarkerShelf.svelte36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/components/jet/shelf/MarkerShelf.svelte b/src/components/jet/shelf/MarkerShelf.svelte
new file mode 100644
index 0000000..c719235
--- /dev/null
+++ b/src/components/jet/shelf/MarkerShelf.svelte
@@ -0,0 +1,36 @@
+<script lang="ts" context="module">
+ import type { ShelfBasedProductPage } from '@jet-app/app-store/api/models';
+ import type {
+ Lockup,
+ Shelf,
+ ShelfMarker,
+ } from '@jet-app/app-store/api/models';
+
+ export interface MarkerShelf extends Shelf {
+ contentType: 'marker';
+ marker: ShelfMarker;
+ items: Lockup[];
+ }
+
+ export function isMarkerShelf(shelf: Shelf): shelf is MarkerShelf {
+ const { contentType, marker, items } = shelf;
+
+ return (
+ contentType === 'marker' &&
+ typeof marker === 'string' &&
+ Array.isArray(items)
+ );
+ }
+</script>
+
+<script lang="ts">
+ import ProductTopLockup from '~/components/jet/marker-shelf/ProductTopLockup.svelte';
+
+ export let shelf: MarkerShelf;
+
+ export let page: ShelfBasedProductPage;
+</script>
+
+{#if shelf.marker === 'productTopLockup'}
+ <ProductTopLockup {page} />
+{/if}