mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 12:20:31 +00:00
41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import React, { createContext, ReactNode, useContext } from 'react';
|
|
import { useGetPaymentServicesState } from '@/hooks/query/payment-services';
|
|
|
|
type PaymentMethodsContextType = {
|
|
isPaymentMethodsStateLoading: boolean;
|
|
paymentMethodsState: any;
|
|
};
|
|
|
|
const PaymentMethodsContext = createContext<PaymentMethodsContextType>(
|
|
{} as PaymentMethodsContextType,
|
|
);
|
|
|
|
type PaymentMethodsProviderProps = {
|
|
children: ReactNode;
|
|
};
|
|
|
|
const PaymentMethodsBoot = ({ children }: PaymentMethodsProviderProps) => {
|
|
const { data: paymentMethodsState, isLoading: isPaymentMethodsStateLoading } =
|
|
useGetPaymentServicesState();
|
|
|
|
const value = { isPaymentMethodsStateLoading, paymentMethodsState };
|
|
|
|
return (
|
|
<PaymentMethodsContext.Provider value={value}>
|
|
{children}
|
|
</PaymentMethodsContext.Provider>
|
|
);
|
|
};
|
|
|
|
const usePaymentMethodsBoot = () => {
|
|
const context = useContext<PaymentMethodsContextType>(PaymentMethodsContext);
|
|
if (context === undefined) {
|
|
throw new Error(
|
|
'usePaymentMethods must be used within a PaymentMethodsProvider',
|
|
);
|
|
}
|
|
return context;
|
|
};
|
|
|
|
export { PaymentMethodsBoot, usePaymentMethodsBoot };
|