diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx index 222047e..df840ee 100644 --- a/src/app/admin/page.tsx +++ b/src/app/admin/page.tsx @@ -1371,6 +1371,7 @@ function MenuSection({ items, setItems, images, onToast }: any) { reordered.splice(overIdx, 0, moved); // Update sort_order based on new position const updated = reordered.map((it: MenuItem, i: number) => ({ ...it, sort_order: i })); + console.log('Drag end:', { dragIdx, overIdx, oldOrder: sorted.map((it: MenuItem) => it.name), newOrder: updated.map((it: MenuItem) => it.name) }); setItems(updated); } setDragIdx(null); @@ -1379,15 +1380,26 @@ function MenuSection({ items, setItems, images, onToast }: any) { const saveOrder = async () => { try { - // Use sorted order for consistency - const order = sorted.map((it: MenuItem, i: number) => ({ id: it.id, sort_order: i })); - await fetch('/api/menu/reorder', { + // Use items state (which has updated sort_order from drag) + const currentItems = [...items].sort((a, b) => (a.sort_order || 0) - (b.sort_order || 0)); + const order = currentItems.map((it: MenuItem, i: number) => ({ id: it.id, sort_order: i })); + console.log('Saving order:', order); + const res = await fetch('/api/menu/reorder', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ order }), }); - onToast('Order saved!', 'success'); - } catch { onToast('Error reordering', 'error'); } + if (res.ok) { + onToast('Order saved!', 'success'); + } else { + const err = await res.json().catch(() => ({})); + console.error('Save order error:', err); + onToast(err.error || 'Error saving order', 'error'); + } + } catch (e) { + console.error('Save order exception:', e); + onToast('Error reordering', 'error'); + } }; const sorted = [...items].sort((a, b) => (a.sort_order || 0) - (b.sort_order || 0));