Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 112x 112x 112x 112x 435x 869x 462x 435x 435x 435x | import { connect } from 'formik';
import React, { memo, ComponentType, FunctionComponent } from 'react';
import shallowEqual from 'shallowequal';
import ConnectFormikProps from './ConnectFormikProps';
export default function connectFormik<
TProps extends ConnectFormikProps<TValues>,
TValues = any
>(
OriginalComponent: ComponentType<TProps>
): ComponentType<Omit<TProps, keyof ConnectFormikProps<TValues>>> {
const InnerComponent: FunctionComponent<TProps> = memo(
props => <OriginalComponent { ...props } />,
({ formik: prevFormik, ...prevProps }, { formik: nextFormik, ...nextProps }) => (
shallowEqual(prevFormik, nextFormik) && shallowEqual(prevProps, nextProps)
)
);
const DecoratedComponent = connect<TProps, TValues>(InnerComponent) as ComponentType<Omit<TProps, keyof ConnectFormikProps<TValues>>>;
DecoratedComponent.displayName = `ConnectFormik(${OriginalComponent.displayName || OriginalComponent.name})`;
return DecoratedComponent;
}
|