autumn-js
Version:
Autumn JS Library
94 lines (90 loc) • 1.88 kB
JavaScript
"use client";
import {
handleCheck,
openDialog
} from "./chunk-7YNNQGHZ.mjs";
import {
useAutumnBase
} from "./chunk-AUZMXLNB.mjs";
import {
useAutumnContext
} from "./chunk-NJRJLNGW.mjs";
// src/libraries/react/hooks/useCustomerBase.tsx
import useSWR from "swr";
var useCustomerBase = ({
params,
AutumnContext,
client
}) => {
let context;
if (AutumnContext) {
context = useAutumnContext({
AutumnContext,
name: "useCustomer"
});
}
if (!client) {
client = context.client;
}
const baseUrl = client?.backendUrl || "";
const queryKey = ["customer", baseUrl, params?.expand];
const fetchCustomer = async () => {
const { data, error: error2 } = await client.createCustomer({
errorOnNotFound: params?.errorOnNotFound,
expand: params?.expand
});
if (error2) {
throw error2;
}
if (!data) {
return null;
}
return data;
};
const {
data: customer,
error,
isLoading,
mutate
} = useSWR(queryKey, fetchCustomer, {
// Default to 5 minutes
fallbackData: null,
swrConfig: {
shouldRetryOnError: false,
refreshInterval: 0,
...params?.swrConfig
}
});
const autumnFunctions = useAutumnBase({
context,
client,
refetchCustomer: mutate
});
return {
customer: error ? null : customer,
isLoading,
error,
refetch: mutate,
...autumnFunctions,
createEntity: client.entities.create,
createReferralCode: client.referrals.createCode,
redeemReferralCode: client.referrals.redeemCode,
check: (params2) => {
const res = handleCheck({
customer,
params: params2,
isEntity: false,
context
});
openDialog({
result: res.data,
params: params2,
context
});
return res;
}
};
};
export {
useCustomerBase
};