diff --git a/Radzen.Blazor/RadzenHtmlEditor.razor.cs b/Radzen.Blazor/RadzenHtmlEditor.razor.cs index cabd3fe42cf..ccfb6bac342 100644 --- a/Radzen.Blazor/RadzenHtmlEditor.razor.cs +++ b/Radzen.Blazor/RadzenHtmlEditor.razor.cs @@ -416,5 +416,41 @@ public override void Dispose() JSRuntime.InvokeVoidAsync("Radzen.destroyEditor", ContentEditable); } } + + /// + /// Gets or sets the callback which when a file is uploaded. + /// + /// The complete callback. + [Parameter] + public EventCallback UploadComplete { get; set; } + + + internal async Task RaiseUploadComplete(UploadCompleteEventArgs args) + { + await UploadComplete.InvokeAsync(args); + } + + /// + /// Invoked by interop when the upload is complete. + /// + [JSInvokable("OnUploadComplete")] + public async Task OnUploadComplete(string response) + { + System.Text.Json.JsonDocument doc = null; + + if (!string.IsNullOrEmpty(response)) + { + try + { + doc = System.Text.Json.JsonDocument.Parse(response); + } + catch (System.Text.Json.JsonException) + { + // + } + } + + await UploadComplete.InvokeAsync(new UploadCompleteEventArgs() { RawResponse = response, JsonResponse = doc }); + } } } diff --git a/Radzen.Blazor/RadzenHtmlEditorImage.razor.cs b/Radzen.Blazor/RadzenHtmlEditorImage.razor.cs index f10c345250e..b957f936316 100644 --- a/Radzen.Blazor/RadzenHtmlEditorImage.razor.cs +++ b/Radzen.Blazor/RadzenHtmlEditorImage.razor.cs @@ -107,6 +107,8 @@ async Task OnUploadComplete(UploadCompleteEventArgs args) { DialogService.Close(true); } + + await Editor.RaiseUploadComplete(args); } async Task OnUploadError(UploadErrorEventArgs args) diff --git a/Radzen.Blazor/wwwroot/Radzen.Blazor.js b/Radzen.Blazor/wwwroot/Radzen.Blazor.js index a5ffb4d7172..23894c84f95 100644 --- a/Radzen.Blazor/wwwroot/Radzen.Blazor.js +++ b/Radzen.Blazor/wwwroot/Radzen.Blazor.js @@ -1885,6 +1885,7 @@ window.Radzen = { } else { document.execCommand("insertHTML", false, ''); } + instance.invokeMethodAsync('OnUploadComplete', xhr.responseText); } else { instance.invokeMethodAsync('OnError', xhr.responseText); } diff --git a/RadzenBlazorDemos/Pages/HtmlEditorGetSetValue.razor b/RadzenBlazorDemos/Pages/HtmlEditorGetSetValue.razor index f07985a7968..eed14d9387f 100644 --- a/RadzenBlazorDemos/Pages/HtmlEditorGetSetValue.razor +++ b/RadzenBlazorDemos/Pages/HtmlEditorGetSetValue.razor @@ -1,4 +1,4 @@ - + @@ -34,4 +34,9 @@ { console.Log($"Execute: {args.CommandName}"); } + + void OnUploadComplete(UploadCompleteEventArgs args) + { + console.Log($"Upload complete: {args.RawResponse}"); + } } \ No newline at end of file