From e8a6d6e00e01e683c4fe63345f6b80ba8c020d63 Mon Sep 17 00:00:00 2001 From: saller Date: Mon, 8 Apr 2024 13:43:40 +0800 Subject: [PATCH] fix(comp:carousel): pre and next arrow should hide when item count is 0 (#1871) --- packages/components/carousel/__tests__/carousel.spec.ts | 7 ++----- packages/components/carousel/src/Carousel.tsx | 2 +- .../components/carousel/src/composables/useStrategy.ts | 5 +++++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/components/carousel/__tests__/carousel.spec.ts b/packages/components/carousel/__tests__/carousel.spec.ts index 922ef98f1..50887544b 100644 --- a/packages/components/carousel/__tests__/carousel.spec.ts +++ b/packages/components/carousel/__tests__/carousel.spec.ts @@ -107,11 +107,8 @@ describe('Carousel', () => { }, }) - await wrapper.find('.ix-carousel-arrow-prev').trigger('click') - expect(onChange).toHaveBeenCalledTimes(0) - - await wrapper.find('.ix-carousel-arrow-next').trigger('click') - expect(onChange).toHaveBeenCalledTimes(0) + expect(wrapper.find('.ix-carousel-arrow-prev').exists()).toBeFalsy() + expect(wrapper.find('.ix-carousel-arrow-next').exists()).toBeFalsy() }) test('slot dot work', async () => { diff --git a/packages/components/carousel/src/Carousel.tsx b/packages/components/carousel/src/Carousel.tsx index 42ba21e72..5da519355 100644 --- a/packages/components/carousel/src/Carousel.tsx +++ b/packages/components/carousel/src/Carousel.tsx @@ -191,7 +191,7 @@ export default defineComponent({ ))} - {mergedShowArrow.value && ( + {mergedShowArrow.value && children.length > 1 && ( <>
{slots.arrow ? slots.arrow({ type: 'prev' }) : } diff --git a/packages/components/carousel/src/composables/useStrategy.ts b/packages/components/carousel/src/composables/useStrategy.ts index 92583a1e5..455a5d422 100644 --- a/packages/components/carousel/src/composables/useStrategy.ts +++ b/packages/components/carousel/src/composables/useStrategy.ts @@ -88,6 +88,11 @@ export function useStrategy( } const { from, to } = getBoundary(activeIndex.value, index, length) + + if (from === to) { + return + } + nextIndex.value = index runningIndex.value = to