88f223bf08
feat(marketing): enhance step components with validity reporting - Added onValidityChange prop to multiple step components (BenefitsStep, ChallengesStep, ChartStep, ContactsStep, FeaturesStep, FooterStep, HeroStep) to handle form validity. - Updated respective presenter hooks to utilize the new onValidityChange functionality for real-time validity reporting. - Enhanced MarketingForm to manage step validity and disable the next button based on current step validity.
47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
"use client";
|
|
import { forwardRef } from "react";
|
|
import SectionStep from "./SectionStep";
|
|
import useChallengesStepPresenter, {
|
|
IChallengesStepFields,
|
|
} from "./useChallengesStepPresenter";
|
|
|
|
interface ChallengesStepProps {
|
|
initialData?: IChallengesStepFields;
|
|
onValidityChange?: (valid: boolean) => void;
|
|
}
|
|
|
|
const ChallengesStep = forwardRef<unknown, ChallengesStepProps>(
|
|
({ initialData, onValidityChange }, ref) => {
|
|
const {
|
|
errors,
|
|
handleSubmit,
|
|
onSubmit,
|
|
register,
|
|
fields,
|
|
append,
|
|
remove,
|
|
control,
|
|
} = useChallengesStepPresenter(initialData, ref, onValidityChange);
|
|
|
|
return (
|
|
<SectionStep<IChallengesStepFields>
|
|
title="Challenges"
|
|
fields={fields}
|
|
handleSubmit={handleSubmit}
|
|
onSubmit={onSubmit}
|
|
register={register}
|
|
errors={errors}
|
|
append={append}
|
|
remove={remove}
|
|
control={control}
|
|
fieldName="cards"
|
|
defaultValues={{ icon: "", title: "", description: "" }}
|
|
/>
|
|
);
|
|
},
|
|
);
|
|
|
|
ChallengesStep.displayName = "ChallengesStep";
|
|
|
|
export default ChallengesStep;
|