+
diff --git a/src/pages/partials/cards.astro b/src/pages/partials/cards.astro
index cc2aae9..cbc3efd 100644
--- a/src/pages/partials/cards.astro
+++ b/src/pages/partials/cards.astro
@@ -8,15 +8,18 @@ export const prerender = false;
// get the query from post request using form data
const formData = await Astro.request.formData();
const query = formData.get('q')?.toString() || '';
+const start = Number(formData.get('start')?.toString() || '0');
// use typesense to search for cards matching the query and return the productIds of the results
const searchResults = await client.collections('cards').documents().search({
q: query,
filter_by: 'sealed:false',
query_by: 'productLineName,productName,setName,number,rarityName',
- per_page: 250,
+ per_page: 20,
+ page: Math.floor(start / 20) + 1,
});
const productIds = searchResults.hits?.map((hit: any) => hit.document.productId) ?? [];
+const totalHits = searchResults.found;
// get pokemon data with prices and set info using searchResults and then query the database for each card to get the prices and set info
const pokemon = await db.query.cards.findMany({
@@ -39,6 +42,11 @@ const formatPrice = (price:any) => {
const conditionOrder = ["Near Mint", "Lightly Played", "Moderately Played", "Heavily Played", "Damaged"];
---
+{(start === 0) &&
+
+}
{pokemon.map((card) => (
@@ -66,3 +74,8 @@ const conditionOrder = ["Near Mint", "Lightly Played", "Moderately Played", "Hea
))}
+{start + 20 < totalHits &&
+
+ Loading...
+
+}