DEV Community

Ali Hamza
Ali Hamza

Posted on

Day 157 of Learning MERN Stack

Hello Dev Community! 👋

It is officially Day 157 of my software engineering sprint! Today, I built the complete Admin Add Items Page (Add.jsx) for my Tomato — Food Delivery App, wiring up client-side form controls to handle binary multipart form-data requests! 📦🍕🛠️

Building administrative panels requires robust data handling and instant user feedback. Here is how I structured the component.


🛠️ Key Features Built on Day 157

As shown in my code editor and admin UI views (Screenshot 375, 378, and 379):

1. Dynamic Client-Side Image Previews

  • Hidden the standard HTML file input (hidden) and triggered file uploads through a custom UI label.
  • Leveraged URL.createObjectURL(image) to dynamically preview selected food images before sending payloads to the backend server.

2. FormData Multipart Assembly

  • Form values and image binaries are packed using the browser's native FormData API to support file streaming:

javascript
  const formData = new FormData();
  formData.append("name", data.name);
  formData.append("price", Number(data.price));
  formData.append("image", image);
Enter fullscreen mode Exit fullscreen mode

Top comments (0)