diff options
| author | rxliuli <rxliuli@gmail.com> | 2025-11-04 05:03:50 +0800 |
|---|---|---|
| committer | rxliuli <rxliuli@gmail.com> | 2025-11-04 05:03:50 +0800 |
| commit | bce557cc2dc767628bed6aac87301a1be7c5431b (patch) | |
| tree | b51a051228d01fe3306cd7626d4a96768aadb944 /src/components/pages/SeeAllPage.svelte | |
init commit
Diffstat (limited to 'src/components/pages/SeeAllPage.svelte')
| -rw-r--r-- | src/components/pages/SeeAllPage.svelte | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/components/pages/SeeAllPage.svelte b/src/components/pages/SeeAllPage.svelte new file mode 100644 index 0000000..d401f32 --- /dev/null +++ b/src/components/pages/SeeAllPage.svelte @@ -0,0 +1,56 @@ +<script lang="ts"> + import type { SeeAllPage } from '@jet-app/app-store/api/models'; + import type { WebRenderablePage } from '@jet-app/app-store/api/models/web-renderable-page'; + + import DefaultPage from '~/components/pages/DefaultPage.svelte'; + import { getProductPageShelvesForOrdering } from '~/utils/shelves'; + import { setAccessibilityLayoutContext } from '~/context/accessibility-layout'; + import { isSmallLockupShelf } from '~/components/jet/shelf/SmallLockupShelf.svelte'; + import { isProductReviewShelf } from '~/components/jet/shelf/ProductReviewShelf.svelte'; + import { isProductRatingsShelf } from '~/components/jet/shelf/ProductRatingsShelf.svelte'; + import LinkWrapper from '~/components/LinkWrapper.svelte'; + + export let page: SeeAllPage & WebRenderablePage; + + $: shelves = getProductPageShelvesForOrdering(page, 'notPurchasedOrdering') + .filter((shelf) => { + const isShelfForReviewPage = + isProductReviewShelf(shelf) || isProductRatingsShelf(shelf); + + return ( + isSmallLockupShelf(shelf) || + (isShelfForReviewPage && page.seeAllType === 'reviews') + ); + }) + .map((shelf) => { + shelf.isHorizontal = false; + shelf.seeAllAction = null; + return shelf; + }); + + $: { + setAccessibilityLayoutContext({ shelves }); + } +</script> + +<DefaultPage page={{ shelves, title: null }}> + <svelte:fragment slot="before-shelves"> + <h1> + <LinkWrapper action={page.lockup.clickAction}> + {page.lockup.title} + </LinkWrapper> + </h1> + </svelte:fragment> +</DefaultPage> + +<style> + h1 { + font: var(--title-1); + color: var(--keyColor); + margin: 13px var(--bodyGutter) 0; + } + + h1 :global(a:hover) { + text-decoration: underline; + } +</style> |
