Commit c184820a authored by Sumaiyya Burney's avatar Sumaiyya Burney

Fetches products from DB and outputs as table

parent 290c7a9b
import Config from '../config';
import axios from 'axios';
export const getAllProducts = async data => {
const res = await axios.get(`${Config.inventoryUrl}`);
// console.log(res.data);
return res.data;
}
\ No newline at end of file
import React from "react"; import React, { useState, useEffect } from 'react';
import { Redirect, Switch } from "react-router"; import { Redirect, Switch } from "react-router";
import AuthRoute from "./AuthRoute"; import AuthRoute from "./AuthRoute";
import ProductForm from "./ProductForm"; import ProductForm from "./ProductForm";
import ProductGrid from "./ProductGrid";
import {getAllProducts} from "../actions/apiRequests.js"
export default function Main() { export default function Main() {
const [productData, setproductData] = useState([]);
useEffect(() => {
loadProducts();
}, []);
const loadProducts = async (event) => {
const data = await getAllProducts();
setproductData(data);
}
return ( return (
<div> <div>
<Switch> <Switch>
...@@ -11,7 +24,9 @@ export default function Main() { ...@@ -11,7 +24,9 @@ export default function Main() {
<ProductForm /> <ProductForm />
</AuthRoute> </AuthRoute>
<AuthRoute exact path="/promos/new">NEW PROMO</AuthRoute> <AuthRoute exact path="/promos/new">NEW PROMO</AuthRoute>
<AuthRoute exact path="/products">PRODUCTS</AuthRoute> <AuthRoute exact path="/products">
<ProductGrid productData={productData} />
</AuthRoute>
<AuthRoute path="/promos">PROMOS</AuthRoute> <AuthRoute path="/promos">PROMOS</AuthRoute>
<AuthRoute exact path="/"> <AuthRoute exact path="/">
<Redirect to="/products" /> <Redirect to="/products" />
......
import React from 'react'
export default function ProductGrid({productData}) {
return (
<div>
PRODUCT GRID
<div id="prod-grid">
<table>
<tbody>
{productData.map((product) => {
return (
<tr>
<td><img src={product.productImageUrl} alt="product"/></td>
<td>{product.productName}</td>
<td>{product.price}</td>
<td>{product.sku}</td>
<td>{product.description}</td>
</tr>
)
})}
</tbody>
</table>
</div>
</div>
)
}
class Config {
static inventoryUrl = "http://localhost:8080/api/products";
static promotionsUrl = "http://localhost:8081/api/promos";
}
export default Config;
\ No newline at end of file
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