import React, { ReactNode, useState } from "react";
import { ProgressionContext } from "@/contexts/ProgressionContext";

export const ProgressionProvider: React.FC<{ children: ReactNode }> = ({
    children,
}) => {
    const [stepsValidated, setStepsValidated] = useState<number[]>([]);
    const [stepValidated, setStepValidated] = useState<number>(0);

    const addStepValidated = (stepNumber: number) => {
        if (!stepsValidated.includes(stepNumber)) {
            setStepsValidated([...Array(stepNumber)].map((_, i) => i + 1));
            setStepValidated(stepNumber);
        }
    };

    const resetProgression = () => {
        setStepsValidated([]);
        setStepValidated(0);
    };

    return (
        <ProgressionContext.Provider
            value={{
                stepsValidated,
                setStepsValidated,
                addStepValidated,
                resetProgression,
                stepValidated,
                setStepValidated,
            }}>
            {children}
        </ProgressionContext.Provider>
    );
};
