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>