# elasticpress/4.7.0/assets/js/synonyms/context.js

ElasticPress, version 4.7.0. 32 lines.

- Page: https://pluginprobe.com/plugins/elasticpress/4.7.0/code/assets/js/synonyms/context.js
- Raw: https://pluginprobe.com/plugins/elasticpress/4.7.0/raw/assets/js/synonyms/context.js
- Modified: 2022-05-26T12:34:34+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/elasticpress/4.7.0/code/assets/js/synonyms/context.js#L10-L20`.

```javascript
/**
 * WordPress dependencies.
 */
import { createContext, useReducer, WPElement } from '@wordpress/element';

/**
 * Internal dependencies.
 */
import { editorReducer, initialState } from './reducers/editorReducer';

const State = createContext();
const Dispatch = createContext();

/**
 * App Context.
 *
 * @param {object} props Props.
 * @returns {WPElement} AppContext component
 */
const AppContext = (props) => {
	const { children } = props;
	const [state, dispatch] = useReducer(editorReducer, initialState);

	return (
		<State.Provider value={state}>
			<Dispatch.Provider value={dispatch}>{children}</Dispatch.Provider>
		</State.Provider>
	);
};

export { AppContext, State, Dispatch };

```
