This commit is contained in:
Sun Tao 2025-10-27 13:19:11 +08:00
parent 15cbd59e72
commit 55ca74bc09
2 changed files with 28 additions and 4 deletions

View file

@ -98,6 +98,18 @@ function createEmptyTokenStore() {
});
}
var cachePromiseByHookId = /* @__PURE__ */ new Map();
var useReactPromise = typeof React.use === "function" ? React.use.bind(React) : (promise) => {
if (!promise || typeof promise !== "object") {
return promise;
}
if (promise.status === "fulfilled") {
return promise.value;
}
if (promise.status === "rejected") {
throw promise.reason ?? promise;
}
throw promise;
};
function useAsyncCache(cache, dependencies, caller) {
suspendIfSsr(caller);
const id = React.useId();
@ -119,7 +131,7 @@ function useAsyncCache(cache, dependencies, caller) {
getSnapshot,
() => throwErr(new Error("getServerSnapshot should never be called in useAsyncCache because we restrict to CSR earlier"))
);
const result = React.use(promise);
const result = useReactPromise(promise);
if (result.status === "error") {
const error = result.error;
if (error instanceof Error && !error.__stackHasConcatenatedStacktraces) {
@ -144,4 +156,4 @@ export {
getUrls,
useAsyncCache
};
//# sourceMappingURL=common.js.map
//# sourceMappingURL=common.js.map

View file

@ -143,6 +143,18 @@ function createEmptyTokenStore() {
});
}
var cachePromiseByHookId = /* @__PURE__ */ new Map();
var useReactPromise = typeof import_react2.default.use === "function" ? import_react2.default.use.bind(import_react2.default) : (promise) => {
if (!promise || typeof promise !== "object") {
return promise;
}
if (promise.status === "fulfilled") {
return promise.value;
}
if (promise.status === "rejected") {
throw promise.reason ?? promise;
}
throw promise;
};
function useAsyncCache(cache, dependencies, caller) {
(0, import_react.suspendIfSsr)(caller);
const id = import_react2.default.useId();
@ -164,7 +176,7 @@ function useAsyncCache(cache, dependencies, caller) {
getSnapshot,
() => (0, import_errors.throwErr)(new Error("getServerSnapshot should never be called in useAsyncCache because we restrict to CSR earlier"))
);
const result = import_react2.default.use(promise);
const result = useReactPromise(promise);
if (result.status === "error") {
const error = result.error;
if (error instanceof Error && !error.__stackHasConcatenatedStacktraces) {
@ -190,4 +202,4 @@ function useAsyncCache(cache, dependencies, caller) {
getUrls,
useAsyncCache
});
//# sourceMappingURL=common.js.map
//# sourceMappingURL=common.js.map