{#each editMode ? editableItems : visibleItems as item (item.href)}
{#if editMode}
{
dragHref = item.href;
if (e.dataTransfer) {
e.dataTransfer.effectAllowed = 'move';
// Safari won't start a drag without data
e.dataTransfer.setData('text/plain', item.href);
e.dataTransfer.setDragImage(transparentGhost(), 0, 0);
}
}}
ondragover={(e) => {
e.preventDefault();
if (e.dataTransfer) e.dataTransfer.dropEffect = 'move';
if (!dragHref || dragHref === item.href) return;
// Only reorder when the pointer is past the row midpoint,
// so a hover near the boundary doesn't flip back and forth
const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();
const before = e.clientY < rect.top + rect.height / 2;
moveTo(dragHref, item.href, before);
}}
ondrop={(e) => e.preventDefault()}
ondragend={endDrag}
>
{item.label}