@@ -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