fix: menu reorder - use items state after drag, add logging
This commit is contained in:
+17
-5
@@ -1371,6 +1371,7 @@ function MenuSection({ items, setItems, images, onToast }: any) {
|
|||||||
reordered.splice(overIdx, 0, moved);
|
reordered.splice(overIdx, 0, moved);
|
||||||
// Update sort_order based on new position
|
// Update sort_order based on new position
|
||||||
const updated = reordered.map((it: MenuItem, i: number) => ({ ...it, sort_order: i }));
|
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);
|
setItems(updated);
|
||||||
}
|
}
|
||||||
setDragIdx(null);
|
setDragIdx(null);
|
||||||
@@ -1379,15 +1380,26 @@ function MenuSection({ items, setItems, images, onToast }: any) {
|
|||||||
|
|
||||||
const saveOrder = async () => {
|
const saveOrder = async () => {
|
||||||
try {
|
try {
|
||||||
// Use sorted order for consistency
|
// Use items state (which has updated sort_order from drag)
|
||||||
const order = sorted.map((it: MenuItem, i: number) => ({ id: it.id, sort_order: i }));
|
const currentItems = [...items].sort((a, b) => (a.sort_order || 0) - (b.sort_order || 0));
|
||||||
await fetch('/api/menu/reorder', {
|
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',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify({ order }),
|
body: JSON.stringify({ order }),
|
||||||
});
|
});
|
||||||
onToast('Order saved!', 'success');
|
if (res.ok) {
|
||||||
} catch { onToast('Error reordering', 'error'); }
|
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));
|
const sorted = [...items].sort((a, b) => (a.sort_order || 0) - (b.sort_order || 0));
|
||||||
|
|||||||
Reference in New Issue
Block a user