@riosst100/pwa-marketplace 2.2.5 → 2.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@riosst100/pwa-marketplace",
3
3
  "author": "riosst100@gmail.com",
4
- "version": "2.2.5",
4
+ "version": "2.2.6",
5
5
  "main": "src/index.js",
6
6
  "pwa-studio": {
7
7
  "targets": {
@@ -27,6 +27,7 @@ const SetsData = props => {
27
27
  const [active, setActive] = useState('all');
28
28
  const [activeTab, setActiveTab] = useState('all');
29
29
  const [activeFilter, setActiveFilter] = useState('');
30
+ const [activeYear, setActiveYear] = useState('');
30
31
  const [searchQuery, setSearchQuery] = useState('');
31
32
 
32
33
  const shopby = query.get('shopby') || null;
@@ -65,9 +66,9 @@ const SetsData = props => {
65
66
 
66
67
  const classes = useStyle(defaultClasses);
67
68
 
68
- const talonProps = useSetsData({ activeFilter, searchQuery, setActive, currentSort, shopby, setType, categoryId, activeTab });
69
+ const talonProps = useSetsData({ activeFilter, activeYear, searchQuery, setActive, currentSort, shopby, setType, categoryId, activeTab });
69
70
 
70
- const { error, loading, setsData, categoryUrlSuffix, categoryUrlKey, productType, filteredSetsData, availableGroups, category, attributeData, pageInfo } = talonProps;
71
+ const { error, loading, setsData, categoryUrlSuffix, categoryUrlKey, productType, filteredSetsData, availableGroups, availableYears, category, attributeData, pageInfo } = talonProps;
71
72
 
72
73
  if (loading && !setsData)
73
74
  return <SetsDataShimmer />;
@@ -79,7 +80,7 @@ const SetsData = props => {
79
80
 
80
81
  const setsLengthArr = [];
81
82
 
82
- const newSetsData = searchQuery ? filteredSetsData : setsData;
83
+ const newSetsData = searchQuery || activeYear ? filteredSetsData : setsData;
83
84
 
84
85
  // useEffect(() => {
85
86
  if (setsData && setsData.length) {
@@ -120,10 +121,10 @@ const SetsData = props => {
120
121
  }
121
122
 
122
123
  const setRelases = newSetsData && newSetsData.length && newSetsData.map((setRelease, index) => {
123
- const { group, sets } = setRelease;
124
+ const { group, release_year, sets } = setRelease;
124
125
 
125
126
  const setsResult = [];
126
-
127
+
127
128
  if (sets.length) {
128
129
  sets.map((set, index) => {
129
130
  const { set_name, option_id, release_year } = set;
@@ -141,13 +142,13 @@ const SetsData = props => {
141
142
  }
142
143
 
143
144
  let setsResultSplitted = [];
144
- if (active == group || newSetsData.length == 1) {
145
+ if (active && active == group || newSetsData.length == 1) {
145
146
  setsResultSplitted = splitToNChunks(setsResult, 3);
146
147
  }
147
148
 
148
149
  return (
149
150
  <>
150
- {active == "all" && newSetsData.length > 1 ?
151
+ {active == "all" && activeYear && activeYear == release_year && newSetsData.length > 1 || active == "all" && !activeYear && newSetsData.length > 1 ?
151
152
  <div className={cn('singles_group-wrapper mb-4 px-2 inline-block', classes.singlesGroupWrapper)}>
152
153
  <div className='singles_item_group_letter text-xl font-medium border-b border-gray-100 pb-1 mb-2' >
153
154
  {group}
@@ -179,8 +180,17 @@ const SetsData = props => {
179
180
 
180
181
  setSearchQuery('')
181
182
  }
183
+
184
+ const handleActiveYear = (val) => {
185
+ setActiveYear(val);
186
+ setActive('all');
187
+ setActiveFilter('');
188
+ setSearchQuery('')
189
+ }
190
+
182
191
  const handleSearchQuery = (val) => {
183
192
  setSearchQuery(val)
193
+ setActiveYear('');
184
194
  setActive('all')
185
195
  }
186
196
 
@@ -230,28 +240,54 @@ const SetsData = props => {
230
240
  </button>
231
241
  </li>
232
242
  </ul> */}
233
- {shopby == "lego_set_name" && activeTab == "all" ? <><ul className={classes.nav}>
234
- {availableFilters.map((group, index) => (
235
- <li key={index} className={classes.nav_item}>
236
- <button
237
- onClick={() => {
238
- handleActiveFilter(group)
239
- }}
240
- >
241
- {activeFilter == group ? <b>{group}</b> : group}
242
- </button>
243
- </li>
244
- ))}<li className={classes.nav_item}>
245
- <button
246
- onClick={() => {
247
- handleActiveFilter('')
248
- }}
249
- >
250
- {!activeFilter ? <b>A-Z</b> : 'A-Z'}
251
- </button>
252
- </li></ul>
253
-
254
- </> : ''}
243
+ {shopby == "secret_lair" ? <>
244
+ <ul className={classes.nav}>
245
+ {availableYears.map((group, index) => (
246
+ <li key={index} className={classes.nav_item}>
247
+ <button
248
+ onClick={() => {
249
+ handleActiveYear(group)
250
+ }}
251
+ >
252
+ {activeYear == group ? <b>{group}</b> : group}
253
+ </button>
254
+ </li>
255
+ ))}
256
+ <li className={classes.nav_item}>
257
+ <button
258
+ onClick={() => {
259
+ handleActiveYear('')
260
+ }}
261
+ >
262
+ {!activeYear ? <b>All Year</b> : 'All Year'}
263
+ </button>
264
+ </li>
265
+ </ul>
266
+ </> : ''}
267
+ {shopby == "lego_set_name" && activeTab == "all" ? <>
268
+ <ul className={classes.nav}>
269
+ {availableFilters.map((group, index) => (
270
+ <li key={index} className={classes.nav_item}>
271
+ <button
272
+ onClick={() => {
273
+ handleActiveFilter(group)
274
+ }}
275
+ >
276
+ {activeFilter == group ? <b>{group}</b> : group}
277
+ </button>
278
+ </li>
279
+ ))}
280
+ <li className={classes.nav_item}>
281
+ <button
282
+ onClick={() => {
283
+ handleActiveFilter('')
284
+ }}
285
+ >
286
+ {!activeFilter ? <b>A-Z</b> : 'A-Z'}
287
+ </button>
288
+ </li>
289
+ </ul>
290
+ </> : ''}
255
291
  {!pageInfo.hide_title && <h1 className='mx-auto relative block text-xl font-bold text-center pt-10 pb-4'>
256
292
  {title}
257
293
  </h1>}
@@ -289,7 +325,7 @@ const SetsData = props => {
289
325
  </button>
290
326
  </li>
291
327
  ))}
292
- <li className={classes.nav_item}>
328
+ {availableGroups && availableGroups.length ? <li className={classes.nav_item}>
293
329
  <button
294
330
  onClick={() => {
295
331
  handleActive('all')
@@ -297,7 +333,7 @@ const SetsData = props => {
297
333
  >
298
334
  {active == 'all' ? <b>All</b> : 'All'}
299
335
  </button>
300
- </li>
336
+ </li> : ''}
301
337
  </ul>}
302
338
  <div className='border border-gray-100 px-6'>
303
339
  {setsData ? (
@@ -308,8 +344,8 @@ const SetsData = props => {
308
344
  {/* <CustomSortBy sortProps={sortProps} availableSortMethods={availableSortBy} /> */}
309
345
  </div>
310
346
  ) : ''}
311
- <section className='single_list-indexing-container relative m-auto pt-5'>
312
- {!activeFilter && activeTab != "year" && <ul className='flex gap-2 justify-center flex-wrap'>
347
+ {shopby != "secret_lair" && <section className='single_list-indexing-container relative m-auto pt-5'>
348
+ {shopby != "secret_lair" && !activeFilter && activeTab != "year" && <ul className='flex gap-2 justify-center flex-wrap'>
313
349
  <li>
314
350
  <button
315
351
  className={cn(
@@ -341,7 +377,7 @@ const SetsData = props => {
341
377
  </li>
342
378
  ))}
343
379
  </ul>}
344
- </section>
380
+ </section>}
345
381
  <Divider className="mb-5 px-4 mt-5" />
346
382
  <section className='singles-container'>
347
383
  <div className={cn('singles-wrapper block -mx-4', classes.singlesWrapper)}>
@@ -88,6 +88,11 @@ export const useCollectibleGameSets = props => {
88
88
  }, [data, sortby]);
89
89
 
90
90
  const availableGroups = collectibleGameSets && collectibleGameSets.length ? collectibleGameSets.map(({ release_type }) => release_type) : [];
91
+ // const availableReleaseYears = collectibleGameSets && collectibleGameSets.length ? collectibleGameSets.map(({ data }) => data.release_year) : [];
92
+ const availableReleaseYears = [];
93
+
94
+ console.log('collectibleGameSets')
95
+ console.log(collectibleGameSets)
91
96
 
92
97
  const filteredCollectibleGameSets = useMemo(() => {
93
98
  if (!collectibleGameSets) {
@@ -129,6 +134,7 @@ export const useCollectibleGameSets = props => {
129
134
  categoryUrlSuffix,
130
135
  categoryUrlKey,
131
136
  productType,
132
- availableGroups
137
+ availableGroups,
138
+ availableReleaseYears
133
139
  };
134
140
  };
@@ -25,6 +25,7 @@ export const GET_SETS_DATA_QUERY = gql`
25
25
  }
26
26
  data {
27
27
  group
28
+ release_year
28
29
  sets {
29
30
  set_name
30
31
  option_id
@@ -8,7 +8,7 @@ import { getFilterInput, getFiltersFromSearch } from '@magento/peregrine/lib/tal
8
8
 
9
9
  export const useSetsData = props => {
10
10
 
11
- const { searchQuery, setActive, currentSort, shopby, setType, categoryId, activeTab, activeFilter } = props
11
+ const { searchQuery, setActive, currentSort, shopby, setType, categoryId, activeTab, activeFilter, activeYear } = props
12
12
 
13
13
  const { value: sortby } = currentSort
14
14
 
@@ -133,7 +133,42 @@ export const useSetsData = props => {
133
133
  return setsData;
134
134
  }, [queryResponse]);
135
135
 
136
- const availableGroups = setsData && setsData.length ? setsData.map(({ group }) => group) : [];
136
+ // const availableGroups = setsData && setsData.length ? setsData.map(({ group }) => group) : [];
137
+ const availableGroups = useMemo(() => {
138
+ if (!setsData) {
139
+ return null;
140
+ }
141
+
142
+ const groups = [];
143
+
144
+ setsData.map(({ group, release_year, sets }, index) => {
145
+ // const newSets = sets.filter(function(set) {
146
+ // return set.set_name.search(new RegExp(searchQuery, "i")) != -1 || group.search(new RegExp(searchQuery, "i")) != -1;
147
+ // // return set.set_name.includes(searchQuery);
148
+ // });
149
+
150
+ // if (newSets && newSets.length) {
151
+ // filteredSets.push({
152
+ // 'group': group,
153
+ // 'sets': newSets
154
+ // })
155
+ // }
156
+ if (activeYear && activeYear == release_year) {
157
+ groups.push(group)
158
+ }
159
+ })
160
+
161
+ return groups;
162
+ }, [setsData, activeYear]);
163
+ let availableYears = setsData && setsData.length
164
+ ? [...new Set(setsData.map(({ release_year }) => release_year))].sort((a, b) => b - a)
165
+ : [];
166
+ // let availableYears = setsData && setsData.length ? setsData.map(({ release_year }) => release_year) : [];
167
+ // availableYears = availableYears && availableYears.length ? availableYears.slice().sort((a, b) =>a.group.toLowerCase().localeCompare(b.group.toLowerCase())) : [];
168
+ // const groupByYears = setsData && setsData.length ? setsData.map(({ group,release_year }) => release_year) : [];
169
+
170
+ console.log('availableYears')
171
+ console.log(availableYears)
137
172
 
138
173
  // const availableLeagues = setsData && setsData.length ? setsData.map(({ sets }) => setsData.map(({ sc_league }) => sc_league)) : [];
139
174
  // console.log(availableLeagues)
@@ -167,23 +202,36 @@ export const useSetsData = props => {
167
202
  // setActive('all')
168
203
  // }, [active]);
169
204
 
170
- setsData.map(({ group, sets }, index) => {
205
+ setsData.map(({ group, release_year, sets }, index) => {
171
206
  const newSets = sets.filter(function(set) {
172
- return set.set_name.search(new RegExp(searchQuery, "i")) != -1 || group.search(new RegExp(searchQuery, "i")) != -1;
207
+ return set.set_name && set.set_name.search(new RegExp(searchQuery, "i")) != -1 || group && group.search(new RegExp(searchQuery, "i")) != -1;
173
208
  // return set.set_name.includes(searchQuery);
174
209
  });
175
210
 
176
211
  if (newSets && newSets.length) {
177
212
  filteredSets.push({
178
213
  'group': group,
214
+ 'release_year': release_year,
179
215
  'sets': newSets
180
216
  })
181
217
  }
182
218
  })
183
219
  }
184
220
 
185
- return searchQuery ? filteredSets : setsData;
186
- }, [setsData, searchQuery]);
221
+ if (!searchQuery && activeYear) {
222
+ setsData.map(({ group, release_year, sets }, index) => {
223
+ if (activeYear == release_year) {
224
+ filteredSets.push({
225
+ 'group': group,
226
+ 'release_year': release_year,
227
+ 'sets': sets
228
+ })
229
+ }
230
+ })
231
+ }
232
+
233
+ return searchQuery || activeYear ? filteredSets : setsData;
234
+ }, [setsData, searchQuery, activeYear]);
187
235
 
188
236
  // useEffect(() => {
189
237
  // setPageLoading(isBackgroundLoading);
@@ -218,6 +266,7 @@ export const useSetsData = props => {
218
266
  categoryUrlKey,
219
267
  productType,
220
268
  availableGroups,
269
+ availableYears,
221
270
  category,
222
271
  attributeData,
223
272
  pageInfo