@total_onion/onion-library 2.0.230 → 2.0.232

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.
@@ -4,7 +4,9 @@
4
4
  data-dev="true"
5
5
  data-devdatalocation="local"
6
6
  data-clearfilterstext="Reset All"
7
- data-loadmoretriggerclass="loadmore-trigger__button"
7
+ data-postsperpagedesktop="8"
8
+ data-postsperpagemobile="6"
9
+ data-loadmoretriggerclass="loadmore-trigger"
8
10
  class="post-filter-module"
9
11
  >
10
12
  </post-filter-module>
@@ -14,6 +14,9 @@ export default function postfiltermoduleJs(options = {}) {
14
14
  allcategories: [],
15
15
  groupingcategories: [],
16
16
  filtercategories: [],
17
+ postsperpagedesktop: 8,
18
+ postsperpagemobile: 6,
19
+ pagenumber: 1,
17
20
  setActiveFilters: function (newState) {
18
21
  Object.assign(this.filterState, newState);
19
22
  this.filterPosts.bind(this)();
@@ -31,9 +34,21 @@ export default function postfiltermoduleJs(options = {}) {
31
34
  }
32
35
  };
33
36
 
37
+ this.filterState.postsperpagedesktop =
38
+ this.dataset.postsperpagedesktop || 8;
39
+ this.filterState.postsperpagedesktop =
40
+ this.dataset.postsperpagedesktop || 6;
41
+
34
42
  this.loadMoreTriggers = document.querySelectorAll(
35
- `.${this.loadmoretriggerclass}`
43
+ `.${this.dataset.loadmoretriggerclass}`
36
44
  );
45
+ this.loadMoreTriggers.forEach((trigger) => {
46
+ trigger.addEventListener('loadmore', () => {
47
+ this.filterState.pagenumber =
48
+ this.filterState.pagenumber + 1;
49
+ this.filterPosts();
50
+ });
51
+ });
37
52
 
38
53
  const postFilterContainer =
39
54
  document.createElement('div');
@@ -200,9 +215,6 @@ export default function postfiltermoduleJs(options = {}) {
200
215
  }
201
216
  });
202
217
  });
203
- this.filterState.setFilteredPosts.bind(this)({
204
- filteredposts: this.filterState.allposts
205
- });
206
218
  const groupingButtons = this.querySelectorAll(
207
219
  '.post-filter-module__grouping-category-button'
208
220
  );
@@ -239,6 +251,8 @@ export default function postfiltermoduleJs(options = {}) {
239
251
  }
240
252
  });
241
253
  });
254
+ this.filterPosts();
255
+
242
256
  this.classList.add('loaded');
243
257
  }
244
258
 
@@ -247,9 +261,23 @@ export default function postfiltermoduleJs(options = {}) {
247
261
  }
248
262
  filterPosts(event) {
249
263
  if (this.filterState.activefilters.size === 0) {
264
+ const numberPosts =
265
+ Number(this.filterState.postsperpagedesktop) *
266
+ Number(this.filterState.pagenumber);
250
267
  this.filterState.setFilteredPosts.bind(this)({
251
- filteredposts: this.filterState.allposts
268
+ filteredposts: this.filterState.allposts.slice(
269
+ 0,
270
+ numberPosts
271
+ )
252
272
  });
273
+ if (
274
+ this.filterState.allposts.length ==
275
+ this.filterState.filteredposts.length
276
+ ) {
277
+ this.loadMoreTriggers.forEach((trigger) => {
278
+ trigger.classList.add('hide');
279
+ });
280
+ }
253
281
  return;
254
282
  }
255
283
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@total_onion/onion-library",
3
- "version": "2.0.230",
3
+ "version": "2.0.232",
4
4
  "description": "Component library",
5
5
  "main": "index.js",
6
6
  "scripts": {