@everymatrix/casino-games-category-section 0.0.192 → 0.0.193
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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@everymatrix/casino-games-category-section",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.193",
|
|
4
4
|
"main": "dist/casino-games-category-section.js",
|
|
5
5
|
"svelte": "src/index.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "0960983a499b8cd9494500f0f36058fdc61fbead"
|
|
40
40
|
}
|
|
@@ -71,6 +71,9 @@
|
|
|
71
71
|
let getFavoredGamesCache:any = undefined;
|
|
72
72
|
let mostPlayedScreen:Boolean = false;
|
|
73
73
|
let customStylingContainer:HTMLElement;
|
|
74
|
+
let validObservers:boolean = false;
|
|
75
|
+
|
|
76
|
+
let thumbnailContainer:Array<HTMLElement> = new Array(1000);
|
|
74
77
|
|
|
75
78
|
let favoriteGamesData:any = {
|
|
76
79
|
items: [],
|
|
@@ -83,6 +86,19 @@
|
|
|
83
86
|
addNewMessages(item, GamesCategorySectionTranslations[item]);
|
|
84
87
|
});
|
|
85
88
|
|
|
89
|
+
// IntersectionObserver used for loading more games
|
|
90
|
+
let observer = new IntersectionObserver((entries, observerRef) => {
|
|
91
|
+
entries.forEach(async (entry) => {
|
|
92
|
+
let index = entry.target.elems_index; // eslint-disable-line
|
|
93
|
+
|
|
94
|
+
if (entry.isIntersecting) {
|
|
95
|
+
if (index * 1.2 > limit ) {
|
|
96
|
+
loadMoreGames(categoryid);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
|
|
86
102
|
// Start favored games section
|
|
87
103
|
const getFavoredGames = (url:string, sessionId:string, userId:string) => {
|
|
88
104
|
let options = {
|
|
@@ -241,6 +257,7 @@
|
|
|
241
257
|
showLoadCategory = true;
|
|
242
258
|
searchItem = false;
|
|
243
259
|
mostPlayedScreen = false;
|
|
260
|
+
validObservers = false;
|
|
244
261
|
|
|
245
262
|
if (e.data.receivedFavoriteResults) {
|
|
246
263
|
favoriteGames = e.data.receivedFavoriteResults.items;
|
|
@@ -268,6 +285,7 @@
|
|
|
268
285
|
searchItem = false;
|
|
269
286
|
mostPlayedScreen = false;
|
|
270
287
|
showLoadCategory = false;
|
|
288
|
+
validObservers = true;
|
|
271
289
|
categoryid = e.data.itemId;
|
|
272
290
|
|
|
273
291
|
getData(categoryid, 0, limit).then((res:any) => {
|
|
@@ -345,9 +363,9 @@
|
|
|
345
363
|
|
|
346
364
|
// @TODO categoryId type fix
|
|
347
365
|
const loadMoreGames = (categoryId:any) => {
|
|
348
|
-
limit +=
|
|
349
|
-
if (limit <= maxTotal) {
|
|
366
|
+
limit += 10;
|
|
350
367
|
|
|
368
|
+
if (limit <= maxTotal) {
|
|
351
369
|
getData(categoryId, offset, limit).then((res:any) => {
|
|
352
370
|
categoryData = res;
|
|
353
371
|
// @TODO categoryData type fix
|
|
@@ -410,36 +428,28 @@
|
|
|
410
428
|
});
|
|
411
429
|
}
|
|
412
430
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
const containerDimensions = container.getBoundingClientRect();
|
|
421
|
-
|
|
422
|
-
intersecting = (
|
|
423
|
-
(containerDimensions.bottom + bottom) > 0 &&
|
|
424
|
-
(containerDimensions.right + right) > 0 &&
|
|
425
|
-
(containerDimensions.top - top) < window.innerHeight &&
|
|
426
|
-
(containerDimensions.left - left) < window.innerWidth
|
|
427
|
-
);
|
|
428
|
-
|
|
429
|
-
if (intersecting && once && !lobbyView) {
|
|
430
|
-
loadMoreGames(categoryid);
|
|
431
|
+
const setupObserver = () => {
|
|
432
|
+
if (validObservers) {
|
|
433
|
+
thumbnailContainer.forEach((item, index) => {
|
|
434
|
+
if (item) {
|
|
435
|
+
// Hack to make sure that I can identify the thumbnail index
|
|
436
|
+
item.elems_index = index;
|
|
437
|
+
observer.observe(item);
|
|
431
438
|
}
|
|
432
|
-
}
|
|
439
|
+
});
|
|
433
440
|
}
|
|
441
|
+
}
|
|
434
442
|
|
|
435
|
-
|
|
443
|
+
onMount(() => {
|
|
444
|
+
window.addEventListener('message', messageHandler, false);
|
|
445
|
+
window.postMessage({ type: 'GetFavoredGame' }, window.location.href);
|
|
436
446
|
|
|
437
447
|
return () => {
|
|
438
|
-
window.removeEventListener('scroll', handler);
|
|
439
448
|
window.removeEventListener('message', messageHandler);
|
|
440
449
|
}
|
|
441
450
|
});
|
|
442
451
|
|
|
452
|
+
$: thumbnailContainer && setupObserver();
|
|
443
453
|
$: lang && initialSetup();
|
|
444
454
|
$: clientstyling && setClientStyling();
|
|
445
455
|
$: clientstylingurl && setClientStylingURL();
|
|
@@ -542,6 +552,7 @@
|
|
|
542
552
|
gameid={gameprops.id}
|
|
543
553
|
gamefunmode={gameprops.hasFunMode}
|
|
544
554
|
gamefavorite={gameprops.isFavorite}
|
|
555
|
+
bind:this={thumbnailContainer[index]}
|
|
545
556
|
{clientstyling}
|
|
546
557
|
{clientstylingurl}
|
|
547
558
|
{endpoint}
|