Commit c527f1b9 authored by Khai Yuan ​Liew's avatar Khai Yuan ​Liew

[AFP-15] Finish work on delete product functionality

parent 227fb9ee
...@@ -10,6 +10,6 @@ export const getAllProducts = async data => { ...@@ -10,6 +10,6 @@ export const getAllProducts = async data => {
export const deleteProduct = async (sku) => { export const deleteProduct = async (sku) => {
await axios.delete(`${Config.inventoryUrl}/${sku}`) await axios.delete(`${Config.inventoryUrl}/${sku}`)
.then(() => { .then(() => {
return await axios.get(`${Config.inventoryUrl}`); getAllProducts();
}); });
} }
\ No newline at end of file
import React, { useState } from "react"; import React, { useState } from "react";
import "./../styles/Product.css"; import "./../styles/Product.css";
import { Modal, Button, Alert } from "react-bootstrap"; import { Modal, Button, Alert } from "react-bootstrap";
import { deleteProduct } from "../actions/apiRequests";
export default function Product({ product }) { export default function Product({ product, handleDelete }) {
const [show, setShow] = useState(false); const [show, setShow] = useState(false);
const [showConfirm, setShowConfirm] = useState(false); const [showConfirm, setShowConfirm] = useState(false);
...@@ -12,12 +11,9 @@ export default function Product({ product }) { ...@@ -12,12 +11,9 @@ export default function Product({ product }) {
handleCloseConfirm(); handleCloseConfirm();
}; };
const handleDelete = (sku) => { const handleCloseDelete = (sku) => {
deleteProduct(sku) handleDelete(sku)
.then(res => { handleClose();
const products = res.data;
this.setState({products});
});
} }
...@@ -77,7 +73,7 @@ export default function Product({ product }) { ...@@ -77,7 +73,7 @@ export default function Product({ product }) {
Cancel Cancel
</Button> </Button>
&nbsp;&nbsp; &nbsp;&nbsp;
<Button variant="danger" onClick={handleDelete(product.sku)}>Yes, delete</Button> <Button variant="danger" onClick={() => handleCloseDelete(product.sku)}>Yes, delete</Button>
</Alert> </Alert>
</Modal.Footer> </Modal.Footer>
</Modal> </Modal>
......
...@@ -4,6 +4,7 @@ import { Col, Container, Row } from "react-bootstrap"; ...@@ -4,6 +4,7 @@ import { Col, Container, Row } from "react-bootstrap";
import "./../styles/ProductGrid.css"; import "./../styles/ProductGrid.css";
import Config from "../config.js"; import Config from "../config.js";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { deleteProduct } from "../actions/apiRequests";
export default function ProductGrid({ productData }) { export default function ProductGrid({ productData }) {
const [products, setProducts] = useState([]); const [products, setProducts] = useState([]);
...@@ -16,10 +17,17 @@ export default function ProductGrid({ productData }) { ...@@ -16,10 +17,17 @@ export default function ProductGrid({ productData }) {
} }
}; };
const handleDelete = (sku) => {
deleteProduct(sku)
.then(() => {
fetchProducts();
});
}
useEffect(() => fetchProducts(), []); useEffect(() => fetchProducts(), []);
return ( return (
<div class="container flex-column d-flex justify-content-center"> <div className="container flex-column d-flex justify-content-center">
<div className="container mt-3 d-flex justify-content-between align-items-center"> <div className="container mt-3 d-flex justify-content-between align-items-center">
<h1 id="title" className="text-center"> <h1 id="title" className="text-center">
Inventory Inventory
...@@ -33,7 +41,7 @@ export default function ProductGrid({ productData }) { ...@@ -33,7 +41,7 @@ export default function ProductGrid({ productData }) {
{products.map((product) => { {products.map((product) => {
return ( return (
<Col key={product.sku}> <Col key={product.sku}>
<Product product={product} /> <Product product={product} handleDelete={() => handleDelete(product.sku)} />
</Col> </Col>
); );
})} })}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment