azri 4 settimane fa
parent
commit
f92ab0f30d

+ 33
- 13
src/components/ProductList/ProductList.jsx Vedi File

@@ -48,7 +48,7 @@ const ProductList = ({ size = 99999 }) => {
48 48
 
49 49
   //filter
50 50
   const [category, setCategory] = useState('all');
51
-  const [sort, setSort] = useState('all')
51
+  const [sort, setSort] = useState('title')
52 52
 
53 53
   useEffect(() => {
54 54
 
@@ -97,13 +97,19 @@ const ProductList = ({ size = 99999 }) => {
97 97
         }
98 98
       );
99 99
 
100
+      if (sort === "title") {
101
+        newFilteredProducts = newFilteredProducts.sort((a, b) => a.title.localeCompare(b.title));
102
+      } else if (sort === "new") {
103
+        newFilteredProducts = newFilteredProducts.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));
104
+      } else if (sort === "old") {
105
+        newFilteredProducts = newFilteredProducts.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt));
106
+      }
107
+
100 108
       setFilteredProducts(newFilteredProducts)
101 109
 
102 110
     }
103 111
 
104
-  }, [category])
105
-
106
-
112
+  }, [category, sort])
107 113
 
108 114
   useEffect(() => {
109 115
     if (products) console.log(products)
@@ -171,6 +177,13 @@ const ProductList = ({ size = 99999 }) => {
171 177
         sx={{
172 178
           display: "flex",
173 179
           justifyContent: "space-between",
180
+          py:1,
181
+          flexDirection:{
182
+            xs:"column",
183
+            sm:"row",
184
+            md:"row",
185
+            lg:"row"
186
+          },
174 187
           alignItems: "center",
175 188
           backgroundColor: "background.black",
176 189
           color: "white",
@@ -179,15 +192,20 @@ const ProductList = ({ size = 99999 }) => {
179 192
         }}
180 193
       >
181 194
         {/* Left Side: Page Title */}
182
-        <Typography variant="body2">
195
+        <Typography variant="body2" sx={{fontSize:10}}>
183 196
           {`${filteredProducts.length} Item`}
184 197
         </Typography>
185 198
 
186 199
         {/* Right Side: Option Inputs */}
187
-        <Box sx={{ display: "flex", gap: 2 }}>
200
+        <Box sx={{ display: "flex", gap: 2, flexDirection:{
201
+            xs:"column",
202
+            sm:"row",
203
+            md:"row",
204
+            lg:"row"
205
+          }, }}>
188 206
 
189 207
           <FormControl sx={{ m: 1, display: "flex", flexDirection: "row" }} variant="standard">
190
-            <Typography variant="body2" sx={{ mr: 1, my: "auto" }}>Filter By Category</Typography>
208
+            <Typography variant="body2" sx={{ mr: 1, my: "auto" }}>Category</Typography>
191 209
             <Select
192 210
               value={category}
193 211
               onChange={(event) => {
@@ -201,17 +219,19 @@ const ProductList = ({ size = 99999 }) => {
201 219
             </Select>
202 220
           </FormControl>
203 221
 
204
-          <FormControl sx={{ m: 1, display: { xs: "none", sm: "none", md: "flex" }, flexDirection: "row" }} variant="standard">
205
-            <Typography variant="body2" sx={{ mr: 1, my: "auto" }}>Sort By</Typography>
222
+          <FormControl sx={{ m: 1, display: "flex", flexDirection: "row" }} variant="standard">
223
+            <Typography variant="body2" sx={{ mr: 1, my: "auto" }}>Sort</Typography>
206 224
             <Select
207 225
               value={sort}
208
-              onChange={handleChange}
226
+              onChange={(event) => {
227
+                setSort(event.target.value);
228
+              }}
209 229
               input={<BootstrapInput />}
210 230
               name="sort"
211 231
             >
212
-              <MenuItem defaultValue value={''}>All</MenuItem>
213
-              <MenuItem defaultValue value={'all'}>Newest</MenuItem>
214
-
232
+              <MenuItem defaultValue value={'title'}>Title</MenuItem>
233
+              <MenuItem defaultValue value={'new'}>Newest</MenuItem>
234
+              <MenuItem defaultValue value={'old'}>Oldest</MenuItem>
215 235
             </Select>
216 236
           </FormControl>
217 237
 

+ 2
- 0
src/pages/Collection.jsx Vedi File

@@ -32,6 +32,8 @@ const Collection = () => {
32 32
         }
33 33
       }}>
34 34
       </Box>
35
+      <SocialMedia />
36
+      <Feature />
35 37
     </>
36 38
   )
37 39
 }

+ 1
- 0
src/services/ProductService.js Vedi File

@@ -134,6 +134,7 @@ const getProductsByCollection = async (collectionId) => {
134 134
         nodes {
135 135
           id
136 136
           title
137
+          createdAt
137 138
           productType
138 139
           tags
139 140
           compareAtPriceRange {

Loading…
Annulla
Salva