From 2949683d1a1a8fb12205376d63122c425f2c3cbd Mon Sep 17 00:00:00 2001 From: Vadim Date: Thu, 9 Sep 2021 23:35:13 +0300 Subject: [PATCH] #69 : Add 0th page to loaded --- src/components/Carousel/Carousel.svelte | 4 +++- src/utils/page.js | 26 ++++++++++++------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/components/Carousel/Carousel.svelte b/src/components/Carousel/Carousel.svelte index bb401b1..f78cfa8 100644 --- a/src/components/Carousel/Carousel.svelte +++ b/src/components/Carousel/Carousel.svelte @@ -281,7 +281,7 @@ await tick() infinite && addClones() - initPageSizes() + // TODO: validate initialScrollIndex store.init(getPageIndexByScrollIndex({ @@ -292,6 +292,8 @@ pagesCount, pagesToShow, })) + + initPageSizes() } addResizeEventListener(initPageSizes) diff --git a/src/utils/page.js b/src/utils/page.js index 8d58cc3..4fb1425 100644 --- a/src/utils/page.js +++ b/src/utils/page.js @@ -88,32 +88,30 @@ export function getAdjacentIndexes({ let rangeStart = _scrollIndex - 1 let rangeEnd = _scrollIndex + 1 - rangeStart = rangeStart < 0 - ? infinite - ? scrollsCount - 1 - : 0 - : rangeStart - rangeEnd = rangeEnd > scrollsCount - 1 - ? infinite - ? 0 - : scrollsCount - 1 - : rangeEnd + + rangeStart = infinite + ? rangeStart < 0 ? scrollsCount - 1 : rangeStart + : Math.max(0, rangeStart) + + rangeEnd = infinite + ? rangeEnd > scrollsCount - 1 ? 0 : rangeEnd + : Math.min(scrollsCount - 1, rangeEnd) const scrollIndexes = [...new Set([ rangeStart, _scrollIndex, rangeEnd, + 0, // needed to clone first scroll pages scrollsCount - 1, // needed to clone last scroll pages ])].sort((a, b) => a - b) - const pageIndexes = [] - scrollIndexes.forEach(scrollIndex => pageIndexes.push( - ...getIndexesOfPagesWithoutClonesInScroll({ + const pageIndexes = scrollIndexes.flatMap( + scrollIndex => getIndexesOfPagesWithoutClonesInScroll({ scrollIndex, pagesToShow, pagesToScroll, pagesCount, }) - )) + ) return { scrollIndexes, pageIndexes: [...new Set(pageIndexes)].sort((a, b) => a - b),