@using Management.Web.Shared.Components @using CanvasModel.Pages @inject CoursePlanner planner @inject CanvasService canvas @inject NavigationManager Navigation @inject PageEditorContext pageContext @code { protected override void OnInitialized() { pageContext.StateHasChanged += reload; reload(); } private void reload() { if (pageContext.Page != null) { name = pageContext.Page.Name; } this.InvokeAsync(this.StateHasChanged); } public void Dispose() { pageContext.StateHasChanged -= reload; } private string name { get; set; } = String.Empty; private bool addingPageToCanvas = false; private bool deletingPageFromCanvas = false; private CanvasPage? pageInCanvas => planner.CanvasPages?.FirstOrDefault(a => a.Title == pageContext.Page?.Name); private string canvasPageUrl => $"https://snow.instructure.com/courses/{planner.LocalCourse?.Settings.CanvasId}/assignments/{pageInCanvas?.PageId}"; private void submitHandler() { if (pageContext.Page != null) { var newPage = pageContext.Page with { Name = name, }; pageContext.SavePage(newPage); } pageContext.Page = null; } private async Task HandleDelete() { } private void handleNameChange(ChangeEventArgs e) { if (pageContext.Page != null) { var newPage = pageContext.Page with { Name = e.Value?.ToString() ?? "" }; pageContext.SavePage(newPage); } } private async Task addToCanvas() { addingPageToCanvas = true; await pageContext.AddPageToCanvas(); await planner.LoadCanvasData(); addingPageToCanvas = false; } private async Task updateInCanvas() { if(pageInCanvas != null) { addingPageToCanvas = true; await pageContext.UpdateInCanvas(pageInCanvas.PageId); await planner.LoadCanvasData(); addingPageToCanvas = false; } } private async Task deleteFromCanvas() { if (pageInCanvas == null || planner?.LocalCourse?.Settings.CanvasId == null || pageContext.Page == null ) return; deletingPageFromCanvas = true; @* await canvas.Pages.Delete( (ulong)planner.LocalCourse.Settings.CanvasId, pageInCanvas.Id, assignmentContext.Assignment.Name ); *@ await planner.LoadCanvasData(); deletingPageFromCanvas = false; StateHasChanged(); } }
@pageContext.Page?.Name
@if (pageContext.Page != null) { }
@if (addingPageToCanvas || deletingPageFromCanvas) {
} @if (pageInCanvas != null) { View in Canvas }