UNPKG

autumn-js

Version:

Autumn JS Library

87 lines (83 loc) 1.82 kB
"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 };