(draggedId, targetId, before)
| 605 | } |
| 606 | |
| 607 | function reorderFolder(draggedId, targetId, before) { |
| 608 | if (draggedId === targetId) return; |
| 609 | const dragged = folders.find((f) => f.id === draggedId); |
| 610 | const target = folders.find((f) => f.id === targetId); |
| 611 | if (!dragged || !target) return; |
| 612 | folders.splice(folders.indexOf(dragged), 1); |
| 613 | const toIdx = folders.indexOf(target); |
| 614 | folders.splice(before ? toIdx : toIdx + 1, 0, dragged); |
| 615 | saveState(); |
| 616 | render(); |
| 617 | } |
| 618 | |
| 619 | function isFolderDescendant(ancestorId, candidateId) { |
| 620 | let cur = folders.find((f) => f.id === candidateId); |
no test coverage detected