source: node_modules/recharts/lib/state/RechartsStoreProvider.js

Last change on this file was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 2.7 KB
Line 
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.RechartsStoreProvider = RechartsStoreProvider;
7var _react = _interopRequireWildcard(require("react"));
8var React = _react;
9var _reactRedux = require("react-redux");
10var _store = require("./store");
11var _PanoramaContext = require("../context/PanoramaContext");
12var _RechartsReduxContext = require("./RechartsReduxContext");
13function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
14function RechartsStoreProvider(_ref) {
15 var {
16 preloadedState,
17 children,
18 reduxStoreName
19 } = _ref;
20 var isPanorama = (0, _PanoramaContext.useIsPanorama)();
21 /*
22 * Why the ref? Redux official documentation recommends to use store as a singleton,
23 * and reuse that everywhere: https://redux-toolkit.js.org/api/configureStore#basic-example
24 *
25 * Which is correct! Except that is considering deploying Redux in an app.
26 * Recharts as a library supports multiple charts on the same page.
27 * And each of these charts needs its own store independent of others!
28 *
29 * The alternative is to have everything in the store keyed by the chart id.
30 * Which would make working with everything a little bit more painful because we need the chart id everywhere.
31 */
32 var storeRef = (0, _react.useRef)(null);
33
34 /*
35 * Panorama means that this chart is not its own chart, it's only a "preview"
36 * being rendered as a child of Brush.
37 * In such case, it should not have a store on its own - it should implicitly inherit
38 * whatever data is in the "parent" or "root" chart.
39 * Which here is represented by not having a Provider at all. All selectors will use the root store by default.
40 */
41 if (isPanorama) {
42 return children;
43 }
44 if (storeRef.current == null) {
45 storeRef.current = (0, _store.createRechartsStore)(preloadedState, reduxStoreName);
46 }
47
48 // @ts-expect-error React-Redux types demand that the context internal value is not null, but we have that as default.
49 var nonNullContext = _RechartsReduxContext.RechartsReduxContext;
50 return /*#__PURE__*/React.createElement(_reactRedux.Provider, {
51 context: nonNullContext,
52 store: storeRef.current
53 }, children);
54}
Note: See TracBrowser for help on using the repository browser.