import * as R from 'ramda'; import { useFormikContext } from 'formik'; import { InvoicePaperTemplate, InvoicePaperTemplateProps, } from './InvoicePaperTemplate'; import { useElementCustomizeContext } from '@/containers/ElementCustomize/ElementCustomizeProvider'; import { InvoiceCustomizeFormValues } from './types'; import { Box } from '@/components'; /** * Injects the `InvoicePaperTemplate` component props from the form and branding states. * @param {React.ComponentType

} Component * @returns {JSX.Element} */ const withInvoicePreviewTemplateProps =

( Component: React.ComponentType

, ) => { return (props: Omit) => { const { values } = useFormikContext(); const { brandingState } = useElementCustomizeContext(); const mergedProps: InvoicePaperTemplateProps = { ...brandingState, ...values, }; return ( ); }; }; export const InvoiceCustomizePdfPreview = R.compose( withInvoicePreviewTemplateProps, )(InvoicePaperTemplate);