diff --git a/src/db/schema.ts b/src/db/schema.ts index 4d54210..d839ddd 100644 --- a/src/db/schema.ts +++ b/src/db/schema.ts @@ -137,7 +137,8 @@ export const inventory = pokeSchema.table('inventory',{ createdAt: timestamp().notNull().defaultNow(), }, (table) => [ - index('idx_userid_skuId').on(table.userId, table.skuId) + index('idx_userid_skuId').on(table.userId, table.skuId), + index('idx_userid_catalogName').on(table.userId, table.catalogName) ]); export const processingSkus = pokeSchema.table('processing_skus', { diff --git a/src/pages/dashboard.astro b/src/pages/dashboard.astro index 211915b..ffabeca 100644 --- a/src/pages/dashboard.astro +++ b/src/pages/dashboard.astro @@ -26,6 +26,18 @@ const totalQty = summary.totalQty || 0; const totalValue = summary.totalValue || 0; const totalGain = summary.totalGain || 0; +// distinct catalog names for this user, for the sidebar catalog list +const catalogRows = userId + ? await db + .selectDistinct({ name: inventory.catalogName }) + .from(inventory) + .where(eq(inventory.userId, userId)) + : []; +const catalogs = catalogRows + .map(r => r.name) + .filter((n): n is string => !!n) + .sort((a, b) => a.localeCompare(b)); + --- @@ -50,6 +62,10 @@ const totalGain = summary.totalGain || 0; data-catalog="all" role="button" style="cursor:pointer" + hx-post="/partials/inventory-cards" + hx-vals={JSON.stringify({ catalog: "all" })} + hx-target="#gridView" + hx-swap="innerHTML" > View all cards @@ -57,12 +73,16 @@ const totalGain = summary.totalGain || 0; {totalQty} - {["Case Cards", "Japanese Singles", "Bulk"].map((name) => ( + {catalogs.map((name) => (
  • {name}
  • @@ -299,6 +319,18 @@ const totalGain = summary.totalGain || 0; -->