import React, { useState } from "react"; import { useNavigate } from "react-router-dom"; import { v4 as uuidv4 } from "uuid"; function Form() { const [components, setComponents] = useState([ { id: uuidv4(), label: "", type: "", mapping: "", readonly: false, values: "", }, ]); const [formDetails, setFormDetails] = useState({ formName: "", formDescription: "", relatedTo: "", pageEvent: "", buttonName: "", }); const navigate = useNavigate(); const handleFormChange = (e) => { const { name, value } = e.target; setFormDetails({ ...formDetails, [name]: value }); }; const handleComponentChange = (index, field, value) => { const updatedComponents = components.map((component, i) => i === index ? { ...component, [field]: value } : component ); setComponents(updatedComponents); }; const addComponent = () => { setComponents([ ...components, { id: uuidv4(), label: "", type: "", mapping: "", readonly: false, values: "", }, ]); }; const removeComponent = (index) => { setComponents(components.filter((_, i) => i !== index)); }; const handleSubmit = (e) => { e.preventDefault(); const formData = { ...formDetails, components }; navigate("/Dynamictable", { state: { formData } }); // Navigate to DynamicTable with formData }; return (

Dynamic Form Setup

Component Details

{components.map((component, index) => (
handleComponentChange(index, "label", e.target.value) } className="p-2 border rounded col-span-1" /> handleComponentChange(index, "mapping", e.target.value) } className="p-2 border rounded col-span-1" />
handleComponentChange(index, "readonly", e.target.checked) } className="mr-2" />
handleComponentChange(index, "values", e.target.value) } className="p-2 border rounded col-span-1" />
))}
); } export default Form;