diff --git a/demo/App.tsx b/demo/App.tsx
index 3eb9d4f..6e6e2c6 100644
--- a/demo/App.tsx
+++ b/demo/App.tsx
@@ -1,8 +1,9 @@
import React from 'react';
+import ResponsiveSlider from './ResponsiveSlider';
// import MarqueeSliderDemo from './MarqueeSliderDemo';
// import FreeScrollSliderDemo from './FreeScrollSliderDemo';
// import ThumbnailSliderDemo from './ThumbnailSliderDemo';
-import ScrollSnapSliderDemo from './ScrollSnapSliderDemo';
+// import ScrollSnapSliderDemo from './ScrollSnapSliderDemo';
const App: React.FC = () => (
(
*/}
{/*
*/}
+ Responsive Slider:
+
+
+ {/*
Scroll Snap Slider:
-
+
*/}
{/*
Thumbnail Slider Demo:
diff --git a/demo/ResponsiveSlider/index.tsx b/demo/ResponsiveSlider/index.tsx
new file mode 100644
index 0000000..74b80ac
--- /dev/null
+++ b/demo/ResponsiveSlider/index.tsx
@@ -0,0 +1,77 @@
+import React, { Fragment, useCallback, useEffect, useState } from 'react';
+import {
+ SliderProvider,
+ Slide,
+ SliderTrack,
+} from '../../src'; // swap '../src' for '../dist/build.bundle' to demo production build
+
+// NOTE: this components test both internal breakpoints and external breakpoints
+
+const slides = Array.from(Array(6).keys()); // NOTE: create array from number
+
+const desktopSlidesToShow = 3;
+
+const ResponsiveSlider: React.FC = () => {
+ const [slidesToShow, setSlidesToShow] = useState(desktopSlidesToShow);
+
+ const handleResize = useCallback(() => {
+ const windowWidth = window.innerWidth;
+ if (windowWidth < 768) setSlidesToShow(1)
+ else setSlidesToShow(desktopSlidesToShow)
+ }, []);
+
+ useEffect(() => {
+ handleResize();
+
+ window.addEventListener('resize', handleResize)
+
+ return () => {
+ window.removeEventListener('resize', handleResize)
+ }
+ }, [handleResize])
+
+ return (
+
+
+
+
+ {slides.map((slide, index) => (
+
+
+ {`Slide ${index + 1}`}
+
+
+ ))}
+
+
+
+
+ );
+};
+
+export default ResponsiveSlider;
diff --git a/src/SliderProvider/useBreakpoints.ts b/src/SliderProvider/useBreakpoints.ts
index 00cd810..9f5da41 100644
--- a/src/SliderProvider/useBreakpoints.ts
+++ b/src/SliderProvider/useBreakpoints.ts
@@ -32,6 +32,8 @@ export const useBreakpoints: UseBreakpoints = (props): SliderSettings => {
}
})
}
+
+ setPropsToShow(props);
}, [props]);
const requestThrottledAnimation = useCallback((): void => {