diff --git a/src/components/SearchOrder.tsx b/src/components/SearchOrder.tsx new file mode 100644 index 0000000000000000000000000000000000000000..454039b12db1d68c9d54bf37f1588761599051ae --- /dev/null +++ b/src/components/SearchOrder.tsx @@ -0,0 +1,65 @@ +import React, { useState, useEffect } from 'react' +import { Link } from 'react-router-dom' +import { Order } from 'Order'; + + + +const SearchOrder = (props: any) => { + const orders = props.orders; + + const [searchInput, setSearchInput] = useState(""); + const [searchResult, setSearchResult] = useState([]); + + console.log("ORDERS", orders) + + // console.log("props", props) + + + const handleSearchInput = (event: any) => { + setSearchInput(event.target.value); + } + + const resetInputField = () => { + setSearchInput(""); + } + + useEffect(() => { + if (orders.length > 0) { + const res = orders.filter((order: any) => + order.orderNumber.includes(searchInput) //|| order.date.includes(searchInput) + // console.log(orderNum) + + ); + // debugger + setSearchResult(res); + } + }, [searchInput]); + + + return ( + <div> + <h1>Search</h1> + <input + type="text" + placeholder="Search" + value={searchInput} + onChange={handleSearchInput} + /> + <ul> + + {searchResult.map((item: any, idx) => { + // debugger + return ( + <li key={idx}> + <Link to={"/orders/" + item.orderNumber}>{item.orderNumber}</Link> + </li> + ) + })} + </ul> + </div> + ); +} + +export default SearchOrder + + diff --git a/src/components/index.ts b/src/components/index.ts index cbdc5ac723b395a9592f83382febd8cfc04170e7..a48d59ade31f5dcf52c5236d9c29e65ebc45b812 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -5,4 +5,5 @@ export {default as OrderDetails} from './OrderDetails' export {default as SignUpForm} from './SignUpForm' export {default as OrderShowDetails} from './OrderShowDetails' export {default as Login} from './Login' -export {default as Logout} from './Logout' \ No newline at end of file +export {default as Logout} from './Logout' +export {default as SearchOrder} from './SearchOrder' diff --git a/src/pages/OrderIndexPage.tsx b/src/pages/OrderIndexPage.tsx index a466a1fb0ab8842b908d592df124bf3242504c0a..365b2d141040a5a3c503afa507f02973e8df4f73 100644 --- a/src/pages/OrderIndexPage.tsx +++ b/src/pages/OrderIndexPage.tsx @@ -1,18 +1,26 @@ import React, {useState, useEffect} from 'react' -import {OrderDetails} from 'components' +import {OrderDetails, SearchOrder} from 'components' +import { OrderService } from 'services'; import { Order } from 'Order'; const OrderIndexPage = () => { let [orders, setOrders] = useState([]); useEffect(() => { - const apiUrl = 'http://localhost:8080/api/orders'; - fetch(apiUrl).then((response) => response.json()) - .then((data) => { - console.log('This is your data', data) - setOrders(data); - }); - }, [setOrders]) + OrderService.allOrders().then((res: any) => { + setOrders(res); + }); + }) + + + // const orderDetailsArr = orders.map((order: any, idx: any) => { + // const apiUrl = 'http://localhost:8080/api/orders'; + // fetch(apiUrl).then((response) => response.json()) + // .then((data) => { + // console.log('This is your data', data) + // setOrders(data); + // }); + // }, [setOrders]) const orderDetailsArr = orders.map((order: Order, idx: any) => { return <tr key={idx}><OrderDetails @@ -34,6 +42,7 @@ const OrderIndexPage = () => { {orderDetailsArr} </tbody> </table> + <SearchOrder orders={orders}/> </> ) }