@tanstack/react-router
Version:
Modern and scalable routing for React applications
32 lines (31 loc) • 870 B
JavaScript
import { jsx } from "react/jsx-runtime";
import * as React from "react";
import { defer, TSR_DEFERRED_PROMISE } from "@tanstack/router-core";
function useAwaited({
promise: _promise
}) {
const promise = defer(_promise);
if (promise[TSR_DEFERRED_PROMISE].status === "pending") {
throw promise;
}
if (promise[TSR_DEFERRED_PROMISE].status === "error") {
throw promise[TSR_DEFERRED_PROMISE].error;
}
return [promise[TSR_DEFERRED_PROMISE].data, promise];
}
function Await(props) {
const inner = /* @__PURE__ */ jsx(AwaitInner, { ...props });
if (props.fallback) {
return /* @__PURE__ */ jsx(React.Suspense, { fallback: props.fallback, children: inner });
}
return inner;
}
function AwaitInner(props) {
const [data] = useAwaited(props);
return props.children(data);
}
export {
Await,
useAwaited
};
//# sourceMappingURL=awaited.js.map