From 904605587fbcd4f5b8fd1879b6de280bed88ef94 Mon Sep 17 00:00:00 2001 From: Jeremy <15975785+jw-foss@users.noreply.github.com> Date: Mon, 24 Oct 2022 20:47:42 +0800 Subject: [PATCH] refactor(components): [carousel] (#10188) Co-authored-by: JeremyWuuuuu <15975785+JeremyWuuuuu@users.noreply.github.com> --- .../carousel/__tests__/carousel.test.tsx | 2 +- packages/components/carousel/index.ts | 2 + packages/components/carousel/src/carousel.ts | 3 - packages/components/carousel/src/carousel.vue | 274 ++--------------- packages/components/carousel/src/instance.ts | 3 + .../components/carousel/src/use-carousel.ts | 276 ++++++++++++++++++ 6 files changed, 306 insertions(+), 254 deletions(-) create mode 100644 packages/components/carousel/src/instance.ts create mode 100644 packages/components/carousel/src/use-carousel.ts diff --git a/packages/components/carousel/__tests__/carousel.test.tsx b/packages/components/carousel/__tests__/carousel.test.tsx index 22bba380bc..1b7bd4bbde 100644 --- a/packages/components/carousel/__tests__/carousel.test.tsx +++ b/packages/components/carousel/__tests__/carousel.test.tsx @@ -5,7 +5,7 @@ import Carousel from '../src/carousel.vue' import CarouselItem from '../src/carousel-item.vue' import type { VueWrapper } from '@vue/test-utils' -import type { CarouselInstance } from '../src/carousel' +import type { CarouselInstance } from '../src/instance' const wait = (ms = 100) => new Promise((resolve) => setTimeout(() => resolve(0), ms)) diff --git a/packages/components/carousel/index.ts b/packages/components/carousel/index.ts index c377404f77..c3d4352236 100644 --- a/packages/components/carousel/index.ts +++ b/packages/components/carousel/index.ts @@ -12,3 +12,5 @@ export const ElCarouselItem = withNoopInstall(CarouselItem) export * from './src/carousel' export * from './src/carousel-item' + +export type { CarouselInstance } from './src/instance' diff --git a/packages/components/carousel/src/carousel.ts b/packages/components/carousel/src/carousel.ts index 1d659472bd..89213bd5d7 100644 --- a/packages/components/carousel/src/carousel.ts +++ b/packages/components/carousel/src/carousel.ts @@ -1,6 +1,5 @@ import { buildProps, isNumber } from '@element-plus/utils' import type { ExtractPropTypes } from 'vue' -import type Carousel from './carousel.vue' export const carouselProps = buildProps({ initialIndex: { @@ -64,5 +63,3 @@ export const carouselEmits = { export type CarouselProps = ExtractPropTypes export type CarouselEmits = typeof carouselEmits - -export type CarouselInstance = InstanceType diff --git a/packages/components/carousel/src/carousel.vue b/packages/components/carousel/src/carousel.vue index ab9047fbda..7308cd2b10 100644 --- a/packages/components/carousel/src/carousel.vue +++ b/packages/components/carousel/src/carousel.vue @@ -62,60 +62,39 @@