@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); } } }