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