|
1 | 1 | <script lang="ts"> |
2 | | - import { run } from 'svelte/legacy'; |
3 | | -
|
4 | | -
|
5 | 2 | import LTTProductCard from "$lib/lttstore/LTTProductCard.svelte"; |
6 | 3 | import { page } from "$app/state"; |
7 | 4 | import {flip} from "svelte/animate"; |
8 | 5 | import { fade } from "svelte/transition" |
9 | 6 | import { goto, invalidateAll } from "$app/navigation"; |
10 | 7 | import { Progress } from "@skeletonlabs/skeleton-svelte"; |
11 | 8 | import { dev } from "$app/environment"; |
| 9 | + import type { PageProps } from "./$types"; |
| 10 | + import DateStamp from "$lib/DateStamp.svelte"; |
12 | 11 |
|
13 | | - let { data } = $props(); |
| 12 | + let { data }: PageProps = $props(); |
14 | 13 |
|
15 | 14 | let loading = $state(false); |
16 | 15 | async function reload() { |
|
69 | 68 | </div> |
70 | 69 | {#each data.allProducts as product, i (product.id)} |
71 | 70 | <div class="inline-block" animate:flip={{ duration: 200 }}> |
72 | | - <LTTProductCard product={JSON.parse(product.product)} shortTitle={product.shortTitle} available={product.available} lazyLoadImage={i > 30}/> |
| 71 | + <LTTProductCard |
| 72 | + product={JSON.parse(product.product)} |
| 73 | + shortTitle={product.shortTitle} |
| 74 | + available={product.available} |
| 75 | + lazyLoadImage={i > 30} |
| 76 | + > |
| 77 | + {#snippet detail()} |
| 78 | + <div class="opacity-80 text-xs"> |
| 79 | + {#if data.sortColumn === "purchasesPerDay"} |
| 80 | + {product.purchasesPerDay?.toFixed(2) ?? "??"} spd |
| 81 | + {:else if data.sortColumn === "purchasesPerHour"} |
| 82 | + {product.purchasesPerHour?.toFixed(2) ?? "??"} sph |
| 83 | + {:else if data.sortColumn === "metadataUpdate"} |
| 84 | + Meta updated |
| 85 | + {#if product.metadataUpdate && product.metadataUpdate > 0} |
| 86 | + <DateStamp epochSeconds={product.metadataUpdate / 1e3} /> |
| 87 | + {:else} |
| 88 | + N/A |
| 89 | + {/if} |
| 90 | + {:else if data.sortColumn === "stockChecked"} |
| 91 | + Stock checked |
| 92 | + {#if product.stockChecked && product.stockChecked > 0} |
| 93 | + <DateStamp epochSeconds={product.stockChecked / 1e3} /> |
| 94 | + {:else} |
| 95 | + N/A |
| 96 | + {/if} |
| 97 | + {:else if data.sortColumn === "lastRestock"} |
| 98 | + Restocked |
| 99 | + {#if product.lastRestock && product.lastRestock > 0} |
| 100 | + <DateStamp epochSeconds={product.lastRestock / 1e3} /> |
| 101 | + {:else} |
| 102 | + N/A |
| 103 | + {/if} |
| 104 | + {/if} |
| 105 | + </div> |
| 106 | + {/snippet} |
| 107 | + </LTTProductCard> |
73 | 108 | </div> |
74 | 109 | {:else} |
75 | 110 | No products are being tracked yet! |
|
0 commit comments