import React, { useEffect, useState } from 'react' import Button from '@material-ui/core/Button' import { Link, useNavigate } from 'react-router-dom' import swal from 'sweetalert' import axios from 'axios' import { isAutheticated } from 'src/auth' // import { WebsiteURL } from '../WebsiteURL' const AddProduct = () => { const token = isAutheticated() const navigate = useNavigate() const [data, setData] = useState({ image: '', imageURL: '', name: '', description: '', base_Price: '', price_Level_2: '', price_Level_3: '' }) const [loading, setLoading] = useState(false) const handleChange = (e) => { if (e.target.id === 'image') { if ( e.target.files[0]?.type === 'image/jpeg' || e.target.files[0]?.type === 'image/png' || e.target.files[0]?.type === 'image/jpg' ) { setData((prev) => ({ ...prev, imageURL: URL.createObjectURL(e.target.files[0]), image: e.target.files[0], })) return } else { swal({ title: 'Warning', text: 'Upload jpg, jpeg, png only.', icon: 'error', button: 'Close', dangerMode: true, }) setData((prev) => ({ ...prev, imageURL: '', image: '', })) e.target.value = null return } } setData((prev) => ({ ...prev, [e.target.id]: e.target.value })) } const handleSubmit = () => { if ( data.name.trim() === '' || data.description.trim() === '' || data.base_Price === '' || data.price_Level_2 === '' || data.price_Level_3 === '' || data.imageURL.trim() === '' ) { swal({ title: 'Warning', text: 'Fill all mandatory fields', icon: 'error', button: 'Close', dangerMode: true, }) return } setLoading(true) const formData = new FormData() formData.set('name', data.name) formData.set('description', data.description) formData.set('base_Price', data.base_Price) formData.set('price_Level_2', data.price_Level_2) formData.set('price_Level_3', data.price_Level_3) formData.append('image', data.image) axios .post(`/api/product/create/`, formData, { headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'multipart/formdata', 'Access-Control-Allow-Origin': '*', }, }) .then((res) => { swal({ title: 'Added', text: 'Product added successfully!', icon: 'success', button: 'Return', }) setLoading(false) navigate('/products', { replace: true }) }) .catch((err) => { setLoading(false) const message = err.response?.data?.message || 'Something went wrong!' swal({ title: 'Warning', text: message, icon: 'error', button: 'Retry', dangerMode: true, }) }) } return (
Upload jpg, jpeg and png only*