From 82fa43a35506692c704b31720736e25f58638662 Mon Sep 17 00:00:00 2001 From: Nhasbeen <46243642+elkofy@users.noreply.github.com> Date: Tue, 7 May 2024 12:46:26 +0200 Subject: [PATCH 1/2] fix(VInfiniteScroll): dont emit load if status is empty --- .../src/components/VInfiniteScroll/VInfiniteScroll.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/vuetify/src/components/VInfiniteScroll/VInfiniteScroll.tsx b/packages/vuetify/src/components/VInfiniteScroll/VInfiniteScroll.tsx index c3fb7f5b7cb..bdb5a8289f2 100644 --- a/packages/vuetify/src/components/VInfiniteScroll/VInfiniteScroll.tsx +++ b/packages/vuetify/src/components/VInfiniteScroll/VInfiniteScroll.tsx @@ -172,12 +172,19 @@ export const VInfiniteScroll = genericComponent()({ intersecting(side) } } + function shouldEmit (rootEl: any, status: string): boolean { + const isRootElUndefined = !rootEl.value + const isLoading = status === 'loading' + const isEmpty = status === 'empty' + + return isRootElUndefined || isLoading || isEmpty + } function intersecting (side: InfiniteScrollSide) { if (props.mode !== 'manual' && !isIntersecting.value) return const status = getStatus(side) - if (!rootEl.value || status === 'loading') return + if (shouldEmit(rootEl, status)) return previousScrollSize = getScrollSize() setStatus(side, 'loading') From fd4bbe68f627f362a29f3d74f79635fcd97916bb Mon Sep 17 00:00:00 2001 From: John Leider Date: Tue, 7 May 2024 11:42:04 -0500 Subject: [PATCH 2/2] refactor(VInfiniteScroll): fix implementation --- .../src/components/VInfiniteScroll/VInfiniteScroll.tsx | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/packages/vuetify/src/components/VInfiniteScroll/VInfiniteScroll.tsx b/packages/vuetify/src/components/VInfiniteScroll/VInfiniteScroll.tsx index bdb5a8289f2..50924090ab9 100644 --- a/packages/vuetify/src/components/VInfiniteScroll/VInfiniteScroll.tsx +++ b/packages/vuetify/src/components/VInfiniteScroll/VInfiniteScroll.tsx @@ -172,19 +172,12 @@ export const VInfiniteScroll = genericComponent()({ intersecting(side) } } - function shouldEmit (rootEl: any, status: string): boolean { - const isRootElUndefined = !rootEl.value - const isLoading = status === 'loading' - const isEmpty = status === 'empty' - - return isRootElUndefined || isLoading || isEmpty - } function intersecting (side: InfiniteScrollSide) { if (props.mode !== 'manual' && !isIntersecting.value) return const status = getStatus(side) - if (shouldEmit(rootEl, status)) return + if (!rootEl.value || ['empty', 'loading'].includes(status)) return previousScrollSize = getScrollSize() setStatus(side, 'loading')