diff --git a/frontend/src/components/Sidebar.tsx b/frontend/src/components/Sidebar.tsx index c701ded1a4990ffd69e4eeae1600bfe2761fd4d3..4e385488e25fff977c3fa2e30b713d9d8c174c37 100644 --- a/frontend/src/components/Sidebar.tsx +++ b/frontend/src/components/Sidebar.tsx @@ -136,7 +136,7 @@ export default function Sidebar(props: any) { </ul> </div> {props.customer === true ? ( - <a onClick={logout}> + <a onClick={logout} href="/role"> <div className="flex flex-col px-10 py-3.5 mt-auto mb-8"> <button type="button" diff --git a/frontend/src/hooks/useAuth.tsx b/frontend/src/hooks/useAuth.tsx index 80f5f37171ef3e2794f3d52f7900e02663d6effc..bb6e089b6259f65775ffd848520505e5fa5ff591 100644 --- a/frontend/src/hooks/useAuth.tsx +++ b/frontend/src/hooks/useAuth.tsx @@ -2,7 +2,7 @@ import React, { useState, createContext, useContext, ReactNode } from "react"; import * as userService from "../services/userService"; import { toast } from "react-toastify"; -interface AuthUser { +export interface AuthUser { id: number; username: string; fullname: string; @@ -11,7 +11,7 @@ interface AuthUser { token: string; } -interface AuthTable { +export interface AuthTable { num_seat: number; id_table: number; fullname: string; diff --git a/frontend/src/pages/Homepage.tsx b/frontend/src/pages/Homepage.tsx index 57713d4f5a4f6e88257eb143793ca08c05f9960c..9b68fade4f921fe8b89bc408a458a90d7bbca858 100644 --- a/frontend/src/pages/Homepage.tsx +++ b/frontend/src/pages/Homepage.tsx @@ -4,7 +4,7 @@ import Sidebar from "../components/Sidebar"; import TenantCard from "../components/TenantCard"; import Search from "../components/Search"; import WelcomingText from "../components/WelcomingText"; -import { useAuth } from "../hooks/useAuth"; +import { useAuth, AuthTable } from "../hooks/useAuth"; interface Tenant { id: number; @@ -79,7 +79,7 @@ export default function Homepage() { } }; - const tableid = 1; + const tableid = (user as AuthTable).id; return ( <div className="grid grid-cols-5 grid-rows-8 bg-mealshub-cream min-h-screen"> diff --git a/frontend/src/pages/ManageOrderTenant.tsx b/frontend/src/pages/ManageOrderTenant.tsx index 0f6bbe980b4755481a51fa1dcc122440a6261678..054ca274e12ccba78339f814d632a9d397efab17 100644 --- a/frontend/src/pages/ManageOrderTenant.tsx +++ b/frontend/src/pages/ManageOrderTenant.tsx @@ -9,6 +9,7 @@ import ProfileDropDown from "../components/ProfileDropDown"; import Axios from "axios"; import { useParams } from "react-router-dom"; import crypto from "crypto-js"; +import { useAuth } from "../hooks/useAuth"; interface Order { id: number; @@ -57,6 +58,7 @@ interface OrderDetails { } export default function OrderDetails() { + const { user } = useAuth(); const { orderid } = useParams(); const [showProfileDropDown, setShowProfileDropDown] = useState(false); @@ -277,7 +279,7 @@ export default function OrderDetails() { {/* Header */} <div className="col-span-4"> <div className="row-span-1 ms-20 mt-9 py-3 w-11/12"> - <Welcome user="Aldaebaran" /> + <Welcome user={user ? user!.fullname : ""} /> </div> <div className="absolute top-0 right-0 mt-9 mx-12"> <Profile diff --git a/frontend/src/pages/OrderList.tsx b/frontend/src/pages/OrderList.tsx index 9481001dd3b9e6cb67114d91cecdd82dad6907e2..7cac2928609fba0bcd2bc17c22f9027c99e07f93 100644 --- a/frontend/src/pages/OrderList.tsx +++ b/frontend/src/pages/OrderList.tsx @@ -3,6 +3,8 @@ import OrderCard from "../components/OrderCard"; import WelcomingText from "../components/WelcomingText"; import { useEffect, useState } from "react"; import Axios from "axios"; +import { useAuth, AuthTable } from "../hooks/useAuth"; +import { useParams } from "react-router-dom"; interface Tenant { id: number, @@ -44,7 +46,9 @@ interface joinedData { } export default function OrderList() { - const tableid = 101; + const { user } = useAuth(); + const tableid = (user as AuthTable).id; + const [joinedData, setJoinedData] = useState<joinedData[]>([]); const getData = async () => { @@ -116,7 +120,7 @@ export default function OrderList() { <div className="col-span-4"> <div className="ms-20"> <div className="row-span-1 mt-9 py-3 w-11/12"> - <WelcomingText name="Table 1" /> + <WelcomingText name={user ? user!.fullname : ""} /> </div> <div className="row-span-7 mt-6 mb-9 py-12 w-11/12 bg-white rounded-3xl"> <div className=""> diff --git a/frontend/src/pages/OrderSummary.tsx b/frontend/src/pages/OrderSummary.tsx index ba6ba402e30a546494cfdd341af29178997da1c9..4d745a02fc55ffb06f60b229e3cbcf3e932c40cc 100644 --- a/frontend/src/pages/OrderSummary.tsx +++ b/frontend/src/pages/OrderSummary.tsx @@ -7,6 +7,7 @@ import { useEffect, useState } from "react"; import Axios from "axios"; import { useParams } from "react-router-dom"; import crypto from "crypto-js"; +import { useAuth, AuthTable } from "../hooks/useAuth"; interface Order { id: number, @@ -55,6 +56,7 @@ interface OrderDetails { } export default function OrderSummary() { + const { user } = useAuth(); const { orderid } = useParams(); const [joinedOrderSummaryData, setJoinedOrderSummaryData] = useState<OrderSummary[]>([]); @@ -133,7 +135,7 @@ export default function OrderSummary() { console.log(joinedOrderDetailsData); - const tableid = 1; + const tableid = (user as AuthTable).id; return ( // Create grid layout for sidebard, header, and main content @@ -145,7 +147,7 @@ export default function OrderSummary() { {/* Header */} <div className="col-span-4"> <div className="row-span-1 ms-20 mt-9 py-3 w-11/12"> - <WelcomingText name="Table 1"/> + <WelcomingText name={user ? user!.fullname : ""}/> </div> <div className="row-span-7 mt-6 mb-9 w-11/12"> <div className="ms-4"> diff --git a/frontend/src/pages/ShoppingCart.tsx b/frontend/src/pages/ShoppingCart.tsx index a86c281038eccaa6403eabb5fd576b2c4566657d..6acd49488e0d22b57047b41f58be5f627e940153 100644 --- a/frontend/src/pages/ShoppingCart.tsx +++ b/frontend/src/pages/ShoppingCart.tsx @@ -5,7 +5,8 @@ import WelcomingText from "../components/WelcomingText"; import { useShoppingCart } from "../contexts/ShoppingCartContext"; import { useState, useEffect } from "react"; import Axios from "axios"; -import { useNavigate } from "react-router-dom"; +import { useNavigate, useParams } from "react-router-dom"; +import { useAuth, AuthTable } from "../hooks/useAuth"; interface cartItem { id: number; @@ -29,6 +30,7 @@ interface Tenant { export default function ShoppingCart() { + const { user } = useAuth(); const { clearCart, cartItems } = useShoppingCart(); const [tenantData, setTenantData] = useState<Tenant[]>([]); @@ -84,7 +86,8 @@ export default function ShoppingCart() { console.log(productData); - const tableid = 1; + const tableid = (user as AuthTable).id; + console.log(tableid); const getTenantId = (cartItem: cartItem) => { const item = productData.find((i) => i.id === cartItem.id); @@ -154,7 +157,7 @@ export default function ShoppingCart() { <div className="col-span-4"> <div className="ms-20"> <div className="row-span-1 mt-9 py-3 w-11/12"> - <WelcomingText name="Table 1" /> + <WelcomingText name={user ? user!.fullname : ""} /> </div> <div className="row-span-7 mt-6 mb-9 py-12 w-11/12 bg-white rounded-3xl"> <div className=""> diff --git a/frontend/src/pages/TenantInfo.tsx b/frontend/src/pages/TenantInfo.tsx index 55ef10d4836437b179f808119112d52f419b663b..edef135b738fd1c6606e1e29fcb17170aebe59cb 100644 --- a/frontend/src/pages/TenantInfo.tsx +++ b/frontend/src/pages/TenantInfo.tsx @@ -6,6 +6,7 @@ import BackButton from "../components/BackButton"; import { useState, useEffect } from "react"; import Axios from "axios"; import { useParams } from "react-router-dom"; +import { useAuth, AuthTable } from "../hooks/useAuth"; interface Tenant { id : number, @@ -47,6 +48,7 @@ interface ProductCard { } export default function TenantInfo() { + const { user } = useAuth(); const { tenantid } = useParams(); const [joinedTenantHeaderData, setJoinedTenantHeaderData] = useState<TenantHeader[]>([]); @@ -119,7 +121,7 @@ export default function TenantInfo() { console.log(joinedProductCardData); - const tableid = 1; + const tableid = (user as AuthTable).id; return ( // Create grid layout for sidebard, header, and main content @@ -131,7 +133,7 @@ export default function TenantInfo() { {/* Header */} <div className="col-span-4"> <div className="row-span-1 ms-20 mt-9 py-3 w-11/12"> - <WelcomingText name="Table 1"/> + <WelcomingText name={user ? user!.fullname : ""}/> </div> <div className="row-span-7 mt-6 mb-9 w-11/12"> <div className="ms-4"> diff --git a/frontend/src/pages/ViewPaymentHistory.tsx b/frontend/src/pages/ViewPaymentHistory.tsx index 0ef954b54897e4381b77bcb11be738873930b553..86983f96bb1db00aa3d5aed95383dd1e323e6742 100644 --- a/frontend/src/pages/ViewPaymentHistory.tsx +++ b/frontend/src/pages/ViewPaymentHistory.tsx @@ -5,10 +5,11 @@ import { useState } from "react"; import ProfileDropDown from "../components/ProfileDropDown"; import joinedOrderPayment from "../../../backend/src/services/api/joinedOrderPayment"; import TablePayment from "../components/TablePayment"; +import { useAuth } from "../hooks/useAuth"; export default function ViewPaymentHistory() { - const cashierid = 1; + const { user } = useAuth(); const [showProfileDropDown, setShowProfileDropDown] = useState(false); const handleProfileClick = () => { @@ -32,7 +33,7 @@ export default function ViewPaymentHistory() { {/* Header */} <div className="col-span-4"> <div className="ms-20 row-span-1 mt-9 py-3 w-11/12"> - <Welcome user="Aldaebaran" /> + <Welcome user={user ? user!.fullname : ""} /> </div> <div className="absolute top-0 right-0 mt-9 mx-12"> <Profile