mirror of https://github.com/ANL-CEEESA/RELOG.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.7 KiB
60 lines
1.7 KiB
/**
|
|
* @license React
|
|
* use-sync-external-store-shim.native.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$1(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;
|
|
}
|
|
}
|
|
exports.useSyncExternalStore =
|
|
void 0 !== React.useSyncExternalStore
|
|
? React.useSyncExternalStore
|
|
: useSyncExternalStore$1;
|