+
diff --git a/src/BookingRow.jsx b/src/BookingRow.jsx
new file mode 100644
index 000000000..96b43e94f
--- /dev/null
+++ b/src/BookingRow.jsx
@@ -0,0 +1,19 @@
+import React from "react";
+
+const BookingRow = ({ booking, onClick, isSelected }) => {
+ return (
+
+ {booking.id}
+ {booking.title}
+ {booking.firstName}
+ {booking.surname}
+ {booking.email}
+ {booking.roomId}
+ {booking.checkInDate}
+ {booking.checkOutDate}
+ {booking.numberOfNights}
+
+ );
+};
+
+export default BookingRow;
\ No newline at end of file
diff --git a/src/Bookings.js b/src/Bookings.js
index bd4d4d19c..11381f382 100644
--- a/src/Bookings.js
+++ b/src/Bookings.js
@@ -1,9 +1,11 @@
-import React from "react";
+import React, { useState } from 'react';
import Search from "./Search";
import SearchResults from "./SearchResults";
import FakeBookings from "./data/fakeBookings";
const Bookings = () => {
+ const [bookings, setBookings] = useState(FakeBookings);
+
const search = searchVal => {
console.info("TO DO!", searchVal);
};
@@ -12,7 +14,7 @@ const Bookings = () => {
);
diff --git a/src/Order.js b/src/Order.js
new file mode 100644
index 000000000..36dc8122f
--- /dev/null
+++ b/src/Order.js
@@ -0,0 +1,19 @@
+import React, { useState } from "react";
+import RestaurantButton from "./RestaurantButton"
+
+const Order = (props) => {
+ const [orders, setOrders] = useState(0);
+
+ const orderOne = () => {
+ setOrders(prevOrders => prevOrders + 1);
+ };
+
+ return (
+
+ {props.orderType}: {orders}
+
+
+ );
+};
+
+export default Order;
\ No newline at end of file
diff --git a/src/Restaurant.js b/src/Restaurant.js
index ecb2b43a2..531105f7d 100644
--- a/src/Restaurant.js
+++ b/src/Restaurant.js
@@ -1,14 +1,14 @@
import React from "react";
+import Order from "./Order"
const Restaurant = () => {
- const pizzas = 0;
return (
Restaurant Orders
-
- Pizzas: {pizzas} Add
-
+
+
+
);
diff --git a/src/RestaurantButton.jsx b/src/RestaurantButton.jsx
new file mode 100644
index 000000000..c38f02b61
--- /dev/null
+++ b/src/RestaurantButton.jsx
@@ -0,0 +1,10 @@
+import React from "react"
+
+const RestaurantButton = ({ orderOne }) => (
+
+
+ Add
+
+);
+
+export default RestaurantButton;
\ No newline at end of file
diff --git a/src/SearchResults.jsx b/src/SearchResults.jsx
index b785abe2a..570745c09 100644
--- a/src/SearchResults.jsx
+++ b/src/SearchResults.jsx
@@ -1,59 +1,47 @@
-import React from "react";
-
-function nightsInHotel(checkOutDate, checkInDate) {
- const checkOut = new Date(checkOutDate);
- const checkIn = new Date(checkInDate);
- const timeDifference = checkOut - checkIn;
- const nights = Math.ceil(timeDifference / (1000 * 3600 * 24));
- return nights;
-}
-
-const BookingRow = ({ booking }) => {
- const numberOfNights = nightsInHotel(booking.checkOutDate, booking.checkInDate);
- return (
-
- {booking.id}
- {booking.title}
- {booking.firstName}
- {booking.surname}
- {booking.email}
- {booking.roomId}
- {booking.checkInDate}
- {booking.checkOutDate}
- {numberOfNights}
-
- );
-};
+import React, { useState } from "react";
+import BookingRow from "./BookingRow";
const SearchResults = ({ bookings }) => {
- return (
-
-
Search Results
-
-
-
- ID
- Title
- First Name
- Surname
- Email
- Room ID
- Check-in Date
- Check-out Date
- Nights
-
-
-
-
- {bookings.map((booking) => (
-
+ const [selectedRow, setSelectedRow] = useState(null);
- ))}
-
-
+ const handleRowClick = (index) => {
+ if (selectedRow === index) {
+ setSelectedRow(null);
+ } else {
+ setSelectedRow(index);
+ }
+ };
-
- );
+ return (
+
+
Search Results
+
+
+
+ ID
+ Title
+ First Name
+ Surname
+ Email
+ Room ID
+ Check-in Date
+ Check-out Date
+ Nights
+
+
+
+ {bookings.map((booking, index) => (
+ handleRowClick(index)}
+ isSelected={selectedRow === index}
+ />
+ ))}
+
+
+
+ );
};
-export default SearchResults;
\ No newline at end of file
+export default SearchResults;
From 204570ed448ac7900c872db8135cf36a6b96b67e Mon Sep 17 00:00:00 2001
From: onurat <114289826+onurat@users.noreply.github.com>
Date: Wed, 30 Aug 2023 14:54:02 +0100
Subject: [PATCH 4/7] Update BookingRow.jsx
---
src/BookingRow.jsx | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/BookingRow.jsx b/src/BookingRow.jsx
index 96b43e94f..1942b755a 100644
--- a/src/BookingRow.jsx
+++ b/src/BookingRow.jsx
@@ -1,6 +1,14 @@
import React from "react";
const BookingRow = ({ booking, onClick, isSelected }) => {
+ const calculateNumberOfNights = () => {
+ const oneDay = 24 * 60 * 60 * 1000;
+ const checkInDate = new Date(booking.checkInDate);
+ const checkOutDate = new Date(booking.checkOutDate);
+ const nightCount = Math.round(Math.abs((checkOutDate - checkInDate) / oneDay));
+ return nightCount;
+ };
+
return (
{booking.id}
@@ -11,9 +19,9 @@ const BookingRow = ({ booking, onClick, isSelected }) => {
{booking.roomId}
{booking.checkInDate}
{booking.checkOutDate}
- {booking.numberOfNights}
+ {calculateNumberOfNights()}
);
};
-export default BookingRow;
\ No newline at end of file
+export default BookingRow;
From 8b757a6f95750bb35d9f68f386d1d4b9d9991043 Mon Sep 17 00:00:00 2001
From: onurat <114289826+onurat@users.noreply.github.com>
Date: Wed, 30 Aug 2023 15:16:41 +0100
Subject: [PATCH 5/7] Update Bookings.js
---
src/Bookings.js | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/Bookings.js b/src/Bookings.js
index 11381f382..f67eb9633 100644
--- a/src/Bookings.js
+++ b/src/Bookings.js
@@ -1,15 +1,26 @@
-import React, { useState } from 'react';
+import React, { useState, useEffect } from 'react';
import Search from "./Search";
import SearchResults from "./SearchResults";
-import FakeBookings from "./data/fakeBookings";
+
const Bookings = () => {
- const [bookings, setBookings] = useState(FakeBookings);
+ const [bookings, setBookings] = useState([]);
const search = searchVal => {
console.info("TO DO!", searchVal);
};
+ useEffect(() => {
+ fetch("https://cyf-react.glitch.me")
+ .then(response => response.json())
+ .then(data => {
+ setBookings(data);
+ })
+ .catch(error => {
+ console.error("Error fetching data:", error);
+ });
+ }, []);
+
return (
From 4ce20436422dc95d2b00a62068a0946484382a4d Mon Sep 17 00:00:00 2001
From: onurat <114289826+onurat@users.noreply.github.com>
Date: Fri, 8 Sep 2023 16:44:00 +0100
Subject: [PATCH 6/7] .
---
src/Bookings.js | 1 +
src/Search.js | 25 +++++++++++++++++++++----
2 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/src/Bookings.js b/src/Bookings.js
index f67eb9633..b7670afcc 100644
--- a/src/Bookings.js
+++ b/src/Bookings.js
@@ -5,6 +5,7 @@ import SearchResults from "./SearchResults";
const Bookings = () => {
const [bookings, setBookings] = useState([]);
+ const [filteredBookings, setFilteredBookings] = useState([]);
const search = searchVal => {
console.info("TO DO!", searchVal);
diff --git a/src/Search.js b/src/Search.js
index d0c47c232..b4bfb1858 100644
--- a/src/Search.js
+++ b/src/Search.js
@@ -1,7 +1,22 @@
-import React from "react";
+import React, { useState } from "react";
import SearchButton from "./SearchButton";
-const Search = () => {
+const Search = ({ search }) => {
+ const [searchInput, setSearchInput] = useState("");
+
+ const handleSearchInput = (event) => {
+ const inputValue = event.target.value;
+ setSearchInput(inputValue);
+ console.log("Input value:", inputValue);
+ };
+
+ const handleSubmit = (event) => {
+ event.preventDefault();
+
+ search(searchInput);
+
+ };
+
return (
@@ -9,7 +24,7 @@ const Search = () => {
From f11a7710d163ac05b5a144cbadbd45f3a4f1179c Mon Sep 17 00:00:00 2001
From: onurat <114289826+onurat@users.noreply.github.com>
Date: Mon, 11 Sep 2023 17:10:23 +0100
Subject: [PATCH 7/7] .
---
src/Bookings.js | 10 +++++++++-
src/Search.js | 7 ++-----
2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/Bookings.js b/src/Bookings.js
index b7670afcc..3f0101bdf 100644
--- a/src/Bookings.js
+++ b/src/Bookings.js
@@ -8,7 +8,15 @@ const Bookings = () => {
const [filteredBookings, setFilteredBookings] = useState([]);
const search = searchVal => {
- console.info("TO DO!", searchVal);
+ const filtered = bookings.filter((booking) => {
+ const { firstName, surname } = booking;
+ return (
+ firstName.toLowerCase().includes(searchVal.toLowerCase()) ||
+ surname.toLowerCase().includes(searchVal.toLowerCase())
+ );
+ });
+
+ setFilteredBookings(filtered);
};
useEffect(() => {
diff --git a/src/Search.js b/src/Search.js
index b4bfb1858..95e5cba21 100644
--- a/src/Search.js
+++ b/src/Search.js
@@ -1,20 +1,17 @@
import React, { useState } from "react";
import SearchButton from "./SearchButton";
-const Search = ({ search }) => {
+const Search = ({ search }) => {
const [searchInput, setSearchInput] = useState("");
const handleSearchInput = (event) => {
const inputValue = event.target.value;
setSearchInput(inputValue);
- console.log("Input value:", inputValue);
};
const handleSubmit = (event) => {
event.preventDefault();
-
- search(searchInput);
-
+ search(searchInput);
};
return (