UNPKG

autumn-js

Version:
81 lines (78 loc) 2.93 kB
import { UseCustomerParams, UseCustomerResult } from './useCustomerBase.mjs'; import '../error-DHbclCVh.mjs'; import '../genTypes-B5_6Pu_4.mjs'; import '../prodTypes-C4aZSZfO.mjs'; import 'zod/v4'; import '../attachTypes-DbuZWzAP.mjs'; import '../entTypes-35x0LnYH.mjs'; import '../cusTypes-RU0fmR-t.mjs'; import '../ReactAutumnClient-DuYr1i4C.mjs'; import 'react'; import 'swr'; import '../client/types/clientAttachTypes.mjs'; import '../client/types/clientGenTypes.mjs'; import '../client/ConvexAutumnClient.mjs'; import '../client/types/clientEntTypes.mjs'; import '../client/types/clientReferralTypes.mjs'; /** * React hook for managing customer billing, subscriptions, and feature access. * * Provides access to all Autumn billing functions including product attachment, * subscription management, usage tracking, and feature gating. Automatically * handles customer data fetching and caching. * * @param params - Optional configuration for the hook * @returns Object containing customer data and billing functions * * @example * ```tsx * import { useCustomer } from "autumn-js/react"; * * function MyComponent() { * const { * customer, * isLoading, * attach, * cancel, * check, * track, * checkout, * openBillingPortal, * setupPayment, * createReferralCode, * redeemReferralCode, * createEntity, * refetch * } = useCustomer(); * * return ( * <div> * <button onClick={() => attach({ productId: "pro" })}> * Upgrade to Pro * </button> * <button onClick={() => cancel({ productId: "pro" })}> * Cancel Subscription * </button> * </div> * ); * } * ``` * * @returns {Object} Hook result object * @returns {Customer | null} returns.customer - Current customer data with subscription info * @returns {boolean} returns.isLoading - Whether customer data is loading * @returns {AutumnError | null} returns.error - Any error from customer data fetching * @returns {Function} returns.attach - Attach product to customer with billing * @returns {Function} returns.cancel - Cancel customer subscription/product * @returns {Function} returns.check - Check feature access and show paywalls * @returns {Function} returns.track - Track feature usage events * @returns {Function} returns.checkout - Initiate product checkout flow * @returns {Function} returns.openBillingPortal - Open Stripe billing portal * @returns {Function} returns.setupPayment - Setup payment method * @returns {Function} returns.createReferralCode - Create referral codes * @returns {Function} returns.redeemReferralCode - Redeem referral codes * @returns {Function} returns.createEntity - Create entities for granular tracking * @returns {Function} returns.refetch - Manually refetch customer data */ declare const useCustomer: (params?: UseCustomerParams) => UseCustomerResult; export { useCustomer };