/* This file is automatically generated for @graphcommerce/magento-cart-payment-method */

export * from '.'
import { Plugin as GoogleDatalayerPaymentMethodButton } from '@graphcommerce/google-datalayer/plugins/GoogleDatalayerPaymentMethodButton'
import { Plugin as GoogleDatalayerPaymentMethodContextProvider } from '@graphcommerce/google-datalayer/plugins/GoogleDatalayerPaymentMethodContextProvider'
import { Plugin as AddIncludedMethods } from '@graphcommerce/magento-payment-included/plugins/AddIncludedMethods'
import { ComponentProps } from 'react'
import { 
  PaymentMethodButton as PaymentMethodButtonBase,
  PaymentMethodContextProvider as PaymentMethodContextProviderBase,
} from '.'

/**
 * Interceptor for `<PaymentMethodButton/>` with these plugins:
 * 
 * - `@graphcommerce/google-datalayer/plugins/GoogleDatalayerPaymentMethodButton`
 */
type PaymentMethodButtonProps = ComponentProps<typeof PaymentMethodButtonBase>

function GoogleDatalayerPaymentMethodButtonInterceptor(props: PaymentMethodButtonProps) {
  return <GoogleDatalayerPaymentMethodButton {...props} Prev={PaymentMethodButtonBase} />
}
export const PaymentMethodButton = GoogleDatalayerPaymentMethodButtonInterceptor

/**
 * Interceptor for `<PaymentMethodContextProvider/>` with these plugins:
 * 
 * - `@graphcommerce/magento-payment-included/plugins/AddIncludedMethods`
 * - `@graphcommerce/google-datalayer/plugins/GoogleDatalayerPaymentMethodContextProvider`
 */
type PaymentMethodContextProviderProps = ComponentProps<typeof PaymentMethodContextProviderBase>

function AddIncludedMethodsInterceptor(props: PaymentMethodContextProviderProps) {
  return <AddIncludedMethods {...props} Prev={PaymentMethodContextProviderBase} />
}
function GoogleDatalayerPaymentMethodContextProviderInterceptor(props: PaymentMethodContextProviderProps) {
  return <GoogleDatalayerPaymentMethodContextProvider {...props} Prev={AddIncludedMethodsInterceptor} />
}
export const PaymentMethodContextProvider = GoogleDatalayerPaymentMethodContextProviderInterceptor
