import React, { useReducer } from 'react'; | |
const CHANGE_LOCALE = 'CHANGE_LOCALE'; | |
const mainContext = React.createContext(); | |
const reducer = (state, action) => { | |
switch (action.type) { | |
case CHANGE_LOCALE: | |
return { ...state, locale: action.locale || 'zh' }; | |
default: | |
return state; | |
} | |
}; | |
const ContextProvider = (props) => { | |
const [state, dispatch] = useReducer(reducer, { | |
locale: 'zh', | |
}); | |
return ( | |
<mainContext.Provider value={{ state, dispatch }}> | |
{props.children} | |
</mainContext.Provider> | |
); | |
}; | |
export { ContextProvider, mainContext, reducer }; | |