UNPKG

react-codemirror-merge

Version:
53 lines (52 loc) 2.12 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports.initialState = exports.Provider = exports.Context = void 0; exports.reducer = reducer; exports.useStore = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _react = _interopRequireWildcard(require("react")); var _jsxRuntime = require("react/jsx-runtime"); var initialState = exports.initialState = { modified: { doc: '' }, original: { doc: '' } }; var Context = exports.Context = /*#__PURE__*/(0, _react.createContext)(initialState); function reducer(state, action) { return (0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, state), action), {}, { modified: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, state.modified), action.modified), original: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, state.original), action.original) }); } var useStore = exports.useStore = function useStore() { return (0, _react.useContext)(Context); }; var Provider = exports.Provider = function Provider(_ref) { var children = _ref.children, theme = _ref.theme; var _useReducer = (0, _react.useReducer)(reducer, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, initialState), {}, { theme: theme })), _useReducer2 = (0, _slicedToArray2["default"])(_useReducer, 2), state = _useReducer2[0], dispatch = _useReducer2[1]; (0, _react.useEffect)(function () { return dispatch({ theme: theme }); }, [theme]); return /*#__PURE__*/(0, _jsxRuntime.jsx)(Context.Provider, { value: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, state), {}, { dispatch: dispatch }), children: children }); };