import { useEffect, useState } from 'react'; // material-ui import { useTheme } from '@mui/material/styles'; import { Box, Button, FormLabel, Grid, InputLabel, MenuItem, Select, Stack, TextField, Typography } from '@mui/material'; // third-party // import { PatternFormat } from 'react-number-format'; // project import import Avatar from 'components/@extended/Avatar'; import MainCard from 'components/MainCard'; import { // facebookColor, linkedInColor, twitterColor ThemeMode } from 'config'; import axios from 'axios'; // assets import { // FacebookFilled, LinkedinFilled, TwitterSquareFilled, CameraOutlined } from '@ant-design/icons'; import { usePlacesWidget } from "react-google-autocomplete"; import Loader from 'components/Loader'; import Geocode from "react-geocode"; import { enqueueSnackbar } from 'notistack'; import { useNavigate } from 'react-router'; // import { setLocationType } from 'react-geocode'; // const avatarImage = require.context('assets/images/users', true); // styles & constant // const ITEM_HEIGHT = 48; // const ITEM_PADDING_TOP = 8; // const MenuProps = { // PaperProps: { // style: { // maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP // } // } // }; const Createclient = () => { const theme = useTheme(); const [selectedImage, setSelectedImage] = useState(undefined); const [avatar, setAvatar] = useState( // avatarImage(`./default.png`) ); const [businessname, setBusinessname] = useState(''); const [businessno, setBusinessno] = useState(''); // const [role, setRole] = useState(''); const [mobilenumber, setMobilenumber] = useState('') const [emailaddress, setEmailaddress] = useState('') const [city, setCity] = useState('') const [zipcode, setZipcode] = useState(''); const [address, setAddress] = useState(''); const [state, setState] = useState(''); const [suburb, setSuburb] = useState(''); const [latlong, setLatlong] = useState({}); const [profiledetails, setProfiledetails] = useState({}); const [primarycontact,setPrimarycontact]=useState('') const [firstname,setFirstname]=useState(''); const [doorno,setDoorno]=useState(''); const [landmark,setLandmark]=useState(''); const [tenantinfo, setTenantinfo] = useState({}); const navigate = useNavigate(); Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY); // Geocode.setApiKey('AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8'); const [loading, setLoading] = useState(false) useEffect(() => { // fetchprofiledetails(localStorage.getItem('appuserid')); // fetchprofiledetails(181); if(localStorage.getItem('tenantid')){ fetchtenantinfo(localStorage.getItem('tenantid')) } }, []) useEffect(() => { try { Geocode.fromAddress(address).then( (response) => { if (response.status == 'OK') { const { lat, lng } = response.results[0].geometry.location; setLatlong({ lat, lng }) console.log(response); } }, (error) => { console.log(error) } ); } catch (err) { console.log(err) } }, [address]) const opentoast = (message) => { enqueueSnackbar(message, { variant: 'error', anchorOrigin: { vertical: 'top', horizontal: 'right' }, autoHideDuration: 2000 }) // console.log(alertmessage) } const fetchprofiledetails = async (userid) => { if (userid) { setLoading(true) try { await axios.get(`${process.env.REACT_APP_URL2}/tenants/getclient?id=${userid}`) .then((res) => { console.log(res) if (res.data.message === 'Successful') { let res1 = res.data.details; setProfiledetails(res1) setBusinessname(res1.tenantname) setBusinessno(res1.registrationno); setMobilenumber(res1.contactno); setPrimarycontact(res1.primarycontact) setEmailaddress(res1.primaryemail); setAddress(res1.address); setCity(res1.city); setZipcode(res1.postcode); setState(res1.state); setSuburb(res1.suburb); setLatlong({ lat: res1.latitude, lng: res1.longitude }) } setLoading(false) }).catch((err) => { console.log(err) setLoading(false) }) } catch (err) { console.log(err) setLoading(false) } } } const fetchtenantinfo = async (tid) => { setLoading(true) await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantinfo/?tenantid=${tid}`) .then((res) => { console.log(res) if (res.data.status) { setTenantinfo(res.data.details); } setLoading(false) }).catch((err) => { console.log(err) setLoading(false) }) } useEffect(() => { if (selectedImage) { setAvatar(URL.createObjectURL(selectedImage)); } }, [selectedImage]); const { ref: materialRef } = usePlacesWidget({ apiKey: process.env.REACT_APP_GOOGLE_MAPS_API_KEY, onPlaceSelected: (place) => { console.log(place) setAddress(place.formatted_address) let city1, zipcode1, state1,suburb1; for (let i = 0; i < place.address_components.length; i++) { for (let j = 0; j < place.address_components[i].types.length; j++) { switch (place.address_components[i].types[j]) { case "locality": city1 = place.address_components[i].long_name; break; case "administrative_area_level_1": state1 = place.address_components[i].long_name; break; case "postal_code": zipcode1 = place.address_components[i].long_name; break; case "sublocality": suburb1 = place.address_components[i].long_name; break; } } } setCity(city1 || '') setState(state1 || ''); setZipcode(zipcode1 || ''); setSuburb(suburb1 || '') // setAddress(place.formatted_address) }, // inputAutocompleteValue: "country", options: { // componentRestrictions: 'us', // types: ["establishment"] types: ['address' || 'geocode'] }, }); const createprofile = async () => { console.log('res', businessname, businessno, mobilenumber, emailaddress, address, city, zipcode) if (!businessname) { opentoast('Fill Business name') } else if (!businessno) { opentoast('Fill Registration No') } else if (!businessno) { opentoast('Fill Registration No') } else if (!firstname) { opentoast('Fill Full name') } else if (!mobilenumber) { opentoast('Fill Mobile Number') }else if (!emailaddress) { opentoast('Fill emailaddress') } else if (!address) { opentoast('Fill Address') } else if (!city) { opentoast('Fill City') } else if (!zipcode) { opentoast('Fill post code') } else if (!suburb) { opentoast('Fill suburb') } else if (!emailaddress) { opentoast('Fill emailaddress') } else if (!latlong.lat || !latlong.lng) { opentoast('Choose valid address') } else { let obj={ "customerid":0, "configid":1, "firstname":firstname, "applocationid":tenantinfo.applolcationid, "profileimage":"", "dialcode":"+91", "contactno":mobilenumber, "devicetype":"", "deviceid":"", "customertoken":"", "address":address, "suburb":suburb, "city":city, "state":state, "postcode":zipcode, "landmark":landmark, "doorno":doorno, "latitude":latlong.lat.toString(), "longitude":latlong.lng.toString(), "tenantid":parseInt(localStorage.getItem('tenantid')) } console.log(obj) setLoading(true) try { await axios.post(`${process.env.REACT_APP_URL}/customers/create`,obj) .then((res) => { console.log(res) if (res.data.status) { enqueueSnackbar(' Created Successfully ', { variant: 'success', anchorOrigin: { vertical: 'top', horizontal: 'right' }, autoHideDuration: 2000 }) navigate('/clients') // setTimeout(()=>{ // fetchprofiledetails(localStorage.getItem('appuserid')); // },2000) }else if(res.data.message == "Customer Already available"){ enqueueSnackbar("Customer Already available", { variant: 'error', anchorOrigin: { vertical: 'top', horizontal: 'right' }, autoHideDuration: 2000 }) } setLoading(false) }).catch((err) => { console.log(err) setLoading(false) enqueueSnackbar(err.message, { variant: 'error', anchorOrigin: { vertical: 'top', horizontal: 'right' }, autoHideDuration: 2000 }) }) } catch (err) { console.log(err) setLoading(false) } } } // const [experience, setExperience] = useState('0'); // const handleChange = (event) => { // setExperience(event.target.value); // }; return <> {(loading) && } Create Client Upload setSelectedImage(e.target.files?.[0])} /> Business Name setBusinessname(e.target.value)} value={businessname} autoComplete='off' /> Registration No setBusinessno(e.target.value)} value={businessno} autoComplete='off' /> Name setFirstname(e.target.value)} value={firstname} autoComplete='off' /> {/* Role setRole(e.target.value)} value={role} autoComplete='off' /> */} Phone Number { }} onChange={(e) => { if(e.target.value.toString().length <= 10){ setMobilenumber(e.target.value) } }} value={mobilenumber} autoComplete='off' // disabled sx={{cursor: 'not-allowed'}} /> Email Address setEmailaddress(e.target.value)} value={emailaddress} autoComplete='off' /> Address setAddress(e.target.value)} inputRef={materialRef} /> Suburb setSuburb(e.target.value)} value={suburb} autoComplete='off' /> City setCity(e.target.value)} value={city} autoComplete='off' /> State setState(e.target.value)} value={state} autoComplete='off' /> Post Code setZipcode(e.target.value)} value={zipcode} autoComplete='off' /> Door No setDoorno(e.target.value)} value={doorno} autoComplete='off' /> Landmark setLandmark(e.target.value)} value={landmark} autoComplete='off' /> } export default Createclient;