From 8c4d503ef6c0eb1e2edcbf0b1ac66019114ab88b Mon Sep 17 00:00:00 2001 From: Tharindu Jayawardhana Date: Mon, 24 Jun 2024 19:52:12 +0530 Subject: [PATCH 1/5] added the multiline graph --- .../order-card/OrderCardComponent.tsx | 32 +++++++++++++++++++ .../services/OnlineOrderService.tsx | 25 +++++++++++++++ src/shared/navbar/CashierNavBar.tsx | 13 +++++++- 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 src/features/cashier-dashboard/components/order-card/OrderCardComponent.tsx create mode 100644 src/features/cashier-dashboard/services/OnlineOrderService.tsx diff --git a/src/features/cashier-dashboard/components/order-card/OrderCardComponent.tsx b/src/features/cashier-dashboard/components/order-card/OrderCardComponent.tsx new file mode 100644 index 0000000..d3e6921 --- /dev/null +++ b/src/features/cashier-dashboard/components/order-card/OrderCardComponent.tsx @@ -0,0 +1,32 @@ +import React, { useEffect } from 'react'; +import useOnlineOrderService from '../../services/OnlineOrderService'; +import { useUserContext } from '../../../../context/UserContext'; + +type Props = { + onClose: () => void; +}; + +function OrderCardComponent({ onClose }: Props) { + const { getOnlineOrders } = useOnlineOrderService(); + + useEffect(() => { + getOnlineOrders(); + }, []); + + return ( +
+
+ OrderCardComponent + +
+
+ ); +} + +export default OrderCardComponent; diff --git a/src/features/cashier-dashboard/services/OnlineOrderService.tsx b/src/features/cashier-dashboard/services/OnlineOrderService.tsx new file mode 100644 index 0000000..c6864ca --- /dev/null +++ b/src/features/cashier-dashboard/services/OnlineOrderService.tsx @@ -0,0 +1,25 @@ +import axios from 'axios'; +import { useUserContext } from '../../../context/UserContext'; +import useAxiosInstance from '../../login/services/useAxiosInstance'; + +const useOnlineOrderService = () => { + const http = useAxiosInstance(); + const user = useUserContext(); + + const getOnlineOrders = async () => { + try { + const res = await axios.get( + `http://localhost:8081/prescriptionOrders/${user.user?.branchId}` + ); + console.log(res); + } catch (error) { + console.log(error); + } + }; + + return { + getOnlineOrders, + }; +}; + +export default useOnlineOrderService; diff --git a/src/shared/navbar/CashierNavBar.tsx b/src/shared/navbar/CashierNavBar.tsx index 579ffb8..3a54811 100644 --- a/src/shared/navbar/CashierNavBar.tsx +++ b/src/shared/navbar/CashierNavBar.tsx @@ -8,9 +8,16 @@ import { LiaHistorySolid } from 'react-icons/lia'; import { PiDeviceMobileSpeakerThin } from 'react-icons/pi'; import ProfileNameCard from '../cashier_profile/ProfileNameCard'; import Divider from '../divider/Divider'; +import { useState } from 'react'; +import OrderCardComponent from '../../features/cashier-dashboard/components/order-card/OrderCardComponent'; const Logo = require('../../assets/logo/logo.png'); const CashierNavBar = () => { + const [showOnlineOrders, setShowOnlineOrders] = useState(false); + + const handleShowOnlineOrders = () => { + setShowOnlineOrders(!showOnlineOrders); + }; const handleClick = () => {}; return (
@@ -53,13 +60,17 @@ const CashierNavBar = () => { } text='Online Orders' - onClick={handleClick} + onClick={handleShowOnlineOrders} /> {/* Cashier name,number and profile picture */} + + {showOnlineOrders && ( + + )}
); }; From dff61c4168332399693cb138ee6f24f44fac1e40 Mon Sep 17 00:00:00 2001 From: Tharindu Jayawardhana Date: Wed, 26 Jun 2024 00:45:13 +0530 Subject: [PATCH 2/5] online order component is done --- .../order-card/OrderCardComponent.tsx | 98 ++++++++++++++++--- .../interfaces/OnlineOrder.tsx | 11 +++ .../services/OnlineOrderService.tsx | 52 +++++++++- .../services/BranchService.tsx | 7 +- 4 files changed, 149 insertions(+), 19 deletions(-) create mode 100644 src/features/cashier-dashboard/interfaces/OnlineOrder.tsx diff --git a/src/features/cashier-dashboard/components/order-card/OrderCardComponent.tsx b/src/features/cashier-dashboard/components/order-card/OrderCardComponent.tsx index d3e6921..06f9bde 100644 --- a/src/features/cashier-dashboard/components/order-card/OrderCardComponent.tsx +++ b/src/features/cashier-dashboard/components/order-card/OrderCardComponent.tsx @@ -1,29 +1,101 @@ -import React, { useEffect } from 'react'; +import React, { useState, useEffect } from 'react'; import useOnlineOrderService from '../../services/OnlineOrderService'; -import { useUserContext } from '../../../../context/UserContext'; +import { Loader } from 'lucide-react'; type Props = { onClose: () => void; }; function OrderCardComponent({ onClose }: Props) { - const { getOnlineOrders } = useOnlineOrderService(); + const { + getOnlineOrders, + loadingOnlineOrders, + onlineOrders, + prescriptionImages, + } = useOnlineOrderService(); + + const [messages, setMessages] = useState<{ [key: string]: string }>({}); useEffect(() => { getOnlineOrders(); }, []); + const handleAccept = (orderId: string) => { + // Handle accept logic here, e.g., updating the order status or making an API call + console.log(`Order ${orderId} accepted with message: ${messages[orderId]}`); + }; + + const handleReject = (orderId: string) => { + // Handle reject logic here, e.g., updating the order status or making an API call + console.log(`Order ${orderId} rejected with message: ${messages[orderId]}`); + }; + + const handleMessageChange = (orderId: string, message: string) => { + setMessages((prevMessages) => ({ + ...prevMessages, + [orderId]: message, + })); + }; + return ( -
-
- OrderCardComponent - +
+
+

+ Online Orders +

+ {loadingOnlineOrders ? ( +
+ +
+ ) : ( + onlineOrders.map((order) => ( +
+
+ {prescriptionImages[order.prescriptionId] && ( + {`Prescription + )} +