From 18f0bcc1e1123ebf0d9ec411200d37eb395b3033 Mon Sep 17 00:00:00 2001 From: "Eduardo J. Nascimento" Date: Thu, 2 May 2024 00:54:15 -0300 Subject: [PATCH] (feat): add total steps number prop (#317) * feat: add totalStepsNumber at interface * feat: add totalStepsNumber impl --- src/contexts/CopilotProvider.tsx | 4 ++++ src/hooks/useStepsMap.ts | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/contexts/CopilotProvider.tsx b/src/contexts/CopilotProvider.tsx index 3e5196a5..331c2735 100644 --- a/src/contexts/CopilotProvider.tsx +++ b/src/contexts/CopilotProvider.tsx @@ -42,6 +42,7 @@ interface CopilotContextType { isFirstStep: boolean; isLastStep: boolean; currentStepNumber: number; + totalStepsNumber: number; } /* @@ -67,6 +68,7 @@ export const CopilotProvider = ({ const { currentStep, currentStepNumber, + totalStepsNumber, getFirstStep, getPrevStep, getNextStep, @@ -199,6 +201,7 @@ export const CopilotProvider = ({ isFirstStep, isLastStep, currentStepNumber, + totalStepsNumber, }), [ registerStep, @@ -214,6 +217,7 @@ export const CopilotProvider = ({ isFirstStep, isLastStep, currentStepNumber, + totalStepsNumber, ] ); diff --git a/src/hooks/useStepsMap.ts b/src/hooks/useStepsMap.ts index 60839fbe..dd028f68 100644 --- a/src/hooks/useStepsMap.ts +++ b/src/hooks/useStepsMap.ts @@ -51,6 +51,8 @@ export const useStepsMap = () => { [currentStep, stepIndex] ); + const totalStepsNumber = useMemo(() => orderedSteps.length, [orderedSteps]); + const getFirstStep = useCallback(() => orderedSteps[0], [orderedSteps]); const getLastStep = useCallback( @@ -93,6 +95,7 @@ export const useStepsMap = () => { return { currentStepNumber, + totalStepsNumber, getFirstStep, getLastStep, getPrevStep,