UNPKG

1.89 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.shallowEqual = exports.assignUniqueKeysToParts = exports.DEFAULT_INTL_CONFIG = exports.invariantIntlContext = void 0;
4var tslib_1 = require("tslib");
5var React = (0, tslib_1.__importStar)(require("react"));
6var ecma402_abstract_1 = require("@formatjs/ecma402-abstract");
7var intl_1 = require("@formatjs/intl");
8function invariantIntlContext(intl) {
9 (0, ecma402_abstract_1.invariant)(intl, '[React Intl] Could not find required `intl` object. ' +
10 '<IntlProvider> needs to exist in the component ancestry.');
11}
12exports.invariantIntlContext = invariantIntlContext;
13exports.DEFAULT_INTL_CONFIG = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, intl_1.DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });
14/**
15 * Takes a `formatXMLElementFn`, and composes it in function, which passes
16 * argument `parts` through, assigning unique key to each part, to prevent
17 * "Each child in a list should have a unique "key"" React error.
18 * @param formatXMLElementFn
19 */
20function assignUniqueKeysToParts(formatXMLElementFn) {
21 return function (parts) {
22 // eslint-disable-next-line prefer-rest-params
23 return formatXMLElementFn(React.Children.toArray(parts));
24 };
25}
26exports.assignUniqueKeysToParts = assignUniqueKeysToParts;
27function shallowEqual(objA, objB) {
28 if (objA === objB) {
29 return true;
30 }
31 if (!objA || !objB) {
32 return false;
33 }
34 var aKeys = Object.keys(objA);
35 var bKeys = Object.keys(objB);
36 var len = aKeys.length;
37 if (bKeys.length !== len) {
38 return false;
39 }
40 for (var i = 0; i < len; i++) {
41 var key = aKeys[i];
42 if (objA[key] !== objB[key] ||
43 !Object.prototype.hasOwnProperty.call(objB, key)) {
44 return false;
45 }
46 }
47 return true;
48}
49exports.shallowEqual = shallowEqual;