import TextField from "@mui/material/TextField"; import MenuItem from "@mui/material/MenuItem"; import Button from "@mui/material/Button"; import { DialogTitle, InputAdornment } from "@mui/material"; import { useState, useEffect, useRef } from "react"; import { createFormData } from "../utils/formUtils"; import { addSupply, sendCsvFile } from "../services/supplies"; import { useHistory } from "react-router-dom"; import { styled } from "@mui/material/styles"; import IconButton from "@mui/material/IconButton"; import UploadFileIcon from "@mui/icons-material/UploadFile"; import AddIcon from "@mui/icons-material/Add"; import { getProviders, addPriceToProviderById, addProvider, } from "../services/providers"; import { getCategories, addCategory } from "../services/categories"; import { useParams } from "react-router-dom"; //sockets import io from "socket.io-client"; //pop up import Dialog from "@mui/material/Dialog"; import DialogActions from "@mui/material/DialogActions"; import DialogContent from "@mui/material/DialogContent"; const API = process.env.REACT_APP_API; const Input = styled("input")({ display: "none", }); export default function FormSupply() { //popUp const [openC, setOpenC] = useState(false); const [openP, setOpenP] = useState(false); const handleClickOpen = () => { setOpenC(true); }; const handleClose = () => { setOpenC(false); }; const handleClickOpenP = () => { setOpenP(true); }; const handleCloseP = () => { setOpenP(false); }; //end PopUp // history const history = useHistory(); const [csv, setCsv] = useState([]); // form state const [form, setForm] = useState({ name: "", description: "", category: "", providers: "", unity: "", imageSupply: "", code: "", location: "", }); const [image, setImage] = useState({ preview: "", raw: "" }); // handlers const handleChange = (e) => { setForm({ ...form, [e.target.name]: e.target.value, }); }; const handleImage = (e) => { if (e.target.files.length) { // console.log(e.target.files[0]); setImage({ preview: URL.createObjectURL(e.target.files[0]), raw: e.target.files[0], }); } setForm({ ...form, imageSupply: e.target.files[0], }); }; const handleSubmit = async (e) => { e.preventDefault(); // console.log('form', form); // console.log('csv', cvs); // console.log('formProvider', formProvider); if (!csv.name) { const formData = createFormData(form); console.log("formData desde formSupply", formData); addSupplyToServer(formData); // reset states setForm({ name: "", description: "", category: "", providers: "", imageSupply: "", code: "", location: "", quantity: "", amount: "", }); setImage({ preview: "", raw: "" }); } else { const formData = new FormData(); formData.append("file", csv); const res = await sendCsvFile(formData); console.log(res); if (res !== null) { history.push("/supplies"); } } }; //============================================================================== //services // add supply const addSupplyToServer = async (form) => { console.log("form VERVER", form); const response = await addSupply(form); console.log("response", response); if (response !== null) { history.push("/supplies"); } }; //PROVIDERS const socketRef = useRef(); const [providers, setProviders] = useState([]); const [newProvider, setNewProvider] = useState({ name: "", }); const handleChangeProviders = (event) => { setNewProvider({ ...newProvider, [event.target.name]: event.target.value, }); }; const handleSubmitProvider = (event) => { event.preventDefault(); console.log(newProvider.name); addProvider({ name: newProvider.name, description: "", }); handleCloseP(); }; //Crea el array de proveedores y queda a la escucha de nuevos posts useEffect(() => { socketRef.current = io.connect(`${API}`); socketRef.current.on("listenProviders", async () => { loadProviders(); }); const loadProviders = async () => { const providers = await getProviders(); setProviders(providers); console.log(providers); }; loadProviders(); }, []); //CATEGORIES const [categories, setCategories] = useState([]); const [newCategory, setNewCategory] = useState({ nombre: "", }); const handleChangeCategories = (event) => { setNewCategory({ ...newCategory, [event.target.name]: event.target.value, }); }; const handleSubmitCategory = (event) => { event.preventDefault(); console.log(newCategory.nombre); addCategory({ name: newCategory.nombre, description: "Es una descripción", }); handleClose(); }; //Crea el array de categorías y queda a la escucha de nuevos posts useEffect(() => { socketRef.current = io.connect(`${API}`); socketRef.current.on("listenCategories", async () => { loadCategories(); }); const loadCategories = async () => { const categories = await getCategories(); setCategories(categories); console.log(categories); }; loadCategories(); }, []); const handleSubmitTest = async (e) => { e.preventDefault(); console.log("test"); console.log(form); }; return ( <>
{categories.map((option) => (

{option.name}

))}
{providers.map((item) => ( {item.name} ))}
{/* POP UP DIALOG CATEGORY */} Nueva Categoría {/* POP UP DIALOG PROVIDERS */} Nuevo Proveedor
); }