This commit is contained in:
53
node_modules/react-redux/es/components/Provider.js
generated
vendored
Normal file
53
node_modules/react-redux/es/components/Provider.js
generated
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
import React, { useMemo } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { ReactReduxContext } from './Context';
|
||||
import { createSubscription } from '../utils/Subscription';
|
||||
import { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';
|
||||
|
||||
function Provider(_ref) {
|
||||
var store = _ref.store,
|
||||
context = _ref.context,
|
||||
children = _ref.children;
|
||||
var contextValue = useMemo(function () {
|
||||
var subscription = createSubscription(store);
|
||||
return {
|
||||
store: store,
|
||||
subscription: subscription
|
||||
};
|
||||
}, [store]);
|
||||
var previousState = useMemo(function () {
|
||||
return store.getState();
|
||||
}, [store]);
|
||||
useIsomorphicLayoutEffect(function () {
|
||||
var subscription = contextValue.subscription;
|
||||
subscription.onStateChange = subscription.notifyNestedSubs;
|
||||
subscription.trySubscribe();
|
||||
|
||||
if (previousState !== store.getState()) {
|
||||
subscription.notifyNestedSubs();
|
||||
}
|
||||
|
||||
return function () {
|
||||
subscription.tryUnsubscribe();
|
||||
subscription.onStateChange = null;
|
||||
};
|
||||
}, [contextValue, previousState]);
|
||||
var Context = context || ReactReduxContext;
|
||||
return /*#__PURE__*/React.createElement(Context.Provider, {
|
||||
value: contextValue
|
||||
}, children);
|
||||
}
|
||||
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
Provider.propTypes = {
|
||||
store: PropTypes.shape({
|
||||
subscribe: PropTypes.func.isRequired,
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
getState: PropTypes.func.isRequired
|
||||
}),
|
||||
context: PropTypes.object,
|
||||
children: PropTypes.any
|
||||
};
|
||||
}
|
||||
|
||||
export default Provider;
|
||||
Reference in New Issue
Block a user