From 31c0f12e403614a85aff6d5f3a919ec0928a9c48 Mon Sep 17 00:00:00 2001 From: meskio <meskio@sindominio.net> Date: Mon, 21 Dec 2020 14:15:14 +0100 Subject: [PATCH] Be able to select a previous order when creating an order --- src/order/CreateOrder.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/order/CreateOrder.js b/src/order/CreateOrder.js index 72afd6d..8e9c42d 100644 --- a/src/order/CreateOrder.js +++ b/src/order/CreateOrder.js @@ -3,6 +3,7 @@ import { Redirect } from "react-router-dom"; import { Form, Row, Col, Button } from "react-bootstrap"; import ProductPicker from "../ProductPicker"; import Sender from "../Sender"; +import Fetcher from "../Fetcher"; function date2string(date) { return date.toISOString().split("T")[0]; @@ -20,6 +21,7 @@ function CreateOrder() { const [description, setDescription] = useState(""); const [deadline, setDeadline] = useState(daysAfterNow(3)); const [order, setOrder] = useState(null); + const [prevOrders, setPrevOrders] = useState(null); if (order !== null) { return <Redirect to={"/order/" + order.ID} />; @@ -32,8 +34,34 @@ function CreateOrder() { return { name, description, deadline, products }; }; + const fillOrder = (name) => { + const prevOrder = prevOrders.find((o) => o.name === name); + setName(name); + setDescription(prevOrder.description); + setPicks(prevOrder.products); + }; + + const orderOptions = prevOrders + ? prevOrders.map((o) => <option>{o.name}</option>) + : ""; + return ( <Sender url="/api/order" body={body} onSuccess={setOrder}> + <Form.Group as={Row}> + <Form.Label as="legend" column sm={3}> + Repetir pedido + </Form.Label> + <Col sm={9}> + <Fetcher url="/api/order/picks" onFetch={setPrevOrders}> + <Form.Control + as="select" + onChange={(e) => fillOrder(e.target.value)} + > + {orderOptions} + </Form.Control> + </Fetcher> + </Col> + </Form.Group> <Form.Group as={Row}> <Form.Label as="legend" column sm={3}> Nombre -- GitLab