autumn-js
Version:
Autumn JS Library
56 lines (53 loc) • 1.58 kB
JavaScript
"use client";
import {
createAutumnClient
} from "./chunk-QOFGTXEX.mjs";
import {
QueryClient,
QueryClientProvider
} from "./chunk-FU6VEECB.mjs";
import {
AutumnContext
} from "./chunk-SOA7GEAN.mjs";
// src/react/AutumnProvider.tsx
import { useMemo, useRef } from "react";
import { jsx } from "react/jsx-runtime";
var DEFAULT_PATH_PREFIX = "/api/autumn";
var BETTER_AUTH_PATH_PREFIX = "/api/auth/autumn";
var AutumnProvider = ({
children,
backendUrl,
pathPrefix,
useBetterAuth,
includeCredentials,
headers
}) => {
const queryClientRef = useRef(null);
if (!queryClientRef.current) {
queryClientRef.current = new QueryClient({
defaultOptions: {
queries: {
staleTime: 1e3 * 60,
retry: false,
refetchOnWindowFocus: false,
refetchOnReconnect: false
}
}
});
}
const contextValue = useMemo(() => {
const resolvedPathPrefix = pathPrefix ?? (useBetterAuth ? BETTER_AUTH_PATH_PREFIX : DEFAULT_PATH_PREFIX);
const resolvedIncludeCredentials = includeCredentials ?? useBetterAuth;
const client = createAutumnClient({
backendUrl,
pathPrefix: resolvedPathPrefix,
includeCredentials: resolvedIncludeCredentials,
headers
});
return { client };
}, [backendUrl, pathPrefix, useBetterAuth, includeCredentials, JSON.stringify(headers)]);
return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClientRef.current, children: /* @__PURE__ */ jsx(AutumnContext.Provider, { value: contextValue, children }) });
};
export {
AutumnProvider
};