mirror of
https://github.com/Funkoala14/knowledgebase_law.git
synced 2025-06-09 04:38:15 +08:00
97 lines
3.4 KiB
JavaScript
97 lines
3.4 KiB
JavaScript
|
/**
|
||
|
* @license React
|
||
|
* use-sync-external-store-with-selector.development.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";
|
||
|
"production" !== process.env.NODE_ENV &&
|
||
|
(function () {
|
||
|
function is(x, y) {
|
||
|
return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);
|
||
|
}
|
||
|
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
|
||
|
"function" ===
|
||
|
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&
|
||
|
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
|
||
|
var React = require("react"),
|
||
|
objectIs = "function" === typeof Object.is ? Object.is : is,
|
||
|
useSyncExternalStore = React.useSyncExternalStore,
|
||
|
useRef = React.useRef,
|
||
|
useEffect = React.useEffect,
|
||
|
useMemo = React.useMemo,
|
||
|
useDebugValue = React.useDebugValue;
|
||
|
exports.useSyncExternalStoreWithSelector = function (
|
||
|
subscribe,
|
||
|
getSnapshot,
|
||
|
getServerSnapshot,
|
||
|
selector,
|
||
|
isEqual
|
||
|
) {
|
||
|
var instRef = useRef(null);
|
||
|
if (null === instRef.current) {
|
||
|
var inst = { hasValue: !1, value: null };
|
||
|
instRef.current = inst;
|
||
|
} else inst = instRef.current;
|
||
|
instRef = useMemo(
|
||
|
function () {
|
||
|
function memoizedSelector(nextSnapshot) {
|
||
|
if (!hasMemo) {
|
||
|
hasMemo = !0;
|
||
|
memoizedSnapshot = nextSnapshot;
|
||
|
nextSnapshot = selector(nextSnapshot);
|
||
|
if (void 0 !== isEqual && inst.hasValue) {
|
||
|
var currentSelection = inst.value;
|
||
|
if (isEqual(currentSelection, nextSnapshot))
|
||
|
return (memoizedSelection = currentSelection);
|
||
|
}
|
||
|
return (memoizedSelection = nextSnapshot);
|
||
|
}
|
||
|
currentSelection = memoizedSelection;
|
||
|
if (objectIs(memoizedSnapshot, nextSnapshot))
|
||
|
return currentSelection;
|
||
|
var nextSelection = selector(nextSnapshot);
|
||
|
if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))
|
||
|
return (memoizedSnapshot = nextSnapshot), currentSelection;
|
||
|
memoizedSnapshot = nextSnapshot;
|
||
|
return (memoizedSelection = nextSelection);
|
||
|
}
|
||
|
var hasMemo = !1,
|
||
|
memoizedSnapshot,
|
||
|
memoizedSelection,
|
||
|
maybeGetServerSnapshot =
|
||
|
void 0 === getServerSnapshot ? null : getServerSnapshot;
|
||
|
return [
|
||
|
function () {
|
||
|
return memoizedSelector(getSnapshot());
|
||
|
},
|
||
|
null === maybeGetServerSnapshot
|
||
|
? void 0
|
||
|
: function () {
|
||
|
return memoizedSelector(maybeGetServerSnapshot());
|
||
|
}
|
||
|
];
|
||
|
},
|
||
|
[getSnapshot, getServerSnapshot, selector, isEqual]
|
||
|
);
|
||
|
var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);
|
||
|
useEffect(
|
||
|
function () {
|
||
|
inst.hasValue = !0;
|
||
|
inst.value = value;
|
||
|
},
|
||
|
[value]
|
||
|
);
|
||
|
useDebugValue(value);
|
||
|
return value;
|
||
|
};
|
||
|
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
|
||
|
"function" ===
|
||
|
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
|
||
|
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
|
||
|
})();
|