UNPKG

autumn-js

Version:
94 lines (90 loc) 1.88 kB
"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 };