Skip to content

Latest commit

 

History

History
80 lines (66 loc) · 2.91 KB

README.md

File metadata and controls

80 lines (66 loc) · 2.91 KB

React Awesome Slider Navigation HOC strategies

React awesome slider fullpage strategies and usage examples. For more information about the slider itself please access the main repository at rcaferati/react-awesome-slider

Live preview

Access the live preview at: fullpage.caferati.me

react-awesome-slider demo

Implementation

The Navigation HOC exposes a number of methods for dealing with fullpage navigation. The code bellow is a basic concept example, if you want a functional one just check out the NextJS example folder.

Method Type Description
Provider Context Provider A context provider component for the application to be wrapped in.
withNavigationContext Context Consumer A navigation context consumer for accessing the navigation object as a prop.
withNavigationHandlers Navigation Handlers A HOC to add the navigation handlers to your AwesomeSlider instance.
Link Link Component A Link component for handling page linking.
import AwesomeSlider from "react-awesome-slider"
import 'react-awesome-slider/dist/styles.css';

import { 
  Provider,
  Link,
  withNavigationContext,
  withNavigationHandlers
} from "react-awesome-slider/dist/navigation";

// Wrapp the AwesomeSlider component with the navigationHandlers
const NavigationSlider = withNavigationHandlers(AwesomeSlider);

// Create an AwesomeSlider instance with some content
const Slider = () => {
  return (
    <NavigationSlider
      className="awesome-slider"
      media={[
        {
          slug: "page-one",
          className: "page-one",
          children: () => <p>Page One</p>
        },
        {
          slug: "page-two",
          className: "page-two",
          children: () => <p>Page Two</p>
        }
      ]}
    />
   )
}

// Page header navigation
const Header = () => {
  return (
    <Header>
      <nav>
        <Link href="page-one">Page One</Link>
        <Link href="page-two">Page Two</Link>
      </nav>
    </Header>
  )
}

// Wrapp the aplication with the navigation Provider passing down the current page slug.
const App = () => {
  const slug = "[THE INITIAL RENDERED SLUG]";

  return (
    <Provider slug={slug}>
      <Header />
      <NavigationSlider />
    </Provider>
  )
}