gatsby-theme-wordpress-mdx
Version:
<p align="center"> <img width='200px' alt="Gatsby Theme" src="https://raw.githubusercontent.com/artezan/gatsby-theme-wordpress-mdx/master/%40artezan/gatsby-theme-wordpress-mdx/dn.png" />
30 lines (22 loc) • 722 B
JavaScript
import * as React from 'react'
//https://medium.com/@seantheurgel/react-hooks-as-state-management-usecontext-useeffect-usereducer-a75472a862fe
const initialState = { isNavOpen: false }
const reducer = (state, actions) => {
switch (actions.type) {
case 'openNav':
return { ...state, isNavOpen: true }
case 'closeNav':
return { ...state, isNavOpen: false }
default:
return
}
}
export const SideBarContext = React.createContext(initialState)
export const SideBarProvider = ({ children }) => {
const [state, dispatch] = React.useReducer(reducer, initialState)
return (
<SideBarContext.Provider value={{ state, dispatch }}>
{children}
</SideBarContext.Provider>
)
}