diff --git a/src/index.tsx b/src/index.tsx index f8d9e13..8e5327e 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React, { useState, useEffect } from 'react'; import { Formik } from 'formik'; import * as yup from 'yup'; import 'animate.css'; @@ -16,6 +16,12 @@ const FormikStepper = (props: FormikStepperProps) => { [key: string]: string; }>({}); + useEffect(() => { + if (props.onStepChange) { + props.onStepChange(step + 1); + } + }, [step]); + let child = Array.isArray(children) ? children[step] : children; const childIndex = Array.isArray(children) ? step : 0; const schema = yup.object().shape(child.props?.validation || {}); diff --git a/src/types/FormikStepperProps.ts b/src/types/FormikStepperProps.ts index 0bb5923..e2ab3b3 100644 --- a/src/types/FormikStepperProps.ts +++ b/src/types/FormikStepperProps.ts @@ -11,6 +11,7 @@ export interface FormikStepperProps { values: FormikValues, formikHelpers: FormikHelpers ) => void; + onStepChange?: (step: number) => void; validate?: ( values: FormikValues ) => void | object | Promise>;