From a2dfc4807498e9857752886175467c392473b21c Mon Sep 17 00:00:00 2001
From: Charith345 <44852950+Charith345@users.noreply.github.com>
Date: Sun, 3 Dec 2023 11:11:49 -0800
Subject: [PATCH 1/3] broadcast
---
.../admin-customer/BroadcastModal.jsx | 36 +++++++++++++++++++
.../admin-customer/BroadcastingSystem.jsx | 21 +++++++++++
client/src/pages/admin-customer.js | 3 +-
3 files changed, 59 insertions(+), 1 deletion(-)
create mode 100644 client/src/components/admin-customer/BroadcastModal.jsx
create mode 100644 client/src/components/admin-customer/BroadcastingSystem.jsx
diff --git a/client/src/components/admin-customer/BroadcastModal.jsx b/client/src/components/admin-customer/BroadcastModal.jsx
new file mode 100644
index 0000000..e0a952b
--- /dev/null
+++ b/client/src/components/admin-customer/BroadcastModal.jsx
@@ -0,0 +1,36 @@
+import React, {useState} from 'react';
+import { AiOutlineClose } from 'react-icons/ai'
+
+const BroadcastModal = ({ isOpen, onClose}) => {
+ //State for storing the message
+ const [announcement, setAnnouncement] = useState('');
+ //set announcement to whatever user inputs in the text area
+ const handleChange = (e) => {
+ setAnnouncement(e.target.value)
+ }
+ if (!isOpen) return null;
+ return (
+
+
+
+ {/*Button to close the modal*/}
+
+
+ {/*Text Area for Admin to input the announcement*/}
+
+ {/*Button for Admin to release the announcement*/}
+
+
+
+ )
+}
+export default BroadcastModal;
\ No newline at end of file
diff --git a/client/src/components/admin-customer/BroadcastingSystem.jsx b/client/src/components/admin-customer/BroadcastingSystem.jsx
new file mode 100644
index 0000000..3d8667d
--- /dev/null
+++ b/client/src/components/admin-customer/BroadcastingSystem.jsx
@@ -0,0 +1,21 @@
+import React, {useState} from 'react';
+import BroadcastModal from './BroadcastModal';
+const BroadcastingSystem = () => {
+ const [displayModal, setDisplayModal] = useState(false);
+ const openModal = () => {
+ setDisplayModal(true);
+ }
+ const closeModal = () => {
+ setDisplayModal(false);
+ }
+ return (
+
+ );
+};
+
+export default BroadcastingSystem;
\ No newline at end of file
diff --git a/client/src/pages/admin-customer.js b/client/src/pages/admin-customer.js
index 9e5a78d..b39557b 100644
--- a/client/src/pages/admin-customer.js
+++ b/client/src/pages/admin-customer.js
@@ -1,5 +1,6 @@
import React from 'react'
import AdminNavbar from '../components/adminNavbar'
+import BroadcastingSystem from '../components/admin-customer/BroadcastingSystem';
const Admin_customer = (props) => {
const { WebSocketService, setPage } = props;
@@ -10,7 +11,7 @@ const Admin_customer = (props) => {
Customer
-
{/* Component */}
+
From e0e8790e3ea0c1215bc47f31f70ec18dc12a9130 Mon Sep 17 00:00:00 2001
From: Charith345 <44852950+Charith345@users.noreply.github.com>
Date: Sun, 3 Dec 2023 12:38:03 -0800
Subject: [PATCH 2/3] Updates
Broadcasting
---
.../src/components/admin-customer/Banner.jsx | 16 +++++++++++++
.../admin-customer/BroadcastModal.jsx | 1 +
client/src/pages/admin-dashboard.js | 24 ++++++++++++++++++-
client/src/pages/menu.js | 18 ++++++++++----
4 files changed, 54 insertions(+), 5 deletions(-)
create mode 100644 client/src/components/admin-customer/Banner.jsx
diff --git a/client/src/components/admin-customer/Banner.jsx b/client/src/components/admin-customer/Banner.jsx
new file mode 100644
index 0000000..75a60ea
--- /dev/null
+++ b/client/src/components/admin-customer/Banner.jsx
@@ -0,0 +1,16 @@
+import React from 'react';
+import { AiOutlineClose } from 'react-icons/ai'
+
+const Banner = ({message, onClose}) => {
+ return (
+
+ )
+};
+export default Banner;
\ No newline at end of file
diff --git a/client/src/components/admin-customer/BroadcastModal.jsx b/client/src/components/admin-customer/BroadcastModal.jsx
index e0a952b..de4958e 100644
--- a/client/src/components/admin-customer/BroadcastModal.jsx
+++ b/client/src/components/admin-customer/BroadcastModal.jsx
@@ -4,6 +4,7 @@ import { AiOutlineClose } from 'react-icons/ai'
const BroadcastModal = ({ isOpen, onClose}) => {
//State for storing the message
const [announcement, setAnnouncement] = useState('');
+ const [displayAnnouncement, setDisplayAnnouncement] = useState(true);
//set announcement to whatever user inputs in the text area
const handleChange = (e) => {
setAnnouncement(e.target.value)
diff --git a/client/src/pages/admin-dashboard.js b/client/src/pages/admin-dashboard.js
index 2bd4f89..81cb88e 100644
--- a/client/src/pages/admin-dashboard.js
+++ b/client/src/pages/admin-dashboard.js
@@ -6,18 +6,35 @@ import Admin_analytics from './admin-analytics';
import Admin_customer from './admin-customer';
import Admin_table from './admin-table';
import Admin_orders from './admin-orders';
+import Banner from '../components/admin-customer/Banner';
const Admin_dashboard = (props) => {
const [page, setPage] = useState("Dashboard");
-
+ const [help, setHelp] = useState(true);
+ const [tableNum, setTableNum] = useState('12');
+ const [helpMessage, setHelpMessage] = useState('');
const {WebSocketService} = props;
+ const [displayBanner, setDisplayBanner] = useState(true);
+
+ const checkHelp = () => {
+ if (help) {
+ setHelpMessage('Customer at table number ' + tableNum + ' requires assistance');
+ setDisplayBanner(true);
+ }
+ }
+
+ const closeBanner = () => {
+ setDisplayBanner(false);
+ setHelp(false);
+ }
useEffect(() => {
if (!WebSocketService.socket){
WebSocketService.connect('127.0.0.1', '8080', true)
.then(alert("Connected!"));
}
+ checkHelp();
}, []);
if (page === "Dashboard"){
@@ -28,6 +45,11 @@ const Admin_dashboard = (props) => {
Dashboard
+
+ {displayBanner && (
+
+ )}
+
{/* Component */}
diff --git a/client/src/pages/menu.js b/client/src/pages/menu.js
index b362974..516fb86 100644
--- a/client/src/pages/menu.js
+++ b/client/src/pages/menu.js
@@ -5,18 +5,19 @@ import ItemModal from '../components/itemModal';
import ShoppingCart from '../components/shoppingCart';
import LpNavBar from '../components/landing-page/lpNavBar';
import WebSocketService from '../WebSocketService';
+import Banner from '../components/admin-customer/Banner';
const Menu = (props) => {
// Testing
- // let admin = true;
- let admin = false;
-
+ let admin = true;
+ //let admin = false;
+ const [announcement, setAnnouncement] = useState('Restaurant is closing soon');
const [items, setItems] = useState([]); // used to save data states
const [isLoading, setIsLoading] = useState(true); // used to save whether data is loading
-
const [menuItems, setMenuItems] = useState([]);
+ const [displayBanner, setDisplayBanner] = useState(false);
const menuSet = false;
@@ -68,6 +69,10 @@ const Menu = (props) => {
const [selectedItem, setSelectedItem] = useState(null);
+ const closeBanner = () => {
+ setDisplayBanner(false);
+ }
+
const openModal = (item) => {
setSelectedItem(item);
};
@@ -83,6 +88,10 @@ const Menu = (props) => {
else {
return (
+
+ {admin && displayBanner && (
+
+ )}
{admin ? (
<>
@@ -143,6 +152,7 @@ const Menu = (props) => {
>
)}
+
);
}
};
From 5bccdb2d5386ca539aca68df501846708b478508 Mon Sep 17 00:00:00 2001
From: Charith345 <44852950+Charith345@users.noreply.github.com>
Date: Sun, 3 Dec 2023 12:44:19 -0800
Subject: [PATCH 3/3] changes
additions
---
client/src/components/shoppingCart.jsx | 1 +
client/src/pages/admin-dashboard.js | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/client/src/components/shoppingCart.jsx b/client/src/components/shoppingCart.jsx
index 70d6174..a310c58 100644
--- a/client/src/components/shoppingCart.jsx
+++ b/client/src/components/shoppingCart.jsx
@@ -35,6 +35,7 @@ const ShoppingCart = ({ orderNum, tableNum, date, cartItems, setCartItems, WebSo
const [subTotal, setSubTotal] = useState(0);
const [total, setTotal] = useState(0);
const [tax, setTax] = useState(0);
+ const [help, setHelp] = useState(true);
useEffect(() => {
const sum = cartItems.reduce((accu, cartItem) => {
return accu + cartItem.itemPrice * cartItem.itemCount;
diff --git a/client/src/pages/admin-dashboard.js b/client/src/pages/admin-dashboard.js
index 81cb88e..42a9f32 100644
--- a/client/src/pages/admin-dashboard.js
+++ b/client/src/pages/admin-dashboard.js
@@ -15,7 +15,7 @@ const Admin_dashboard = (props) => {
const [tableNum, setTableNum] = useState('12');
const [helpMessage, setHelpMessage] = useState('');
const {WebSocketService} = props;
- const [displayBanner, setDisplayBanner] = useState(true);
+ const [displayBanner, setDisplayBanner] = useState(false);
const checkHelp = () => {
if (help) {