feat(manager): Part 2 — Online Orders page and sidebar integration
- connect_orders.py: add GET /api/connect/orders?status=active|history endpoints - api/client.js: add getIncomingOrders, getActiveOrders, getOrderHistory, acceptOnlineOrder, rejectOnlineOrder, updateOnlineOrderStatus - OnlineOrdersPage.jsx: three-tab page (Incoming / Active / History) with order cards, action buttons (accept/reject/status progression), 20 s polling, SSE listener for online_order_received/updated events, and optimistic UI updates - App.jsx: add /online-orders route - Sidebar.jsx: add Online Orders nav item with red badge showing pending count, polling every 20 s independently of the page Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -23,3 +23,18 @@ client.interceptors.response.use(
|
||||
)
|
||||
|
||||
export default client
|
||||
|
||||
// ── Online Orders (Xenia Connect) ─────────────────────────────────────────────
|
||||
|
||||
export const getIncomingOrders = () => client.get('/api/connect/orders/incoming')
|
||||
export const getActiveOrders = () => client.get('/api/connect/orders?status=active')
|
||||
export const getOrderHistory = () => client.get('/api/connect/orders?status=history')
|
||||
|
||||
export const acceptOnlineOrder = (id) =>
|
||||
client.post(`/api/connect/orders/${id}/accept`)
|
||||
|
||||
export const rejectOnlineOrder = (id, reason) =>
|
||||
client.post(`/api/connect/orders/${id}/reject`, { reason })
|
||||
|
||||
export const updateOnlineOrderStatus = (id, status) =>
|
||||
client.post(`/api/connect/orders/${id}/status`, { status })
|
||||
|
||||
Reference in New Issue
Block a user