You are viewing a single comment's thread. Return to all comments →
function Home() { const [title,setTitle] = useState(""); const [desc,setDesc] = useState(""); const [error,setError] = useState(""); const [blog,setBlog] = useState([]); const addBlog = ()=> { if (title.trim() && desc.trim()){ setBlog(prev => [...prev, {title,desc}]); setTitle(""); setDesc(""); } else { setError("All fields are required"); } } return ( <div className="text-center ma-20"> <div className="mb-20"> <Input title={title} desc={desc} setTitle={setTitle} setDesc={setDesc}/> {error && <p>{error}</p>} <button onClick={addBlog} data-testid="create-button" className="mt-10"> Create Post </button> </div> <div className="posts-section"> <PostDisplay blog={blog} setBlog={setBlog}/> </div> </div> ); `function Input({title,setTitle,desc,setDesc}) { return ( <div className="layout-column justify-content-center align-items-center"> <input className="w-100" type="text" placeholder="Enter Title" value={title} onChange={(e)=> setTitle(e.target.value)} data-testid="title-input" /> <textarea className="mt-10 w-100" placeholder="Enter Description" value={desc} onChange={(e)=> setDesc(e.target.value)} data-testid="description-input" /> </div> ); } export default Input;`
function PostDisplay({ blog,setBlog }) {
const deleteBlog = (indexToDelete) => { setBlog(blog.filter((_,index) => index !== indexToDelete)) } return ( {blog.map((item, index) => (
{item.desc}
export default PostDisplay;
} export default Home;
Seems like cookies are disabled on this browser, please enable them to open this website
Blog Post
You are viewing a single comment's thread. Return to all comments →
function PostDisplay({ blog,setBlog }) {
const deleteBlog = (indexToDelete) => { setBlog(blog.filter((_,index) => index !== indexToDelete)) } return ( {blog.map((item, index) => (
{item.title}
{item.desc}
deleteBlog(index)}>Delete ))} ); }export default PostDisplay;