Skip to content

Instantly share code, notes, and snippets.

@nightspirit
Created February 16, 2019 08:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nightspirit/3f304be96da00c951440b114647cfec5 to your computer and use it in GitHub Desktop.
Save nightspirit/3f304be96da00c951440b114647cfec5 to your computer and use it in GitHub Desktop.
import { createContext, useContext, useReducer } from 'react'
import { combineReducers, persistReducer } from 'Reducers/helpers'
import TokenReducer from 'Reducers/Token'
import FeatureReducer from 'Reducers/Feature'
const AppReducer = combineReducers({
token: persistReducer({ key: 'token', storage: localStorage })(TokenReducer),
feature: persistReducer({ key: 'feature', storage: sessionStorage })(FeatureReducer)
})
const initState = AppReducer()
export const AppReducerContext = createContext()
// for provider
export function useAppReducer () {
return useReducer(AppReducer, initState)
}
// for consumer
export default function () {
return useContext(AppReducerContext)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment