[Help]: React + shadcn: How to control autoplay outside component with carousel. #848
Replies: 1 comment 4 replies
-
const { carouselAutoplayState } =
useCarouselsAutoplayStore();
const autoplayPluginOptions = {
delay: 4000,
stopOnMouseEnter: true,
stopOnFocusIn: true,
stopOnInteraction: false,
};
const [autoplayPlugin, setAutoplayPlugin] = useState<[AutoplayType] | []>([
Autoplay(autoplayPluginOptions),
]);
useEffect(() => {
if (carouselAutoplayState) {
setAutoplayPlugin([Autoplay(autoplayPluginOptions)]);
} else {
setAutoplayPlugin([]);
}
}, [carouselAutoplayState]); Than set autoplayPlugin in Carousel plugins prop. In context I control autoplay is true/false and change plugins - ugly solution, but working. I did this way, but I don't think so it's correct one. |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Summary
I'm using this carousel with React.js and a shadcn wrapper - my question is, how to control carousel autoplay in other component?
example: in app.tsx i have carousel, when I click on carousel item modal appears and now in this modal component I want to control carousel, on modal render stop autoplay, on close start autoplay.
I already try put api to context, but it's not working at all or I might be doing something wrong.
If you know solution, but without shadcn it's fine, it will be helpful too.
Thanks for help.
If applicable, which variants of Embla Carousel are relevant to this question?
Additional information
No response
CodeSandbox example
No response
Beta Was this translation helpful? Give feedback.
All reactions