fix order scrolling

This commit is contained in:
NotII
2025-03-02 03:18:19 +00:00
parent 550a755970
commit bb0258c5c6

View File

@@ -62,6 +62,17 @@ interface Order {
trackingNumber?: string; trackingNumber?: string;
} }
interface OrderInList extends Order {
_id: string;
}
interface OrdersResponse {
orders: OrderInList[];
page: number;
totalPages: number;
totalOrders: number;
}
const getStatusVariant = (status: string) => { const getStatusVariant = (status: string) => {
switch (status) { switch (status) {
case 'acknowledged': case 'acknowledged':
@@ -292,43 +303,48 @@ export default function OrderDetailsPage() {
if (!order?.orderId) return; if (!order?.orderId) return;
// Fetch previous and next orders in parallel // Get the current numerical orderId
const [prevOrdersRes, nextOrdersRes] = await Promise.all([ const currentOrderId = parseInt(order.orderId);
// Get one order before the current one (newer orders) console.log('Current orderId (numerical):', currentOrderId);
fetchData(
`${process.env.NEXT_PUBLIC_API_URL}/orders?limit=1&after=${order.orderId}`,
{
method: "GET",
headers: { Authorization: `Bearer ${authToken}` },
}
),
// Get one order after the current one (older orders)
fetchData(
`${process.env.NEXT_PUBLIC_API_URL}/orders?limit=1&before=${order.orderId}`,
{
method: "GET",
headers: { Authorization: `Bearer ${authToken}` },
}
)
]);
// Set previous (newer) order ID if exists // Use the new optimized backend endpoint to get adjacent orders
if (prevOrdersRes?.orders?.length > 0) { const adjacentOrdersUrl = `${process.env.NEXT_PUBLIC_API_URL}/orders/adjacent/${currentOrderId}`;
setPrevOrderId(prevOrdersRes.orders[0]._id); console.log('Fetching adjacent orders:', adjacentOrdersUrl);
} else {
setPrevOrderId(null); const adjacentOrdersRes = await fetchData(
adjacentOrdersUrl,
{
method: "GET",
headers: { Authorization: `Bearer ${authToken}` },
}
);
console.log('Adjacent orders response:', adjacentOrdersRes);
if (!adjacentOrdersRes) {
console.error("Invalid response from adjacent orders endpoint");
return;
} }
// Set next (older) order ID if exists // Set the next and previous order IDs
if (nextOrdersRes?.orders?.length > 0) { const { newer, older } = adjacentOrdersRes;
setNextOrderId(nextOrdersRes.orders[0]._id);
// Set IDs for navigation
setPrevOrderId(newer?._id || null);
setNextOrderId(older?._id || null);
if (newer) {
console.log(`Newer order: ${newer.orderId} (ID: ${newer._id})`);
} else { } else {
setNextOrderId(null); console.log('No newer order found');
}
if (older) {
console.log(`Older order: ${older.orderId} (ID: ${older._id})`);
} else {
console.log('No older order found');
} }
console.log('Current order:', order.orderId);
console.log('Newer order:', prevOrdersRes?.orders?.[0]?._id);
console.log('Older order:', nextOrdersRes?.orders?.[0]?._id);
} catch (error) { } catch (error) {
console.error("Failed to fetch adjacent orders:", error); console.error("Failed to fetch adjacent orders:", error);
} }