diff --git a/src/inventary/CreateInventary.js b/src/inventary/CreateInventary.js index 19364ff94cce1a0b675fb52e96a18e66665fa5d4..04f7b8dc999a90224dac88d2ddb65dd6f6d2e41a 100644 --- a/src/inventary/CreateInventary.js +++ b/src/inventary/CreateInventary.js @@ -1,5 +1,4 @@ import React, { useState } from "react"; -import { Redirect } from "react-router-dom"; import { Form, Row, Col, Button } from "react-bootstrap"; import ProductPicker from "../product/ProductPicker"; import Fetcher from "../Fetcher"; @@ -13,16 +12,18 @@ function supplierNameToId(suppliers, name) { return null; } -function CreateInventary() { +function CreateInventary(props) { const [suppliers, setSuppliers] = useState([]); const [comment, setComment] = useState(""); const [supplier, setSupplier] = useState(null); const [picks, setPicks] = useState([]); - const [redirect, setRedirect] = useState(null); - if (redirect !== null) { - return <Redirect to={"/inventary/" + redirect.ID} />; - } + const onSuccess = (entry) => { + setComment(""); + setSupplier(null); + setPicks([]); + props.setEntry(entry); + }; const body = () => { return { @@ -38,14 +39,14 @@ function CreateInventary() { }; }; - const disabled = picks.length == 0; + const disabled = picks.length === 0; const supplierOptions = [<option key=""></option>].concat( suppliers.map((s) => <option key={s.ID}>{s.name}</option>) ); return ( - <Sender url="/api/inventary" body={body} onSuccess={setRedirect}> + <Sender url="/api/inventary" body={body} onSuccess={onSuccess}> <Form.Group as={Row}> <Form.Label as="legend" column sm={3}> Proveedor diff --git a/src/inventary/Inventary.js b/src/inventary/Inventary.js index 7c1cf3f3ce9aa9c0e809e9d4bf383599b5620397..9e0910ae45153be4c491cc6278f2f981c6265f5c 100644 --- a/src/inventary/Inventary.js +++ b/src/inventary/Inventary.js @@ -6,16 +6,10 @@ import Fetcher from "../Fetcher"; function Inventary() { const [inventary, setInventary] = useState([]); - const setEntry = (entry) => { - let i = inventary; - i.push(entry); - setInventary(i); - }; - return ( <div> <h2 className="text-center">Entradas de Almacén</h2> - <CreateInventary setEntry={setEntry} /> + <CreateInventary setEntry={(e) => setInventary([e, ...inventary])} /> <hr /> <Fetcher url="/api/inventary" onFetch={setInventary}> diff --git a/src/inventary/InventaryList.js b/src/inventary/InventaryList.js index 9a6fecfd57189e9df8b55d7f972b75537768daee..d5e41243eb41e8d5908abe5ce9a906bfe9bbd673 100644 --- a/src/inventary/InventaryList.js +++ b/src/inventary/InventaryList.js @@ -40,7 +40,7 @@ function InventaryList(props) { <tr> <td>{printInventaryID(i)}</td> <td>{printDate(i.date)}</td> - <td>{i.member.name}</td> + <td>{i.member && i.member.name}</td> <td>{supplier(i)}</td> </tr> </LinkContainer> diff --git a/src/product/ProductPicker.js b/src/product/ProductPicker.js index 33ca1614f0d944eef649c04cfc54428325f4a41f..ed723c9647cc6dc060de55e16157fa5b4cd2743b 100644 --- a/src/product/ProductPicker.js +++ b/src/product/ProductPicker.js @@ -15,13 +15,13 @@ class ProductPicker extends React.Component { } delPick(index) { - let picks = this.props.picks; + let picks = [...this.props.picks]; picks.splice(index, 1); this.props.setPicks(picks); } setAmount(index, amount) { - let picks = this.props.picks; + let picks = [...this.props.picks]; picks[index].amount = parseInt(amount); this.props.setPicks(picks); // trick it to redraw on each change @@ -29,7 +29,7 @@ class ProductPicker extends React.Component { } setPrice(index, price) { - let picks = this.props.picks; + let picks = [...this.props.picks]; picks[index].price = price; this.props.setPicks(picks); } @@ -45,7 +45,7 @@ class ProductPicker extends React.Component { } pickProduct(product) { - let picks = this.props.picks; + let picks = [...this.props.picks]; if (picks.find((p) => product.code === p.code)) { return; }