import React from 'react' import { CForm, CCol, CFormLabel, CContainer, CRow, CCardGroup, CCard, CCardBody, CFormInput, CFormSelect, CFormCheck, CButton } from '@coreui/react' import { Country, City } from 'country-state-city' import { useState, useEffect } from 'react' import axios from 'axios' import { useHistory } from 'react-router-dom' import { isAutheticated } from 'src/auth' const EditProfile = () => { const [image, setImage] = useState(""); const [loading, setLoading] = useState(false) const [imagesPreview, setImagesPreview] = useState(); const token = isAutheticated() const [ownerDetails, setOwnerDetails] = useState({ name: '', email: '', phone: '' }) const history = useHistory() const [processing, setProcessing] = useState(false) const countries = Country.getAllCountries() useEffect(() => { getData() }, []) const getData = async () => { let res = await axios.get(`/api/v1/user/details`, { headers: { Authorization: `Bearer ${token}`, }, }) if (res.data.success) { setOwnerDetails({ ...res.data.user }) if (res.data.user.avatar) { setImagesPreview(res.data.user.avatar.url) } } } const handleChange = (event) => { const { name, value } = event.target; setOwnerDetails({ ...ownerDetails, [name]: value }); }; const handleImage = (e) => { const files = e.target.files[0]; // console.log(files) setImage(files); // only for file preview------------------------------------ const Reader = new FileReader(); Reader.readAsDataURL(files); Reader.onload = () => { if (Reader.readyState === 2) { setImagesPreview(Reader.result); } }; // ----------------------------------------------------------------------------- }; async function handleSubmit() { if (ownerDetails.name.trim() === '' || ownerDetails.email.trim() === '' || ownerDetails.phone === '') { swal({ title: 'Warning', text: 'Fill all mandatory fields', icon: 'error', button: 'Close', dangerMode: true, }) return } const formData = new FormData() formData.append('name', ownerDetails.name) formData.append('email', ownerDetails.email) formData.append('phone', ownerDetails.phone) formData.append('avatar', image) setLoading(true) try { const res = await axios .put(`/api/v1//user/update/profile`, formData, { headers: { 'Access-Control-Allow-Origin': '*', Authorization: `Bearer ${token}`, 'Content-Type': 'multipart/formdata', }, }) if (res.data.success === true) { setLoading(false) swal({ title: 'Edited', text: 'Profile Edited Successfully!', icon: 'success', button: 'Return', }) history.goBack() } } catch (error) { const message = error?.response?.data?.message || 'Something went wrong!' setLoading(false) swal({ title: 'Warning', text: message, icon: 'error', button: 'Retry', dangerMode: true, }) } } const handleCancle = () => { history.push('/dashboard') } return (

Edit Profile

Name * Email * Phone *
{imagesPreview && Product Preview}
{loading ? 'Loading...' : 'Submit'} Cancel
) } export default EditProfile