@using Management.Web.Shared.Components @inject AssignmentDragContainer dragContainer @inject CoursePlanner planner @code { [Parameter] [EditorRequired] public LocalAssignment Assignment { get; set; } = new(); [Parameter] [EditorRequired] public LocalModule Module { get; set; } = new(); private bool showUpdateForm = false; protected override void OnInitialized() { planner.StateHasChanged += reload; } private void reload() { this.InvokeAsync(this.StateHasChanged); } public void Dispose() { planner.StateHasChanged -= reload; } private Modal? assignmentEditorModal {get; set;} private void HandleDragStart() { dragContainer.DropCallback = (DateTime dropDate) => { if (planner.LocalCourse != null) { var newCourse = planner.LocalCourse with { Modules = planner.LocalCourse.Modules.Select(m => m.Name != Module.Name ? m : m with { Assignments = Module.Assignments.Select(a => a.id != Assignment.id ? a : a with { due_at=dropDate } ) } ) }; planner.LocalCourse = newCourse; } }; } private void HandleDragEnd() { dragContainer.DropCallback = null; } }