react-codemirror-merge
Version:
CodeMirror merge view for React.
39 lines • 969 B
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import React, { createContext, useContext, useEffect, useReducer } from 'react';
import { jsx as _jsx } from "react/jsx-runtime";
export var initialState = {
modified: {
doc: ''
},
original: {
doc: ''
}
};
export var Context = /*#__PURE__*/createContext(initialState);
export function reducer(state, action) {
return _extends({}, state, action, {
modified: _extends({}, state.modified, action.modified),
original: _extends({}, state.original, action.original)
});
}
export var useStore = () => {
return useContext(Context);
};
export var Provider = _ref => {
var {
children,
theme
} = _ref;
var [state, dispatch] = useReducer(reducer, _extends({}, initialState, {
theme
}));
useEffect(() => dispatch({
theme
}), [theme]);
return /*#__PURE__*/_jsx(Context.Provider, {
value: _extends({}, state, {
dispatch
}),
children: children
});
};