From ea9faa7589c1905b032745ff71f4c529e180d741 Mon Sep 17 00:00:00 2001 From: w3bdesign <45217974+w3bdesign@users.noreply.github.com> Date: Sun, 29 Jun 2025 19:26:51 +0200 Subject: [PATCH 1/3] Add filter and sorting --- components/Products/ProductCard.vue | 47 ++++++++++ components/Products/ProductFilter.vue | 56 ++++++++++++ components/Products/ProductGrid.vue | 32 +++++++ components/Products/ProductSort.vue | 22 +++++ pages/products.vue | 7 +- store/useProductsStore.js | 119 ++++++++++++++++++++++++++ 6 files changed, 282 insertions(+), 1 deletion(-) create mode 100644 components/Products/ProductCard.vue create mode 100644 components/Products/ProductFilter.vue create mode 100644 components/Products/ProductGrid.vue create mode 100644 components/Products/ProductSort.vue create mode 100644 store/useProductsStore.js diff --git a/components/Products/ProductCard.vue b/components/Products/ProductCard.vue new file mode 100644 index 00000000..699ad24d --- /dev/null +++ b/components/Products/ProductCard.vue @@ -0,0 +1,47 @@ + + + + + + + {{ product.name }} + + + + + + + + + + diff --git a/components/Products/ProductFilter.vue b/components/Products/ProductFilter.vue new file mode 100644 index 00000000..1fcbd0cf --- /dev/null +++ b/components/Products/ProductFilter.vue @@ -0,0 +1,56 @@ + + + Product Type + + + {{ productType.name }} + + + Price + + + {{ store.priceRange[0] }} + - + + {{ store.priceRange[1] }} + + + + Reset Filter + + + + + diff --git a/components/Products/ProductGrid.vue b/components/Products/ProductGrid.vue new file mode 100644 index 00000000..cbec9d8c --- /dev/null +++ b/components/Products/ProductGrid.vue @@ -0,0 +1,32 @@ + + + + + + + + + + + Error loading products. + + + + + + + + + diff --git a/components/Products/ProductSort.vue b/components/Products/ProductSort.vue new file mode 100644 index 00000000..a84b28ad --- /dev/null +++ b/components/Products/ProductSort.vue @@ -0,0 +1,22 @@ + + + Sort by: + + Popularity + Price: Low to High + Price: High to Low + Newest + + + + + diff --git a/pages/products.vue b/pages/products.vue index 5d1dafdc..05c6a3c3 100644 --- a/pages/products.vue +++ b/pages/products.vue @@ -1,5 +1,10 @@ - + + + + + +
+ {{ product.name }} +
Error loading products.