autumn-js
Version:
Autumn JS Library
87 lines (83 loc) • 1.82 kB
JavaScript
"use client";
import {
handleAllowed
} from "./chunk-3JJC2VU5.mjs";
import {
useAutumnBase
} from "./chunk-KJLHVBV4.mjs";
import {
useAutumnContext
} from "./chunk-LXD6AEZW.mjs";
// src/libraries/react/hooks/useCustomerBase.tsx
import useSWR from "swr";
var emptyDefaultFunctions = {
attach: "",
check: "",
track: "",
cancel: "",
openBillingPortal: "",
setupPayment: "",
checkout: ""
};
var useCustomerBase = ({
params,
AutumnContext,
client
}) => {
let context;
if (AutumnContext) {
context = useAutumnContext({
AutumnContext,
name: "useCustomer"
// errorIfNotInitialized: !authClientExists,
});
}
if (!client) {
client = context.client;
}
let 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, {
fallbackData: null,
...params?.swrConfig
});
let autumnFunctions = emptyDefaultFunctions;
if (AutumnContext) {
autumnFunctions = useAutumnBase({
AutumnContext,
refetchCustomer: mutate
});
}
return {
customer: error ? null : customer,
isLoading,
error,
refetch: mutate,
...autumnFunctions,
createEntity: client.entities.create,
createReferralCode: client.referrals.createCode,
redeemReferralCode: client.referrals.redeemCode,
allowed: (params2) => handleAllowed({ customer, params: params2 })
};
};
export {
useCustomerBase
};