use-sync-external-store
1.2.01.5.0
cjs/use-sync-external-store-shim.production.js+
cjs/use-sync-external-store-shim.production.jsNew file+66
Index: package/cjs/use-sync-external-store-shim.production.js
===================================================================
--- package/cjs/use-sync-external-store-shim.production.js
+++ package/cjs/use-sync-external-store-shim.production.js
@@ -0,0 +1,66 @@
+/**
+ * @license React
+ * use-sync-external-store-shim.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+"use strict";
+var React = require("react");
+function is(x, y) {
+ return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
+}
+var objectIs = "function" === typeof Object.is ? Object.is : is,
+ useState = React.useState,
+ useEffect = React.useEffect,
+ useLayoutEffect = React.useLayoutEffect,
+ useDebugValue = React.useDebugValue;
+function useSyncExternalStore$2(subscribe, getSnapshot) {
+ var value = getSnapshot(),
+ _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),
+ inst = _useState[0].inst,
+ forceUpdate = _useState[1];
+ useLayoutEffect(
+ function () {
+ inst.value = value;
+ inst.getSnapshot = getSnapshot;
+ checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
+ },
+ [subscribe, value, getSnapshot]
+ );
+ useEffect(
+ function () {
+ checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
+ return subscribe(function () {
+ checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });
+ });
+ },
+ [subscribe]
+ );
+ useDebugValue(value);
+ return value;
+}
+function checkIfSnapshotChanged(inst) {
+ var latestGetSnapshot = inst.getSnapshot;
+ inst = inst.value;
+ try {
+ var nextValue = latestGetSnapshot();
+ return !objectIs(inst, nextValue);
+ } catch (error) {
+ return !0;
+ }
+}
+function useSyncExternalStore$1(subscribe, getSnapshot) {
+ return getSnapshot();
+}
+var shim =
+ "undefined" === typeof window ||
+ "undefined" === typeof window.document ||
+ "undefined" === typeof window.document.createElement
+ ? useSyncExternalStore$1
+ : useSyncExternalStore$2;
+exports.useSyncExternalStore =
+ void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;