@using Microsoft.AspNetCore.Components
@using System.Collections.Generic
@using Microsoft.AspNetCore.Components.Web
@foreach (var item in Items)
{
}
@if (AppendContent != null)
{
@AppendContent
}
@code {
[Parameter] public List Items { get; set; }
[Parameter] public EventCallback OnRemove { get; set; }
[Parameter] public EventCallback OnEdit { get; set; }
[Parameter] public EventCallback> OnSort { get; set; }
[Parameter] public RenderFragment? AppendContent { get; set; }
private MediaItemModel? _dragPayload;
private void HandleDragStart(MediaItemModel item)
{
_dragPayload = item;
}
private void HandleDragEnd()
{
_dragPayload = null;
}
private void HandleDragEnter(MediaItemModel targetItem)
{
if (_dragPayload == null || targetItem == _dragPayload) return;
var oldIndex = Items.IndexOf(_dragPayload);
var newIndex = Items.IndexOf(targetItem);
if (oldIndex != -1 && newIndex != -1)
{
// Remove and insert
Items.RemoveAt(oldIndex);
Items.Insert(newIndex, _dragPayload);
// Notify parent
OnSort.InvokeAsync(Items);
}
}
}