From 7f7f4c1300e6926da5ffaa80ed67ab6bd8b96ba5 Mon Sep 17 00:00:00 2001 From: "costica.puntaru" Date: Thu, 16 Jun 2022 18:21:31 +0300 Subject: [PATCH 1/5] feat(carousel): add onCurrentSlideChangedCallback --- src/Carousel.tsx | 12 ++++++++++-- src/VerticalCarousel.tsx | 18 +++++++++++++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/Carousel.tsx b/src/Carousel.tsx index e030c1a..0b96f60 100644 --- a/src/Carousel.tsx +++ b/src/Carousel.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useEffect } from "react"; import useTouch from "./useTouch"; import useSlides from "./useSlides"; import useNavigation from "./useNavigation"; @@ -25,6 +25,7 @@ export interface CarouselProps { transitionDuration?: number; centerCurrentSlide?: boolean; render?: (props: RenderProps) => React.ReactElement; + onCurrentSlideChanged?: (currentSlide: number) => void; } export type RefInstance = Pick @@ -36,7 +37,8 @@ export default React.forwardRef> infinite = true, transitionDuration = 300, centerCurrentSlide = false, - render = ({ slides }: RenderProps) => slides + render = ({ slides }: RenderProps) => slides, + onCurrentSlideChanged, }, ref ) => { @@ -54,6 +56,12 @@ export default React.forwardRef> const { previous, next, goToStep, currentIndex } = navigation; + useEffect(() => { + if (typeof onCurrentSlideChanged === 'function') { + onCurrentSlideChanged(currentIndex) + } + },[currentIndex]) + React.useImperativeHandle( ref, () => ({ diff --git a/src/VerticalCarousel.tsx b/src/VerticalCarousel.tsx index f3dda77..0a1fa87 100644 --- a/src/VerticalCarousel.tsx +++ b/src/VerticalCarousel.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useEffect } from "react"; import useSlides from "./useSlides"; import useItemSize from "./useItemSize"; import useNavigation from "./useNavigation"; @@ -19,10 +19,11 @@ export interface RenderProps { export interface VerticalCarouselProps { children: React.ReactElement; - slidesToShow: number; - infinite: boolean; - transitionDuration: number; - render: (props: RenderProps) => React.ReactElement; + slidesToShow?: number; + infinite?: boolean; + transitionDuration?: number; + render?: (props: RenderProps) => React.ReactElement; + onCurrentSlideChanged?: (currentSlide: number) => void; } export default React.forwardRef< @@ -36,6 +37,7 @@ export default React.forwardRef< infinite = true, transitionDuration = 300, render = ({ slides }: RenderProps) => slides, + onCurrentSlideChanged, }, ref: () => void ) => { @@ -53,6 +55,12 @@ export default React.forwardRef< const { previous, next, goToStep, currentIndex } = navigation; + useEffect(() => { + if (typeof onCurrentSlideChanged === 'function') { + onCurrentSlideChanged(currentIndex) + } + },[currentIndex]) + React.useImperativeHandle( ref, () => ({ From 648d8232c5516c87468c04e96a75b1687646c62d Mon Sep 17 00:00:00 2001 From: "costica.puntaru" Date: Thu, 16 Jun 2022 18:24:39 +0300 Subject: [PATCH 2/5] feat(carousel): update react version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 95f55bc..287dafe 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "test": "jest" }, "peerDependencies": { - "react": "^16.8.6" + "react": "^16.8.6 | ^17.0.0" }, "husky": { "hooks": { From d6afe79e98e4fdad4fa38c3eef323519c7236bad Mon Sep 17 00:00:00 2001 From: "costica.puntaru" Date: Thu, 16 Jun 2022 18:54:43 +0300 Subject: [PATCH 3/5] feat(carousel): add onCurrentSlideChangedCallback --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 287dafe..5a1837f 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "test": "jest" }, "peerDependencies": { - "react": "^16.8.6 | ^17.0.0" + "react": "^16.8.6 | ^17.*.*" }, "husky": { "hooks": { From 3db61d219b53ae77141298ee39a0fa8f17542078 Mon Sep 17 00:00:00 2001 From: "costica.puntaru" Date: Fri, 17 Jun 2022 10:39:27 +0300 Subject: [PATCH 4/5] feat(carousel): add onCurrentSlideChangedCallback --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5a1837f..bbb9342 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "test": "jest" }, "peerDependencies": { - "react": "^16.8.6 | ^17.*.*" + "react": "^16.8.6 || ^17.*.*" }, "husky": { "hooks": { From be72b4e290fd4fa77fc334f6fdca43d707259467 Mon Sep 17 00:00:00 2001 From: "costica.puntaru" Date: Fri, 17 Jun 2022 10:39:44 +0300 Subject: [PATCH 5/5] feat(carousel): add onCurrentSlideChangedCallback --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bbb9342..ec76737 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "test": "jest" }, "peerDependencies": { - "react": "^16.8.6 || ^17.*.*" + "react": "^16.8.6 || ^17.0.0" }, "husky": { "hooks": {