@@ -23,6 +23,7 @@ export default function EditProfilePage() {
2323 const [ updateStatus , setUpdateStatus ] = useState < "" | "error" > ( "" ) ;
2424 const [ updateMessage , setUpdateMessage ] = useState < string > ( "" ) ;
2525 const [ submitting , setSubmitting ] = useState ( false ) ;
26+ const [ imageError , setImageError ] = useState ( "" ) ;
2627
2728 useEffect ( ( ) => {
2829 if ( profile ) {
@@ -38,15 +39,26 @@ export default function EditProfilePage() {
3839 const handleChange = ( e : React . ChangeEvent < HTMLInputElement > ) => {
3940 const { name, value, type, files } = e . target ;
4041 if ( type === "file" && files && files [ 0 ] ) {
41- setLogoImage ( files [ 0 ] ) ;
42- setFormData ( ( prev ) => ( { ...prev , logo_image : files [ 0 ] } ) ) ;
42+ const file = files [ 0 ] ;
43+ // PNG only
44+ if ( file . type !== "image/png" ) {
45+ setImageError ( "PNG format is preferable. Please upload a PNG image." ) ;
46+ setLogoImage ( null ) ;
47+ setFormData ( ( prev ) => ( { ...prev , logo_image : null } ) ) ;
48+ return ;
49+ } else {
50+ setImageError ( "" ) ;
51+ setLogoImage ( file ) ;
52+ setFormData ( ( prev ) => ( { ...prev , logo_image : file } ) ) ;
53+ }
4354 } else {
4455 setFormData ( ( prev ) => ( { ...prev , [ name ] : value } ) ) ;
4556 }
4657 } ;
4758
4859 const handleSubmit = async ( e : React . FormEvent ) => {
4960 e . preventDefault ( ) ;
61+ if ( imageError ) return ;
5062 setSubmitting ( true ) ;
5163 const email = formData . email . trim ( ) ;
5264 const org_name = ( formData . org_name || "NGO" ) . trim ( ) ;
@@ -140,10 +152,15 @@ export default function EditProfilePage() {
140152 < input
141153 id = "logoInput"
142154 type = "file"
143- accept = "image/*"
155+ accept = "image/png"
144156 onChange = { handleChange }
145157 className = "hidden"
146158 />
159+ { imageError && (
160+ < div className = "mt-2 text-red-600 font-semibold text-center" >
161+ { imageError }
162+ </ div >
163+ ) }
147164 < div className = "mt-4 font-bold text-3xl text-[#C3A041] text-center" >
148165 { formData . org_name }
149166 </ div >
@@ -215,7 +232,7 @@ export default function EditProfilePage() {
215232 </ button >
216233 < button
217234 type = "submit"
218- disabled = { submitting }
235+ disabled = { submitting || ! ! imageError }
219236 className = "px-7 py-2 bg-[#03363D] text-white cursor-pointer rounded-full text-lg font-medium shadow hover:bg-[#065A60] transition"
220237 >
221238 { submitting ? "Saving..." : "Save" }
0 commit comments