From 80e2d9b2706dc33dc4b443ddaf675d8e4dc81b3c Mon Sep 17 00:00:00 2001 From: Imanuel Raditya <16521421@mahasiswa.itb.ac.id> Date: Mon, 27 Nov 2023 22:05:22 +0700 Subject: [PATCH] fix: fix logout, tableid, and user --- frontend/src/components/Sidebar.tsx | 2 +- frontend/src/hooks/useAuth.tsx | 4 ++-- frontend/src/pages/Homepage.tsx | 4 ++-- frontend/src/pages/ManageOrderTenant.tsx | 4 +++- frontend/src/pages/OrderList.tsx | 8 ++++++-- frontend/src/pages/OrderSummary.tsx | 6 ++++-- frontend/src/pages/ShoppingCart.tsx | 9 ++++++--- frontend/src/pages/TenantInfo.tsx | 6 ++++-- frontend/src/pages/ViewPaymentHistory.tsx | 5 +++-- 9 files changed, 31 insertions(+), 17 deletions(-) diff --git a/frontend/src/components/Sidebar.tsx b/frontend/src/components/Sidebar.tsx index c701ded..4e38548 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 80f5f37..bb6e089 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 57713d4..9b68fad 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 0f6bbe9..054ca27 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 9481001..7cac292 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 ba6ba40..4d745a0 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 a86c281..6acd494 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 55ef10d..edef135 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 0ef954b..86983f9 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 -- GitLab