import { CaptureExceptionHandler } from "@uplift-ltd/nexus-types"; import { FieldInputProps, FormikConfig, FormikContextType, FormikHelpers, FormikProps, FormikValues } from "formik"; import { RefObject } from "react"; import { type ErrorHelpers } from "./errors.js"; import { type StatusHelpers } from "./status.js"; type ExtraHelpers = StatusHelpers & ErrorHelpers; export interface EnhancedFormikExtraProps { captureException?: CaptureExceptionHandler; captureValuesOnError?: boolean; innerRef?: RefObject>; resetStatusOnSubmit?: boolean; } type FormikConfigWithoutOverrides = Omit, "children" | "onSubmit">; interface FormikConfigOverrides extends EnhancedFormikExtraProps { children?: ((props: FormikProps & ExtraHelpers) => React.ReactNode) | React.ReactNode; onSubmit: (values: Values, formikHelpers: FormikHelpers & ExtraHelpers) => Promise | void; } export type FormikConfigWithOverrides = FormikConfigWithoutOverrides & FormikConfigOverrides; export type EnhancedFieldInputProps = FieldInputProps & { onFocus: (e: React.FocusEvent) => void; }; export type EnhancedFormikContextType = FormikContextType & ExtraHelpers; export {};