107 lines
2.8 KiB
JavaScript
107 lines
2.8 KiB
JavaScript
// Metro module 702 (f703).
|
|
import { useDebugValue, useEffect, useMemo, useRef } from "react";
|
|
import { useSyncExternalStore } from "./Module703";
|
|
const is2 = typeof Object.is === "function" ? Object.is : function is(a0, a1) {
|
|
return a0 === a1 && (a0 !== 0 || 1 / a0 === 1 / a1) || a0 != a0 && a1 != a1;
|
|
};
|
|
export const useSyncExternalStoreWithSelector = function(a0, a1, a2, a3, a4) {
|
|
let current, syncExternalStore;
|
|
const ref = useRef(null);
|
|
if (ref.current === null) {
|
|
const current2 = {
|
|
hasValue: false,
|
|
value: null
|
|
};
|
|
current = current2;
|
|
ref.current = current2;
|
|
} else {
|
|
current = ref.current;
|
|
}
|
|
const memo = useMemo(function() {
|
|
let c23835_0, value;
|
|
let c23835_2 = false;
|
|
const r4 = a2 !== void 0 ? a2 : null;
|
|
let c23835_3 = r4;
|
|
return [function() {
|
|
let r11;
|
|
L12: {
|
|
const r5 = a1();
|
|
if (c23835_2) {
|
|
const r18 = is2(c23835_0, r5);
|
|
r11 = value;
|
|
if (!r18) {
|
|
let r20 = a3(r5);
|
|
if (a4 !== void 0 && a4(value, r20)) {
|
|
c23835_0 = r5;
|
|
r20 = value;
|
|
} else {
|
|
c23835_0 = r5;
|
|
value = r20;
|
|
}
|
|
r11 = r20;
|
|
}
|
|
} else {
|
|
c23835_2 = true;
|
|
c23835_0 = r5;
|
|
r11 = a3(r5);
|
|
if (a4 !== void 0) {
|
|
if (current.hasValue) {
|
|
const value2 = current.value;
|
|
if (a4(value2, r11)) {
|
|
value = value2;
|
|
r11 = value2;
|
|
break L12;
|
|
}
|
|
}
|
|
}
|
|
value = r11;
|
|
}
|
|
}
|
|
return r11;
|
|
}, r4 !== null ? function() {
|
|
let r11;
|
|
L12: {
|
|
const r5 = c23835_3();
|
|
if (c23835_2) {
|
|
const r20 = is2(c23835_0, r5);
|
|
r11 = value;
|
|
if (!r20) {
|
|
let r23 = a3(r5);
|
|
if (a4 !== void 0 && a4(value, r23)) {
|
|
c23835_0 = r5;
|
|
r23 = value;
|
|
} else {
|
|
c23835_0 = r5;
|
|
value = r23;
|
|
}
|
|
r11 = r23;
|
|
}
|
|
} else {
|
|
c23835_2 = true;
|
|
c23835_0 = r5;
|
|
r11 = a3(r5);
|
|
if (a4 !== void 0) {
|
|
if (current.hasValue) {
|
|
const value2 = current.value;
|
|
if (a4(value2, r11)) {
|
|
value = value2;
|
|
r11 = value2;
|
|
break L12;
|
|
}
|
|
}
|
|
}
|
|
value = r11;
|
|
}
|
|
}
|
|
return r11;
|
|
} : void 0];
|
|
}, [a1, a2, a3, a4]);
|
|
syncExternalStore = useSyncExternalStore(a0, memo[0], memo[1]);
|
|
useEffect(function() {
|
|
current.hasValue = true;
|
|
current.value = syncExternalStore;
|
|
}, [syncExternalStore]);
|
|
useDebugValue(syncExternalStore);
|
|
return syncExternalStore;
|
|
};
|