/ src / components / jet / shelf / MediumLockupShelf.svelte
MediumLockupShelf.svelte
 1  <script lang="ts" context="module">
 2      import type { Lockup, Shelf } from '@jet-app/app-store/api/models';
 3  
 4      interface MediumLockupShelf extends Shelf {
 5          items: Lockup[];
 6      }
 7  
 8      export function isMediumLockupShelf(
 9          shelf: Shelf,
10      ): shelf is MediumLockupShelf {
11          const { contentType, items } = shelf;
12          return contentType === 'mediumLockup' && Array.isArray(items);
13      }
14  </script>
15  
16  <script lang="ts">
17      import MediumLockupItem from '~/components/jet/item/MediumLockupItem.svelte';
18      import ShelfItemLayout from '~/components/ShelfItemLayout.svelte';
19      import ShelfWrapper from '~/components/Shelf/Wrapper.svelte';
20  
21      export let shelf: MediumLockupShelf;
22  
23      $: isArticleContext = shelf.presentationHints?.isArticleContext;
24      $: gridType = isArticleContext ? 'Spotlight' : 'MediumLockup';
25  </script>
26  
27  <ShelfWrapper {shelf}>
28      <ShelfItemLayout {shelf} {gridType} rowsPerColumnOverride={2} let:item>
29          <MediumLockupItem {item} />
30      </ShelfItemLayout>
31  </ShelfWrapper>