Skip to content

Commit 39c998b

Browse files
added image preview
1 parent c099978 commit 39c998b

1 file changed

Lines changed: 31 additions & 5 deletions

File tree

frontend/src/pages/Feedback/FeedbackForm.tsx

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const FeedbackForm = () => {
1515
const [feedback, setFeedback] = useState("");
1616
const [errorMessage, setErrorMessage] = useState("");
1717
const [isPressed, setIsPressed] = useState(false);
18+
const [selectedImage, setSelectedImage] = useState(null);
1819

1920
const feedbackValidation = object().shape({
2021
name: string().required("Name is a required field"),
@@ -284,11 +285,35 @@ const FeedbackForm = () => {
284285
className="cursor-pointer block"
285286
>
286287
<div className="w-32 h-32 mx-auto mb-2">
287-
<img
288-
src="../src/assets/upload-image-icon.png"
289-
alt="Upload Image"
290-
className="h-full w-full object-cover rounded-lg"
291-
/>
288+
{selectedImage ? (
289+
<>
290+
<img
291+
src={URL.createObjectURL(selectedImage)}
292+
alt="Selected Image"
293+
className="h-full w-full object-cover rounded-lg"
294+
/>
295+
<button
296+
type="button"
297+
onClick={(e) => {
298+
e.preventDefault();
299+
setSelectedImage(null);
300+
const fileInput = document.getElementById("image");
301+
if (fileInput) {
302+
fileInput.value = "";
303+
}
304+
}}
305+
className="absolute top-2 right-2 bg-white rounded-full p-1.5 cursor-pointer"
306+
>
307+
X
308+
</button>
309+
</>
310+
) : (
311+
<img
312+
src="../src/assets/upload-image-icon.png"
313+
alt="Upload Image"
314+
className="h-full w-full object-cover rounded-lg"
315+
/>
316+
)}
292317
</div>
293318
</label>
294319
<input
@@ -299,6 +324,7 @@ const FeedbackForm = () => {
299324
const file = e.target.files?.[0];
300325
if (file) {
301326
// Handle the selected file
327+
setSelectedImage(file);
302328
handleChange({
303329
target: {
304330
name: "image",

0 commit comments

Comments
 (0)