UNPKG

react-awesome-slider

Version:

React Awesome Slider is a 60fps performant, extendable, highly customisable, production ready React Component that renders a media (image/video) gallery slider carousel.

44 lines (36 loc) 866 B
import React, { useState, useEffect } from 'react'; const Context = React.createContext([{}, () => {}]); const getCleanPath = path => { return path.replace(/^\//, '').replace(/\/$/); }; const Provider = ({ slug, children }) => { const cleanPage = getCleanPath(slug); const [state, setState] = useState({ slug: cleanPage, goto: cleanPage, navigating: false, }); useEffect(() => { setState({ slug: cleanPage, goto: cleanPage, navigating: false, }); }, [cleanPage]); const setNavigation = params => { if (typeof params === 'object') { setState(params); return; } setState({ ...state, goto: params.replace(/^\//, ''), }); }; return ( <Context.Provider value={[state, setNavigation]}> {children} </Context.Provider> ); }; export { Context, Provider };