diff --git a/RestroHub-FrontEnd/src/components/admin/orders/orderComponents/OrderCard.jsx b/RestroHub-FrontEnd/src/components/admin/orders/orderComponents/OrderCard.jsx
index 003fe02..b8c0cd1 100644
--- a/RestroHub-FrontEnd/src/components/admin/orders/orderComponents/OrderCard.jsx
+++ b/RestroHub-FrontEnd/src/components/admin/orders/orderComponents/OrderCard.jsx
@@ -97,20 +97,30 @@ const OrderCard = ({ order, onStatusUpdate }) => {
// ------------------------------------
// HANDLER
// ------------------------------------
+ // Map frontend status to backend enum
+ const statusMap = {
+ cooking: 'PREPARING',
+ ready: 'READY',
+ billed: 'COMPLETED',
+ complete: 'COMPLETED',
+ pending: 'PENDING',
+ };
+
const handleAction = async () => {
if (!action) return;
try {
setUpdating(true);
- // 🔌 UNCOMMENT WHEN API READY
- // await api.put(`/api/orders/${order.id}/status`, { status: action.next });
- // toast.success(`Order #${order.id} → ${action.label}`);
+ const backendStatus = statusMap[action.next] || action.next.toUpperCase();
+
+ await api.patch(`/secure/api/v1/orders/${order.id}/status`, {
+ status: backendStatus,
+ });
- await new Promise((resolve) => setTimeout(resolve, 400));
onStatusUpdate(order.id, action.next);
} catch (err) {
- console.error('Failed to update order:', err);
+ console.error('Failed to update order status:', err);
} finally {
setUpdating(false);
}
diff --git a/RestroHub-FrontEnd/src/components/admin/orders/orderComponents/OrdersGrid.jsx b/RestroHub-FrontEnd/src/components/admin/orders/orderComponents/OrdersGrid.jsx
index cbb7a0e..2ee772e 100644
--- a/RestroHub-FrontEnd/src/components/admin/orders/orderComponents/OrdersGrid.jsx
+++ b/RestroHub-FrontEnd/src/components/admin/orders/orderComponents/OrdersGrid.jsx
@@ -3,9 +3,6 @@ import { RefreshCw, AlertCircle, ClipboardList } from 'lucide-react';
import OrderCard from './OrderCard';
import api from "@services/common/api";
-// ============================================
-// SKELETON (Private)
-// ============================================
const OrderCardSkeleton = () => (
@@ -45,21 +42,22 @@ const OrderCardSkeleton = () => (
);
-// ============================================
-// MAIN COMPONENT
-// ============================================
-const OrdersGrid = ({ activeFilter, searchQuery, onOrdersChange }) => {
+<<<<<<< HEAD
+// =====================================// MAIN COMPONENT
+// =====================================const OrdersGrid = ({ activeFilter, searchQuery, onOrdersChange }) => {
const [orders, setOrders] = useState([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
const [refreshing, setRefreshing] = useState(false);
+<<<<<<< HEAD
// Sync orders up to parent so OrderFilters gets real counts
const syncOrders = (updated) => {
setOrders(updated);
onOrdersChange?.(updated);
};
+<<<<<<< HEAD
// ------------------------------------
// FALLBACK DATA
// ------------------------------------
@@ -112,21 +110,15 @@ const OrdersGrid = ({ activeFilter, searchQuery, onOrdersChange }) => {
},
];
- // ------------------------------------
- // FETCH
- // ------------------------------------
useEffect(() => {
fetchOrders();
-
- // 🔌 UNCOMMENT: Auto-refresh every 30 seconds
- // const interval = setInterval(fetchOrders, 30000);
- // return () => clearInterval(interval);
}, []);
const fetchOrders = async () => {
try {
if (!loading) setRefreshing(true);
setError(null);
+<<<<<<< HEAD
// 🔌 UNCOMMENT WHEN API READY
// const response = await api.get('/api/orders');
@@ -138,6 +130,15 @@ const OrdersGrid = ({ activeFilter, searchQuery, onOrdersChange }) => {
} catch (err) {
console.error('Failed to fetch orders:', err);
setError('Failed to load orders');
+ const response = await api.get('/secure/api/v1/orders/branch/1/active');
+ const data = response.data;
+ if (Array.isArray(data) && data.length > 0) {
+ syncOrders(data);
+ } else {
+ syncOrders(fallbackOrders);
+ }
+ } catch (err) {
+ console.warn('API not available, using fallback data:', err);
syncOrders(fallbackOrders);
} finally {
setLoading(false);
@@ -145,9 +146,6 @@ const OrdersGrid = ({ activeFilter, searchQuery, onOrdersChange }) => {
}
};
- // ------------------------------------
- // HANDLERS
- // ------------------------------------
const handleStatusUpdate = (orderId, newStatus) => {
if (newStatus === 'complete') {
syncOrders(orders.filter((o) => o.id !== orderId));
@@ -172,9 +170,6 @@ const OrdersGrid = ({ activeFilter, searchQuery, onOrdersChange }) => {
);
});
- // ------------------------------------
- // RENDER
- // ------------------------------------
if (loading) {
return (
@@ -219,15 +214,12 @@ const OrdersGrid = ({ activeFilter, searchQuery, onOrdersChange }) => {
return (
- {/* Refresh indicator */}
{refreshing && (
Refreshing orders...
)}
-
- {/* Orders Grid */}
{filteredOrders.map((order) => (
{
/>
))}
-
- {/* Results Count */}
Showing {filteredOrders.length} of {orders.length} orders
@@ -248,4 +238,4 @@ const OrdersGrid = ({ activeFilter, searchQuery, onOrdersChange }) => {
);
};
-export default OrdersGrid;
\ No newline at end of file
+export default OrdersGrid;