"use client"; import { TrashIcon } from "@/assets/icons"; import InputGroup from "@/components/FormElements/InputGroup"; import { TextAreaGroup } from "@/components/FormElements/InputGroup/text-area"; import { ShowcaseSection } from "@/components/Layouts/showcase-section"; import { REGEX } from "@/constants/regex"; import { FormErrorMessages } from "@/constants/Texts"; import { Control, FieldErrors, FieldValues, Path, UseFieldArrayAppend, UseFieldArrayRemove, UseFormHandleSubmit, UseFormRegister, } from "react-hook-form"; interface IProps { title: string; fields: any[]; handleSubmit: UseFormHandleSubmit; onSubmit: (data: T) => void; register: UseFormRegister; errors: FieldErrors; append: UseFieldArrayAppend; remove: UseFieldArrayRemove; control: Control; fieldName: string; defaultValues: any; } const SectionStep = ({ title, fields, handleSubmit, onSubmit, register, errors, append, remove, fieldName, defaultValues, }: IProps) => { return (
, { required: { message: FormErrorMessages.required, value: true }, })} label="Section Title" name="title" required type="text" placeholder="Enter Section Title" /> {errors.title && (

{errors.title.message as string}

)} )} name="description" placeholder="Enter Section Description" />
{fields.map((field, index) => (
, { required: { message: FormErrorMessages.required, value: true, }, pattern: { message: FormErrorMessages.invalidPattern, value: REGEX.URL, }, })} label="Icon" name={`cards.${index}.icon`} required type="text" placeholder="Enter Icon URL" /> , { required: { message: FormErrorMessages.required, value: true, }, })} label="Title" name={`cards.${index}.title`} required type="text" placeholder="Enter Title" /> )} label="Description" name={`cards.${index}.description`} placeholder="Enter Description" className="sm:col-span-2" />
))}
); }; export default SectionStep;