| 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 }; | |